Intel NPC · config reference

Tune every knob

Intel NPC ships with roughly 1,300 lines of commented config in shared/config.lua. This page covers the knobs you'll reach for first — from master toggles down to per-recipe tuning.

← Documentation hub · Intel NPC docs · Intel NPC product page

Master toggles

Every system has a single boolean. Disabled modules early-return at file top — off means off, not "running quietly".

Config.police_system_enabled    = true
Config.ambient_dialogue_enabled = true
Config.hails_enabled            = true
Config.trauma_enabled           = true
Config.disguise_enabled         = true
Config.gossip_enabled           = true
Config.informants_enabled       = true
Config.corruption_enabled       = true
Config.routines_enabled         = true
Minimal install

Want only dialogue, memory and trust? Set police_system_enabled, hails_enabled and gossip_enabled to false and restart. The static persona system stays fully functional on its own.

Debug & dev mode

Config.debug gates the dev menu, dev commands, 3D text overlays and map blips. Ships false. Override per-server with a convar instead of editing the file.

Config.debug          = false
Config.dev_population = { enabled = true, ped = 2.0, vehicle = 2.0 }
Config.dev_menu_key   = 'F7'
setr lrr_intel_npc:debug 1

dev_population multiplies ped and vehicle density so you're not testing reactions on an empty street. Turn it off for production unless you want a denser city by design.

Reputation deltas

The trust scale runs −10 to +10 across six tiers. The deltas table is the heart of it — conversation alone shouldn't move trust; actions should.

KeyDefaultTrigger
help_up+4Helping a knocked-down NPC to their feet.
bribe_accepted+3An NPC takes a bribe to look away.
tip+2Tipping on a purchase.
positive_interaction+1Flirting, banter, hiring.
neutral_chat0Just talking — no trust movement.
provoke−1Threatening, provoking or begging.
pickpocket−3Stealing without confrontation.
mug−5Mugging the NPC.
rob_armed−6Armed robbery.

Tier thresholds are configurable too — the defaults split at −7, −3, 0, +3 and +6.

Dialogue & patience

Controls the NUI session — how long an NPC waits, how typewriter pacing feels, and when the impatience warning fires.

Config.dialogue = {
    interact_key      = 'G',
    patience_seconds  = 22,
    impatient_at      = 0.65,
    typewriter_ms     = 26,
    topic_randomize   = true,
    max_topic_depth   = 8,
}
KeyEffect
patience_secondsIdle time before the NPC ends the conversation and walks off.
impatient_atFraction of patience elapsed before the pulsing warning shows.
typewriter_msPer-character delay for the typewriter effect.
topic_randomizeShuffles eligible topics so revisits stay fresh.
max_topic_depthSafety cap on recursive topic nesting.

Ambient hails

Hails are the unprompted call-outs — the homeless and prostitute categories speak first. Tune frequency, range and the night multiplier.

Config.hails = {
    enabled          = true,
    scan_interval_ms = 3000,
    range            = 14.0,
    base_chance      = 0.10,
    cooldown_seconds = 45,
    night_multiplier = 1.4,
}

A hailing NPC floats a speech bubble; walk into range and press the interact key to open the full dialogue. cooldown_seconds stops the same ped from hailing you on a loop.

Police module

Alpha module

The police system is in alpha. Test on a non-production server first. A single flag — Config.police_system_enabled = false — disables the whole module if you'd rather ship without it for now.

Config.police = {
    ped_hit_enabled      = true,
    redlight_enabled     = true,
    speeding_enabled     = true,
    precall_window_base  = 8.0,
    precall_per_metre    = 0.25,
    witness_clear_dist   = 80.0,
    night_witness_bonus  = 0.35,
    max_cruise_patrols   = 3,
    unit_park_distance   = 13.0,
    wanted_ceiling       = 1,
}
KeyEffect
precall_window_baseBase seconds to talk a driver down before they dial 911.
precall_per_metreExtra window seconds added per metre of distance.
witness_clear_distDistance you must put between you and the scene to clear it.
night_witness_bonusAdded report probability after dark.
unit_park_distanceHow far the responding cruiser parks from the scene.
wanted_ceilingInternal star cap — anything bigger is delegated via events.

Prostitutes

A dedicated category with its own hail multiplier and four paid service tiers. Each tier fires lrr-intel-npc:server:prostituteServicePaid so payouts and animations live in your own resource if you prefer.

Config.prostitutes = {
    hail_multiplier  = 8.0,
    night_multiplier = 1.4,
    tiers = {
        { id = 'talk',       price = 0   },
        { id = 'company',    price = 150 },
        { id = 'private',    price = 400 },
        { id = 'full_night', price = 900 },
    },
}

Common recipes

Calmer streets

Lower reaction intensity for a slower-burn server — raise patience, soften the night witness bonus.

Config.dialogue.patience_seconds = 35
Config.police.night_witness_bonus = 0.15
Config.hails.base_chance         = 0.06

Dialogue-only build

Persona conversations and trust, nothing else firing in the background.

Config.police_system_enabled = false
Config.hails_enabled         = false
Config.gossip_enabled        = false
Config.informants_enabled    = false

Heavier police presence

More visible patrols and a tighter pre-call window for a higher-pressure city.

Config.police.max_cruise_patrols  = 3
Config.police.precall_window_base = 5.0
Config.police.witness_clear_dist  = 110.0
Before you go live

Read the shipped shared/config.lua end to end — it's commented line by line, and it documents knobs not listed here. The documentation page covers install, exports and events.