Kartik Scripts

General

UI

Config.Debug    = false
Config.Notify   = 'kartik' -- kartik (built-in UI) | ox_lib | qb | esx
Config.Progress = 'kartik' -- kartik | ox_lib | ox_lib_circle | qb (progressbar) | esx (esx_progressbar)
Config.TextUI   = 'kartik' -- key prompts ("[E] Interact"): kartik | ox_lib

The callout HUD, interaction menu, offers and tablet always use the built-in UI. These options only change notifications, progress bars and key prompts.

Services

Which jobs work each service. dispatchJobs receive that service's dispatch calls.

Config.Services = {
    police    = { label = 'Police', icon = 'shield',    jobs = { 'police', 'sheriff', 'bcso', 'sasp' }, dispatchJobs = { 'police' } },
    ambulance = { label = 'EMS',    icon = 'ambulance', jobs = { 'ambulance', 'ems' },                   dispatchJobs = { 'ambulance' } },
    fire      = { label = 'Fire',   icon = 'flame',     jobs = { 'fire', 'safd' },                       dispatchJobs = { 'fire' } },
    tow       = { label = 'Tow',    icon = 'truck',     jobs = { 'tow', 'mechanic' },                    dispatchJobs = { 'tow', 'mechanic' } },
}

Keep the service ids (police, ambulance, fire, tow). Callouts, backup and joint scenes refer to them. Change only label, icon and the job lists.

Shift

Config.Shift = {
    requireJob        = true,  -- only jobs in Config.Services can start that service
    dutyOnShiftStart  = true,  -- starting a shift puts you on duty
    endShiftOnDutyOff = true,  -- going off duty ends the shift
    startShiftOnDuty  = false, -- going on duty starts a shift automatically
}

MDT status

Status ids from your MDT's Config.Statuses. false skips that step.

Config.Status = {
    enabled       = true,
    onShiftStart  = 'available',
    onShiftEnd    = 'unavailable',
    onAccept      = 'enroute',
    onArrive      = 'onscene',
    onCalloutEnd  = 'available',
    onPullover    = 'traffic',
    onPulloverEnd = 'available',
    onPursuit     = 'busy',
    onPursuitEnd  = 'available',
}

Keys

Config.Keys = {
    tablet   = '',  -- no default key, use /ers (or set e.g. 'F7')
    interact = 'E',
    pullover = 'G',
    accept   = 'Y',
    decline  = 'N',
    command  = 'J', -- orders for your AI units
}
Config.TabletCommand = 'ers'

A player's binding is saved the first time they join. Changing a default here later does not move existing bindings. Players change them in Settings → Key Bindings → FiveM.

Tablet

Config.TabletMode = 'auto' -- 'auto' = ERS app inside Kartik MDT when it runs, else built-in | 'ers' = always built-in
Config.MdtTablet  = true   -- list the ERS app inside Kartik MDT

Records

Config.Records = {
    pushToMDT     = true,  -- create MDT profiles / vehicles so officers can search NPCs
    pushWarrants  = true,  -- wanted NPCs get an active MDT warrant
    flagVehicles  = true,  -- stolen / BOLO vehicles flagged in the MDT
    idPrefix      = 'ERS', -- NPC citizen ids look like ERS-1A2B3C4D
    retentionDays = 14,    -- delete ERS records not seen for X days (0 = keep). MDT profiles are kept
    sessionLimit  = 30,    -- encounters kept in the tablet per officer
}

Locations

Config.Locations = {
    radius        = 12.0, -- how close to a jail / hospital to hand someone over
    routeOnArrest = true, -- GPS route to the nearest station after an arrest
    markers       = true, -- markers at stations / hospitals while you have someone to hand over
    jails = {
        { label = 'Mission Row PD',  coords = vec3(452.6, -1017.4, 28.4) },
        { label = 'Sandy Shores SO', coords = vec3(1855.9, 3682.3, 34.2) },
        { label = 'Paleto Bay SO',   coords = vec3(-448.4, 6012.6, 31.7) },
        { label = 'Bolingbroke',     coords = vec3(1846.3, 2585.9, 45.7) },
    },
    hospitals = {
        { label = 'Pillbox Medical',   coords = vec3(294.6, -600.8, 43.3) },
        { label = 'Sandy Shores Med.', coords = vec3(1839.4, 3672.9, 34.3) },
        { label = 'Paleto Bay Med.',   coords = vec3(-247.8, 6331.2, 32.4) },
    },
}

Using an MLO? Move these to its entrance.

Rewards

Paid from server/open/hooks.lua, so you can change how and where.

Config.Rewards = {
    enabled          = true,
    account          = 'bank',
    calloutComplete  = 250,
    arrest           = 150,
    citation         = 50,
    patientDelivered = 150,
}

Dispatchers

Who can send callouts to other units from the tablet.

Config.Dispatcher = {
    ace  = 'kartik-ers.dispatcher',
    jobs = { police = 3, ambulance = 3 }, -- job = minimum grade
}

Config.Leaderboard = { size = 10 }

To give someone dispatcher access by ace:

add_ace group.admin kartik-ers.dispatcher allow

On this page