Skip to main content
Ambient NPCs are dynamic characters HumaLike puts on the street itself: when players gather, the resource spawns a networked pedestrian of the character’s model nearby, out of sight, and HumaLike keeps the character on it for as long as players are around.

Lifecycle

  1. The planner groups nearby players and decides which characters should have a body around each group, and where.
  2. The resource spawns the pedestrian at a safe, out-of-view spot and binds it.
  3. HumaLike tracks the character while that ped exists and drops the binding when the game removes it (a vanished body is released, never a stale lease).
  4. Once no player has been near the body for the despawn time, it is removed; the character gets a new body the next time players are around.
The character identity and memory are stable; a GTA entity handle is not. Your integration should refer to the HumaLike NPC id whenever it stores character state.

Configure ambient population

Open a server in the dashboard and use its Ambient NPCs settings to enable the system and tune the limits. Dashboard policy is authoritative for the number of active ambient characters and bodies.

Models

A character’s ped model is the body it is spawned in, and the character decides it. Every GTA ped model is available — the 500-odd ambient, service, gang and unique pedestrians, not only the ones the game streets on its own. Every member of a world carries one to three look tags that say how they dress — wealthy, office, street, beach, homeless, a worker: tag for a uniform (worker:pilot, worker:mechanic) or a gang: tag for a street gang’s colours (gang:ballas, gang:lost_mc). The proposal picks them from the role; you can change them on the proposal before generation, and afterwards through an edit request (“put Officer Diaz in an LSPD uniform”), which re-picks the body. A uniform or gang tag stands alone, and many uniforms exist for one sex only in GTA — the pick list says which (worker:paramedic is men only, worker:nurse women only); a tag the member’s sex cannot wear is refused on the proposal and dropped by the generator. The body is drawn uniformly among the catalogue models of the member’s sex that carry one of their tags (nearest age band first), so a pilot wears the pilot uniform and a Ballas member the purple — nothing is off-limits, and a member whose tags match no body gets an ordinary civilian one. Members of one group get distinct bodies while the catalogue has them; the outfit follows the same tags on the models photographed so far, and the game’s own outfit roll dresses the rest. The group’s home zone decides where a character prefers to appear, not what it looks like. For a hand-made ambient character, give it any model the server has.

How it works

There is nothing to choose. While Ambient NPCs are enabled, HumaLike owns the street: it spawns bodies for your dynamic characters near groups of players (a pedestrian of the character’s model, within the spawn radius, out of sight, preferring the character’s own home zone) and fills the rest of the street with extras — persona-less pedestrians drawn from every ordinary civilian model in the catalogue, whatever the zone, up to Extras per cluster around each group and Extras limit server-wide. Clients switch GTA’s own on-foot population off meanwhile (vehicles, traffic and parked cars are untouched; random police stay on when the humalike_population_cops convar is true — see Configuration). Everything that applies to an ambient character — outfit, labels, voice, actions, injuries — applies to its body. Extras never speak or bind; set extras per cluster to 0 to run with characters only. Disabled means no dynamic characters and GTA’s crowd as it always was. A body is released once no player in its routing bucket has been within the body despawn distance for the body despawn time (the despawn distance must be at least the spawn distance, or bodies would be released as they land); the resource then removes it. Wounded or held bodies are kept until they are free again. Character bodies count against the map limit and the per-cell limit; extras count only against their own limit. Per cell does two things with one number: it caps the bodies HumaLike holds in any one grid cell (of Cell metres a side), and, scaled by the zone’s foot traffic, it is how many characters a group of players meets at once around them. The budget is shared so nobody gets a crowd while someone else gets an empty street. Characters are placed first. The extras limit is then split across groups of players by head count — players standing together share one allowance, and a bigger group gets a bigger share — and every group is capped by Bodies per player scope, the most HumaLike bodies allowed around any one player. New bodies arrive at Spawns per tick per group, spread around the group rather than in one spot, so a crowd trickles in rather than lands. Where the group stands matters as much as the dials. Every zone carries a foot-traffic density from 0 to 1 by its reviewed character, and the per-group ceilings scale by it: a downtown pavement, a beachfront or a civic square gets the full per-cell limit and extras per cluster; a small town half of that; a desert road or an industrial yard a rare walker; a mountain range, a forest or the open sea nobody at all. Any zone with foot traffic keeps room for one character, so a persona homed in Paleto Bay can still be met there. Characters generated from a world carry their group’s home zone, so they appear where they live — a preferred neighbourhood, not a pin: a character is planned in its home zone first, and elsewhere when players are not there. A hand-made character has no home zone and can be spawned anywhere; the API’s create_npc / update_npc accept a home_zone (a GTA zone code such as DAVIS) to give it one — the dashboard sets it only through a world’s groups.

Performance tuning

Do not raise the spawn rate or the per-scope ceiling only to make a street fill a fraction of a second sooner. More bodies mean more networked entities for every client in range. If you have measured a problem, the relevant advanced settings are documented under Configuration. Change one value at a time and compare humalike_status and server performance before and after.

Common behavior

  • An ambient NPC disappearing once players leave is expected.
  • Its next body may have a different network id.
  • Different clients still observe the same networked entity while it exists.
  • With Ambient NPCs disabled HumaLike does not touch GTA’s own population.
Use a static NPC when the physical character must always return to one exact place.

Next