Configuration

All settings are in shared/config.lua.

General

Config.Framework = 'auto'    -- 'auto' | 'qbcore' | 'qbox' | 'esx'
Config.Debug = false
Config.JobRequired = true     -- Require a taxi job to use the system
Config.Locale = 'en'          -- 'en', 'ko', or add your own in lang/

Commands

Config.Commands = {
    Taximeter = 'taximeter',
    TaximeterKey = 'U',
    Focus = 'taxi_focus',
    FocusKey = 'Q',
    CancelMission = 'canceltaximission',
    EditUI = 'taxiuiedit',
}

UI

Config.UI = {
    Drag = true,               -- Players can drag the meter
    Position = 'top-right',    -- Fixed position when Drag = false
}

Options: top-left, top, top-right, middle-left, middle-right

Fares

Config.BaseFare = 3
Config.FareStepDistance = 100.0  -- Meters between fare increases
Config.FareStepAmount = 1        -- $ added per step

Config.SurchargeRate = 1.5       -- Night multiplier (1.5 = +50%)
Config.NightTimeStart = 20       -- 8 PM
Config.NightTimeEnd = 6          -- 6 AM

Taxi Vehicles

Config.TaxiVehicleNames = {
    "taxi", "taxi5", "caravantaxi",
    -- Add your custom models here
}

Config.DisableRadioInTaxi = true

NPC Mission

Config.NpcMission = {
    Enabled = true,

    FarePerMile = 3,
    StartingFare = 0,

    DispatchWaitMin = 30,
    DispatchWaitMax = 120,

    FleeChance = 30,
    FleeMinFarePercent = 60,
    FleeMaxFarePercent = 100,

    Bonus = {
        Enabled = true,
        Percentage = 10,
    },

    MinVehicleHealth = 750,
    MaxCrashesAllowed = 5,

    Speech = {
        Enabled = true,
        Greeting = 'GENERIC_HI',
        Angry = 'GENERIC_INSULT_HIGH',
        Scared = 'GENERIC_FRIGHTENED_HIGH',
        Grateful = 'GENERIC_THANKS',
        Happy = 'GENERIC_HAPPY',
    },

    Bubble = {
        Enabled = true,
        Duration = 3000,
        OffsetX = -0.08,
        OffsetY = 0.05,
    },

    Camera = {
        Duration = 3000,
        FOV = 60.0,
        OffsetX = 0.25,
        OffsetY = -0.15,
        OffsetZ = 0.1,
    },

    DestinationNames = {
        "Downtown", "Airport", "Beach", "Hospital", "Police Station",
        "Gas Station", "Mart", "Hotel", "Bank", "Club"
    },

    RewardItem = 'coffee',
    RewardChance = 25,
}

Dispatch

Config.NpcMission.Dispatch = {
    Enabled = true,
    MaxActiveCalls = 5,
    CallIntervalMin = 20,
    CallIntervalMax = 60,
    CallExpireTime = 120,
    DistanceUnit = 'km',       -- 'km' or 'mi'
}

Pickup & Dropoff Locations

Config.NpcPickupLocations = {
    vector4(257.61, -380.57, 44.71, 340.5),
    -- Add more...
}

Config.NpcDropoffLocations = {
    vector4(-1074.39, -266.64, 37.75, 117.5),
    -- Add more...
}

vector4(x, y, z, heading) — use an in-game coordinate tool.

NPC Skins

Config.NpcSkins = {
    [1] = { 'a_f_y_business_01', 'a_f_y_bevhills_01' },  -- Female
    [2] = { 'a_m_m_business_01', 'a_m_m_bevhills_01' },   -- Male
}

Companies

Each key matches a framework job name. To add a company, duplicate the block with a different key.

Config.Companies = {
    ['taxi'] = {
        Label = 'City Taxi',

        Duty = {
            Enabled = true,
            Method = 'both',   -- 'location' | 'command' | 'both'
            Location = vector3(900.87, -169.76, 74.08),
            Radius = 3.0,
            Blip = { Enabled = true, Sprite = 198, Color = 5, Scale = 0.7 },
            Marker = {
                Enabled = true, Type = 27,
                Scale = vector3(1.0, 1.0, 1.0),
                Color = { r = 255, g = 204, b = 0, a = 200 },
            },
        },

        Garage = {
            Enabled = true,
            AutoDelete = true,
            Location = vector3(913.24, -174.58, 74.33),
            Radius = 3.0,
            SpawnLocation = vector4(915.46, -170.66, 74.0, 101.81),
            ReturnLocation = vector3(913.24, -174.58, 74.33),
            ReturnRadius = 10.0,
            Vehicles = {
                { model = 'taxi',  label = 'Taxi (Standard)', rank = 0 },
                { model = 'taxi5', label = 'Taxi (Premium)',  rank = 2 },
            },
            SpawnFuel = 100.0,
            Marker = {
                Enabled = true, Type = 36,
                Scale = vector3(0.8, 0.8, 0.8),
                Color = { r = 0, g = 155, b = 255, a = 200 },
            },
        },

        BossMenu = {
            Enabled = true,
            BossGrade = 'boss',
            Location = vector3(895.98, -179.27, 74.0),
            CompanyAccount = {
                Enabled = true,
                MaxPercentage = 50,
                DefaultPercentage = 10,
            },
            Features = {
                EmployeeList = true,
                HireEmployee = true,
                FireEmployee = true,
                CompanyFunds = true,
                EmployeeStats = true,
            },
        },
    },
}

Statistics

Config.Statistics = {
    Enabled = true,
    Storage = 'database',
    TableName = 'nc_taxijob_stats',
    Command = 'taxistats',
    Track = {
        TotalIncome = true,
        MissionsCompleted = true,
        TotalDistance = true,
        TotalRides = true,
    },
}

Ranks

Config.Ranks = {
    Enabled = true,
    List = {
        { name = 'Newbie',       missions = 0,   bonus = 1.0 },
        { name = 'Beginner',     missions = 10,  bonus = 1.05 },
        { name = 'Intermediate', missions = 30,  bonus = 1.1 },
        { name = 'Veteran',      missions = 50,  bonus = 1.2 },
        { name = 'Pro',          missions = 100, bonus = 1.3 },
        { name = 'Master',       missions = 200, bonus = 1.5 },
    },
    NotifyOnRankUp = true,
}

Tips

Config.Tip = {
    Enabled = true,
    Chance = 40,
    Min = 5,
    Max = 20,
    ApplyRankBonus = true,

    PerfectRideBonus = {
        Enabled = true,
        ExtraChance = 20,
        ExtraMin = 10,
        ExtraMax = 30,
    },
}
Last updated 1 month ago