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
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.
| Key | Default | Trigger |
|---|---|---|
help_up | +4 | Helping a knocked-down NPC to their feet. |
bribe_accepted | +3 | An NPC takes a bribe to look away. |
tip | +2 | Tipping on a purchase. |
positive_interaction | +1 | Flirting, banter, hiring. |
neutral_chat | 0 | Just talking — no trust movement. |
provoke | −1 | Threatening, provoking or begging. |
pickpocket | −3 | Stealing without confrontation. |
mug | −5 | Mugging the NPC. |
rob_armed | −6 | Armed 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,
}
| Key | Effect |
|---|---|
patience_seconds | Idle time before the NPC ends the conversation and walks off. |
impatient_at | Fraction of patience elapsed before the pulsing warning shows. |
typewriter_ms | Per-character delay for the typewriter effect. |
topic_randomize | Shuffles eligible topics so revisits stay fresh. |
max_topic_depth | Safety 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
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,
}
| Key | Effect |
|---|---|
precall_window_base | Base seconds to talk a driver down before they dial 911. |
precall_per_metre | Extra window seconds added per metre of distance. |
witness_clear_dist | Distance you must put between you and the scene to clear it. |
night_witness_bonus | Added report probability after dark. |
unit_park_distance | How far the responding cruiser parks from the scene. |
wanted_ceiling | Internal 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
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.