Wat is dit?
Architectuur van Z-npc: natives, threads, framework-detectie.
Z-npc is één FiveM-resource. Hij zet GTA-population natives elke frame, plus periodiek verkeer, budgets en (optioneel) cleanup.
Hij is geen NPC-spawner, geen job-ped script en geen traffic-AI. Hij schaalt wat de game zelf al spawnt.
Verantwoordelijkheden
- Dichtheid van peds, scenario-peds, rijdend verkeer, random autos en geparkeerde autos
- Population budget (0–3) uit die density, of handmatig
- Verkeer/diensten: vuilniswagens, boten, NPC-cops, 911-dispatch, sirenes, wanted-level
- Zones met eigen density (wint van globaal)
- Nacht-multipliers
- Model-blacklist (suppress, geen ambient spawn)
- Optionele cleanup van rest-NPCs/autos bij density
0.0 - Statuscommand
/npcdensity - Exports
GetDensity/Refreshen eventZ-npc:client:densityUpdated
Wat hij niet doet
- Geen eigen peds plaatsen voor winkels, jobs of interactie
- Geen database, Discord of permissies
- Geen inventory / target / ox_lib
- Framework alleen voor detectie in de logs — de natives draaien altijd
Startvolgorde
Zet hem ná je framework, maar hij start ook zonder:
ensure es_extended # of qbx_core / qb-core
ensure Z-npc
Hoe dichtheid tot stand komt
Elke frame:
- Spelerpositie → actieve zone (of globaal).
- Density-keys uit die bron, ontbrekende keys vallen terug op globaal.
- Tijd-multiplier (nacht) × peds / vehicles.
- Clamp 0.0–1.0.
- Natives
ThisFramezetten die waarden.
Elke 5 seconden daarnaast: traffic, budgets, blacklist-suppress.
Threads
| Interval | Wat |
|---|---|
Elke frame (Wait(0)) | compute() + density natives |
| 5000 ms | traffic, budgets, suppress |
Config.Cleanup.interval (default 2000 ms) | optionele delete van rest-entities |
Bestandsstructuur
Z-npc/
fxmanifest.lua
config.lua ← open (escrow ignore)
README.md ← open
shared/framework.lua ← escrow
client/main.lua ← escrow
server/main.lua ← escrow
editable/client.lua ← open
editable/server.lua ← open
Framework-detectie
Config.Framework = 'auto' (default) kijkt welke core al draait:
qbx_core→qboxqb-core→qbes_extended→esx- anders →
standalone
Aliassen die ook werken: esxlegacy, qbcore, qbx, qbx_core. Forceer met 'esx', 'qb' of 'qbox' als auto mis zit.
De server print bij start: framework + globale peds/autos. Dichtheid zelf is client-only.