INTERACTV -- CHANGELOG

[Unreleased]

- Being arrested is now a foot chase instead of a decision menu: as soon as an officer on foot can actually reach you, he and his partners sprint after you. Let them close in and a tackle and taser put you into custody — or cut their line of sight and outrun them to slip away, and the car patrol takes over again. Surrender and bribe options are gone.
- Police foot chase: pairs of police officers can now sprint down fleeing suspects, coordinate a dive tackle to bring them down, subdue them on the ground with a baton or taser, and cuff them (on the floor if facedown or standing up) before escorting them to a patrol car.
- Military desert patrols: armed military convoys, foot marching squads with assault rifles in hand, and supersonic jet flyovers (LAZER) now patrol Grand Senora and Tataviam desert regions for the Army faction. Can be toggled on/off in the F5 menu and interactv.ini (MilitaryPatrolsEnabled).

- After a group arrest, officers waiting for their ride now form an inward-facing circle and trade conversation instead of standing with their backs to one another.
- Gang takedowns now draw from a wide catalogue of paired takedown animations, with a natural combat stance before the strike; a failed attempt flows straight into a one-on-one fight while both people keep the weapons they were carrying.
- During a store robbery with your crew, one man now singles out the clerk and works him over in sequence - a sudden takedown, a shove, then dragging him into a hostage hold that usually ends in an execution - while the rest of the crew ransacks the place and keeps watch. On by default; can be turned off in interactv.ini.
- Gang hostage-takes look more deliberate: when a man cannot slip in behind his target, his whole side now closes in and rings her, shoving or holding at gunpoint anyone who tries to reach her, and the best-placed man makes the grab from behind.
- Gang members can now target an isolated rival on the street, rolling up in a crew vehicle to hold him at gunpoint, take him hostage, shove him into their car, and speed off into their territory.
- In the street kidnapping, the taker now sprints to his target with his gun trained on her, then rushes her to the car at a run while keeping the gun on her head - no more slow stroll back to the vehicle.
- In the street kidnapping, the crew now shout the moment they spot their target, then taunt their hostage during the getaway - and the victim answers back from the back seat, pleading or cursing as she is bundled away.
- Emergency ambulances now arrive from a distance down the road instead of appearing beside you, with a cooldown between arrivals to prevent sudden convoys.
- New crash rescue state: wounded casualties on the ground can now be reached, helped to their feet through a coordinated scene, and watched as they move toward safety, with full choreography calibration available in dev mode.
- You can now drag a body yourself: walk up to someone down — dead, passing out, or lying low on life — open their actions and back away to drag them; press the drop key to let go anywhere. If the man was passing out when you grabbed him, the fit starts again where you put him down.
- Critically wounded people near you may now collapse at one-fifth health and writhe on the ground instead of fighting normally until death. This is enabled by default and can be turned off in interactv.ini.
- Bogdangoon attacks on Army patrols happen far more often, and a strike now ends in a real air fight: after dropping its bombs, the bomber turns and duels the Army attack helicopter that scrambled to meet it until one of them goes down.
- Military zones stay quiet for traffic: on the base and around Fort Zancudo, civilian vehicles keep off the roads so Army patrols read as a restricted zone.
- When critically wounded, the takeover screen now lets you choose who to wake as instead of picking one body for you: a filter on that screen narrows the list to everyone, only your faction, hostile gangs, or the one who put you down, and you arrow through the bodies to preview each one before confirming. Your filter stays as you chose for the rest of the session.

[1.1.0-beta]

- You can now take someone hostage yourself: grab them from the ped wheel, walk them where you want with the on-screen keys, then execute or let them go. Anyone close keeps their distance while you hold.
- Gang members take hostages too, in the middle of a fight: a man caught from behind becomes a human shield, and it ends the way the man holding him decides.
- Your allies greet each other on their own — a handshake or a high five between two men of the same side — instead of standing in silence.
- During a store robbery with your crew, one of your men may now take the clerk hostage instead of roughing him up, holding him at gunpoint while the others clear the place. He ends it himself — letting the clerk go or shooting him — and if you walk out first he settles it and comes after you. A witness to a killing can still call the police.
- Interactions and events are now easier to read: while one is active, GTA's ambient random events pause instead of adding more simultaneous chaos. This is enabled by default and can be turned off in interactv.ini.
- Drive-by and Assault now have unmistakable street-gang artwork on the action wheel, making each operation easier to recognize at a glance.
- A new DOCTRINE setting on the faction wheel lets you tell your lieutenant how hard to hit your enemies on his own: hold back for rare strikes, stay standard, or push for frequent attacks. The choice stays in place for the session.
- Riding as a passenger of one of your crew's vehicles, the crew commands now wait for you: they stay off until you arm them with the handbrake button, and an on-screen prompt tells you so. Once armed, the menu behaves exactly as before.
- Calling in a faction operation no longer nails you to the spot: your character puts the phone to his ear and keeps walking while he gives the order.
- The faction operations wheel no longer leaves an empty slice: it is sized to exactly what your crew can do right now.
- When shooting starts around you, the action wheel switches itself off so the weapon control goes straight back to the game. Turning it back on with your usual key works at any moment, fight included; you can keep the wheel armed in combat from interactv.ini.
- On foot, an officer sometimes walks with a slightly different stride as he approaches — a subtle variation, not a new mechanic.
- When your lieutenant moves on a spot without asking, he now picks how to hit it the way your faction actually works — a drive-by, an assault, or a full takeover — instead of always sending the same assault.
- A crew whose driver is killed puts one of its own behind the wheel and drives off, instead of piling into the passenger seat and leaving the car sitting there.
- Paramedics already at the scene of a death now take the casualties in hand themselves, instead of standing by while another ambulance is called out.

[1.0.1-beta]

- Fixed a startup failure that could stop InteractV from loading at all on some setups.

[1.0.0-beta]

Everything below arrives at once for anyone coming from 0.9.0.

- InteractV now comes as Basic or Full: Basic focuses on autonomous gang scenes, affiliation, recruits and simple orders; Full adds territory, economy, conquest, phone operations, ride-along and fully editable XML. No license key or activation is required.
- When critically wounded, Take Control previews and confirms your nearest owned recruit, or the nearest member of your faction when no recruit is available. Police officers are never offered as takeover targets.
- The action wheel's enable/disable and hold-to-open controls can now be changed independently in interactv.ini, avoiding conflicts with other mods.
- The new Display screen groups every interface toggle and provides None, Minimal, Essential and Full HUD presets; your choices persist across reloads.
- The arrest menu now opens in slow motion without a Wait option; if no choice is made, resistance starts automatically.

Police and arrests
- Officers frisk and cuff a suspect and walk him to the car; a pat-down turns up a firearm or a dealer's stash, which is often what turns a stop into an arrest.
- Officers go through the boot of an unattended car during a stop, bag a seized weapon there, and hand it back if the stop ends clean.
- Being arrested plays out: surrender, resist, bribe or wait, then custody and a real trip to the nearest station before release.
- Police react to a fight from the first moment, drop lower-priority duties, put a separate officer on each suspect, and call for more when everyone local is busy.
- Witnesses call only when they actually saw something violent, and the responding officers know who they are looking for.
- A stop whose suspect is gone is carried out on whoever is still standing there, instead of the car pulling up and driving straight off.
- An arrest whose suspect gets away ends there and then; the traffic being held back gets moving again immediately.
- Officers left without a car call dispatch and a real backup unit comes for them, instead of one appearing out of thin air.
- A transport that cannot reach its exact kerb at the station pulls up nearby instead of circling.
- A gang rescue cuts off a moving police transport and forces it to stop, and a surviving recruit takes your cuffs off afterwards.

Your crew
- Recruiting opens a quick menu: take on a nearby member, start a confrontation with a rival, or hand one of your own weapons over with a proper gesture.
- Your crew shows on the map, and a HUD row gives each member's portrait, health and what they are doing right now.
- Four orders on the wheel: regroup, hold a position you designate, take cover, or fall back to cover with weapons ready.
- In combat, the crew's movement becomes stationary, defensive, offensive or all-out at your choice.
- They read a fight the way you do: fists against a man fighting bare-handed, guns only once someone actually draws one.
- Riding with you, they return fire from their seats and stay aboard until you step out.
- Crew setups are worth keeping: save a size, ride, arrival and weapons under a name, load it on any operation, or mark one as your default.
- A member who cannot find or board a car says so and waits, rather than chasing it down the street.
- Members no longer turn their guns on you, vanish while following, or stand around when you start a fight.

Your lieutenant
- One contact instead of three: call him and pick backup, transport, a drive-by, an assault, a ride-along or a conquest, each priced before you open it.
- He answers like a person: he greets you, confirms each order in a word, and says plainly why an order was refused.
- Ask him how you are doing and he reports your hold on the neighbourhood and the city, daily income and treasury.
- He runs turf operations himself; switch "Ask me first" back on if you would rather approve each one.
- An order you place is a visible short phone call: your character takes out the phone, makes the request, hangs up, and the answer arrives by text.

Territory and conquest
- Every gang takes a block its own way, and the hour decides how: bikes by day and cars after dark for some, choppers at any hour for the Lost, distance and car bombs for Armenian Power, close and loud for the Koreans.
- Ordering a conquest, you pick what the crew rides rather than how many cars; the screen tells you what that costs before you commit.
- A gang's wealth shows in the street: a faction holding a lot of turf arrives in force, one pushed back to a couple of corners sends what it can spare.
- Losing men costs a faction real money, so a gang that keeps throwing crews at fights it loses runs itself down.
- A crew sent to take a block goes after whoever is holding it on arrival, and engages rivals it crosses on the way.
- Who comes for you after you take a corner depends on what just happened: the crew you hit, the owners you pushed out, the gang whose product runs that block, or the neighbours.
- Walking away from a confrontation counts as backing down, and turning your back on a fight over a corner hands it to them.
- The winning side of a settled battle calls extraction cars that pull up, wait for the survivors to board, and leave.

The street
- The street deals in three products — weed, crack and cocaine — priced at what they are really worth, and a corner being worked genuinely earns for the gang holding it.
- Operations, backup and street recruitment cost three times what they used to, and money comes in more slowly. Building a crew is a plan now, not a formality.
- A sale happens up close and you watch the money change hands; as the boss you point a customer at one of your crew rather than handling the product yourself.
- Asking a member about weapons gets you an answer about what he is actually carrying, and a bought weapon reaches you only once the hand-off gesture is finished.
- Supply deals between gangs happen in the alleys, with visible cases of product and cash and the money stored in the trunk before the seller leaves.
- Customers arrive in small waves from different streets, and one left waiting goes to find someone else instead of standing there.
- Standing watch on your crew's corner is a real job: call out the police or a rival crew coming up the block and you earn standing with your gang. Nothing marks the threat for you.
- A faction you have wronged turns you down to your face; push him anyway and it becomes a fight that leaves the two crews on worse terms for good.
- A store robbery unfolds around whoever is there: your crew covers the clerk and smashes the registers, nearby faction members may join, the clerk may fight back, and police answer on the ground and in the air.

The action wheel
- Press Down to turn the wheel on, then hold L1 whenever you want it; turning it off gives L1 back to the normal weapon wheel.
- It carries a weapon wheel of its own with one fixed spot per family, each showing the weapon you last took there and its ammunition.
- Activities, orders and taking control cycle their options directly; the faction sector opens every support and operation service, each with its own confirmation screen.
- The targeted person's portrait sits in the centre of the interaction wheel, with illustrated icons for each action.
- On controller, the empty slot of the game's own character wheel opens the nearby-person takeover picker.

Making it yours
- An outfit studio with a loaded preview space, a camera you turn and zoom freely, automatic close-ups per category, randomisation, undo and named saved outfits.
- A faction studio with an animated group preview: vehicles, weapons, colours, personality, attack strategies and a starting crew of up to four, remembered per character.
- You can take control of any nearby person, from the interaction menu or from F5, whether or not they are already caught up in something.

When you go down
- Going down no longer cuts to the respawn screen: you get a moment to steady yourself, or take over a nearby ally or rival.
- Choose your hospital from the recovery menu and wake at Mount Zonah, South Central, Pillbox Hill, Sandy Shores or Paleto Bay.
- Being freed because the officer went down gets you out on your own two feet and keeps the heat off while the shootout lasts.

Elsewhere
- Street scenes can start in front of you rather than waiting for you to look away; crews still arrive from beyond your view and walk or drive in.
- A subtitle and a menu are never on screen at once: a line takes the screen for as long as it needs to be read, then the menu comes back where you left it.
- A conversation stays open until you end it yourself, and the portrait stays up throughout.
- People stand still and face you while their options are on screen, and a conversation broken by a fight ends cleanly.
- Responding vehicles no longer park on a bridge above the scene they were called to; with no road access the crew says so and comes in on foot.
- Road traffic can thin out during a beef and returns to normal when it ends.
- When something goes wrong, the mod tells you and lets you report it in seconds, with your note and a focused excerpt of the session.
- "War Party" is now called "Conquest", which is what it actually is.
- The Supplier phone contact is gone.


[0.9.0-beta] - 2026-07-19

New:
- A master on/off switch in the menu, and an Events section to turn off individual events you would rather not see.
- Each protagonist can run with a different crew, or with none at all. The mod tells you which one on load and when you switch character.
- The menu key is now yours to choose (MenuKey in interactv.ini).

Changed:
- Recruitment, ride along and the phone contacts have been rebuilt. Still being tuned - expect rough edges.
- Faction relations follow your own affiliation instead of a fixed setting per faction, so switching gang actually switches sides.
- Config reorganised and some concepts renamed for clarity: "scenarios" is now "scenes", encounters and world_events moved to the top level, faction files split by type, and everything the mod saves for itself lives in a new "data" folder.
  IF YOU ARE UPDATING: move your own customised files to the new spots, and move gang_zones.xml, territory_wins.xml, faction_state.xml and scene_positions.xml into scripts/InteractV/data - otherwise you start over with fresh turf.

Fixed:
- The mod stays out of story missions and cutscenes, then picks back up on its own.
- Plenty of smaller stability and compatibility fixes across scenes, police work and world events.


[0.8.22-beta] - 2026-07-18

New:
- Your gang affiliation can now be tied to which protagonist you're playing: set a different crew (or make yourself a neutral civilian) for Michael, Franklin, and Trevor, switching automatically the moment you change character.
- The F5 menu's gang picker now includes a Civilian option: flip yourself to a neutral, non-gang bystander (or back to a gang) directly from the menu.

Fixed:
- Going Civilian in the F5 menu now properly hides the gang list and clears your gang's phone contacts (Backup, Drive-by, Ride Along) and recruit prompt, instead of leaving them active.

[0.8.21-beta] - 2026-07-13

New:
- New option to automatically pause the mod during story missions and cutscenes, so it never interferes with vanilla content (interactv.ini: DisableDuringMissions, on by default). A brief on-screen notice shows when it pauses and resumes.
- Optional experimental police combat safety: when a police officer shoots or enters combat, nearby non-police NPCs can be permanently disarmed and flee using a vehicle when possible.
- Gang members fleeing police now share getaway vehicles: the driver waits and honks while nearby members of the same faction board.
- Suspects who shove an officer can now receive a short controlled nightstick response before the arrest continues.

Fixed:
- The right directional command now prioritizes insults during a nearby interaction instead of recruiting a faction member at the same time.
- Ride-along passenger commands now also appear when you board a faction member's ambient vehicle directly, wait for a visible 5-second confirmation before starting a drive-by or assault, and label the right-arrow movement command consistently with the other controls.
- War parties interrupted by nearby police now transition naturally into arrests instead of simply dispersing.
- War party march is now smooth: members follow the leader continuously instead of hitching and turning every couple of seconds.
- War party arrival: members walk onto their spots and each play an idle scenario, instead of snapping into place or standing around doing nothing.
- Taking a spot with a war party no longer flips it instantly: the spot blinks as contested for a while as the crew settles in, and only changes hands once they've actually taken hold.
- War party: members now close in tight around the leader for his speech instead of some standing off at a distance.
- War party: marching members keep their eyes forward on the leader instead of glancing back at someone behind, which looked like they were turning around mid-march.
- Ride-along: your faction's driver now swerves around pedestrians on the way to you instead of plowing through them (still comes in fast).
- Faction SMS: a war party no longer sends you two identical intel texts back to back.

[0.8.20-beta] - Internal build (2026-07-11)

Fixed:
- Better compatibility with story missions and other mods: InteractV no longer pulls mission-owned or script-owned peds (e.g. story mission characters, or peds spawned by another mod) into its interactions — it only uses ambient world peds.
- Turf dogs now actually join a nearby gang fight: they're picked up around the whole crew (not just the leader), and a dog standing on the gang's turf joins even if it wasn't tagged to that gang yet — while a rival gang's dog is left out of it.
- A contested turf spot no longer keeps flashing the previous fight's gang colors: it now shows the colors of whoever is actually still fighting there, and stops flashing once one side is wiped out — so a new fight (e.g. a third gang moving in) is shown correctly instead of freezing on the old matchup.
- When a war party settles onto a rival spot, its members now face the right way at their positions instead of some standing turned in an unnatural direction.

[0.8.19-beta] - Internal build (2026-07-11)

New:
- Dogs on a gang's turf now join the fight as allies: they run at the nearest enemy, bark them down, lock onto anyone who aims at them, and sometimes chase down a fleeing enemy. Their presence rattles the other side into backing off more easily.
- After a confrontation ends, gang members let go near their own turf now drift back to it: they take an open spot and hang out there, or gather in front to reinforce a spot that's already busy, instead of wandering off.

Fixed:
- War-party members now follow their leader along a proper path, routing around walls and corners instead of walking straight into geometry, and gather onto their formation spots once the leader reaches the destination.

[0.8.18-beta] - Internal build (2026-07-11)

New:
- Dogs hanging around a gang's turf now side with that gang: they treat that faction (and you, when it's your own faction's turf) as friends and stay calm with everyone else, only turning on rivals during a turf takeover.

Fixed:
- After a police stop or control ends, officers no longer end up clinging to the side of their vehicle (especially the FIB SUV): they now board their proper seats cleanly instead of being shuffled onto phantom seats.
- Gang war-party members now trail their leader smoothly instead of moving in jerky stutters, and they walk calmly once they're in formation rather than jogging on the spot when they're already right behind him.

[0.8.17-beta] - Internal build (2026-07-10)

Fixed:
- Your own faction's members no longer turn their weapon on you when you aim at them — only rival or hostile NPCs lock into the tense face-off.
- An enemy you put in your sights now always locks into a tense face-off and stops firing at you — even in the middle of a gunfight — instead of shooting you the instant you aim. Lower your weapon and they swing their aim onto the nearest threat and stay on guard.

[0.8.16-beta] - Internal build (2026-07-08)

Fixed:
- War party members no longer speed off in a car when their gathering is cancelled or times out (or when the mod reloads) — they now disperse on foot, matching the fix for extra members at formation.
- When a gang war party forms, extra members that don't join no longer bolt for a nearby car and speed off as if fleeing — they now calmly wander off instead.
- Gang war parties no longer "march" without moving: if the rival turf they would target is already right where they gathered, they now disperse instead of instantly arriving and resettling on the spot, which looked like they teleported in place.

[0.8.15-beta] - Internal build (2026-07-08)

Fixed:
- Right after loading in, encounters between NPCs no longer kick off instantly — there is now a short calm period so the world can settle before scenes start happening around you.
- After reloading the mod mid-session, spawn events and the "Press F5" hint no longer fire instantly — you now get a quiet grace period first, like on a fresh start.
- During a scene, gang members no longer freeze up in place: they stay reactive to what happens around them. Only the NPC you personally aim at locks into a tense face-off, drawing on you without firing until you lower your weapon.

[0.8.14-beta] - Internal build (2026-07-07)

Added:
- Premium territory: when a large crew of the same gang gathers off-screen near you, they can form up and march on foot to the nearest rival turf — fighting anyone there or claiming the spot if it is empty.
- Premium territory: your faction may sometimes text you on its own and roll up in a ride-along car; if you do not get in, the crew heads out on the drive-by without you instead of cancelling.
- New F5 "Events" menu: turn off spawn events and encounters you don't want, one by one or all at once.

[0.8.13-beta] - Internal build (2026-07-07)

Added:
- Ambush reactions now vary by faction instead of everyone behaving the same way: aggressive gangs fight back more often, cautious ones tend to flee, and organized crews are more likely to take cover.

Fixed:
- A gang member who just finished shooting during a drive-by or ambush no longer immediately wanders off on their own — they settle down properly first, fixing a rare case where they could turn on their own crew right after.
- The "Ride Along" pickup car now parks much closer to you instead of stopping way down the street, and flashes a brief blip on the map so you know it has arrived.

[0.8.12-beta] - Internal build (2026-07-06)

Added:
- Targets caught in a drive-by or ambush can now fight back, flee, or dive for cover depending on their crew's personality, instead of just standing there and taking it.

Fixed:
- Reinforcement convoys made up of several vehicles no longer abandon the trailing cars mid-route — every vehicle now properly reaches the scene before its crew joins in.
- Fixed a bug where getting out of the car during a faction "ride along" drive-by could leave your character wandering on its own once the drive-by ended, locking you out of control.

[0.8.11-beta] - 2026-07-05

Fixed:
- Your selected gang now stays consistent after changing appearance or reloading, so your faction’s ally/enemy behavior matches what you chose.
- Friendly gangs no longer trigger unwanted allied gunfire against your selected gang during open-world turf events.

[0.8.10-beta] - 2026-07-03

Fixed:
- In Basic edition, the F5 options menu now only shows settings that actually work in Basic, so Premium-only switches no longer appear as usable toggles.
- The F5 options menu can now change the UI language during the session.
- Premium players now get a dedicated F5 Premium menu for real Premium-only choices, including territory map display and faction SMS notifications.
- Friendly or allied gangs no longer start natural turf-war staredowns with each other; they can still meet through peaceful deal events.

[0.8.9-beta] - 2026-07-02

Fixed:
- Police now try to shoot out the tires of a suspect's getaway car once they hand a chase off to open-world AI, instead of firing straight through the bodywork at the suspect.

[0.8.8-beta] - 2026-07-02

New:
- A single language setting now drives every InteractV text: the F5 and F6 menus, the on-screen help tips, and faction SMS. Set it once in interactv.ini ([General] Language = en or fr) and everything follows it.

Fixed:
- The F5 (InteractV) and F6 (crew command) menus have been rewritten for clarity: fixed missing accents, tightened wording, and an English label that had been left in the middle of the French text ("Dismiss").
- The on-screen help tips (F5 menu, phone contacts, crew command, taunting nearby NPCs) are now more explicit for new players — for example the phone tip now tells you to open your in-game phone, and the taunt tip clarifies it only works near an active scene.

[0.8.7-beta] - 2026-07-02

Fixed:
- iFruit phone contacts now follow the configured faction SMS language: English players see English contact names, French players see French contact names, and custom contact names can be set per language in interactv.ini.
- The phone reinforcement section in interactv.ini now only shows real player choices. Technical tuning such as cooldowns, trigger names, timeouts and pickup distances is handled internally.

[0.8.6-beta] - 2026-06-30

New:
- Homeless packs now torch parked cars with Molotov cocktails at night: a small group walks up to an abandoned car, sets it ablaze, then scatters.
- The homeless are now the only crowd that both turns on its own and bands together: when two of them meet they either team up or brawl it out on the spot. Allied pairs may now also steal a nearby parked car and drive off (day or night), on top of the night-time car burning.
- A gathering of three or more homeless now draws a police control: officers roll up and work the existing control routine on the group.
- The homeless crowd now covers many more models (military bum, rural meth, and the various male/female tramps), so these events show up far more often.
- Fake deals now play out like a real gang deal and only turn at the very end: the crew acts out the whole transaction, heads back to their car, then betrays at the last moment — by drive-by, by piling out for a foot assault, or by leaving a suicide bomber behind, depending on the faction.
- Suicide bombers are now a passenger who steps out of the crew car (the driver stays at the wheel), charges the target with a war cry, and blows up at point-blank range while the rest of the crew wait and then peel away.
- Car bombs now arrive as two vehicles: a getaway car and a lone bomb car. The bomb car is parked right by the target and abandoned, its driver jumps into the getaway, and the car detonates once they have pulled back to a safe distance.
- Revenge crews can now run vehicle-borne sniper hits, solo or as a team: the car rolls up, stops at sniper range, the shooter(s) step out and fire real aimed shots at the target's head until it goes down, then they get back in and drive off.
- Armenian and Korean crews can now kidnap rival gangsters or isolated civilians: the crew rolls up, forces the target straight into its own car, and leaves without the police arrest kneel/prone routine.

Fixed:
- Fake deal crews now return to their original car seats before the betrayal, and if the original driver dies a surviving passenger can take the wheel instead of everyone piling onto the same seat.
- Fake deal betrayals now alarm bystanders around both the crew vehicle and the target, using the correct gunfire panic event for drive-by and dismount assaults.

[0.8.5-beta] - 2026-06-28

New:
- Some factions can now pull a treacherous "fake deal": they roll up like they're here to trade, fake the handover, head back to their car, then betray the other gang — either spraying a drive-by on the way out or piling out for a foot assault, depending on the faction's style. Armenian and Korean crews use it; the betrayal sours the two gangs' relationship.
- Gang relationships can now turn friendly, not just hostile. Repeated successful deals between two factions build a bond: once they are close enough they stop shooting at each other through territory events. Beefs and battles push the relationship back toward hostility.
- What two factions do to each other now carries its own weight: each scenario outcome declares its relationship impact, so a clean deal brings two gangs closer while a fight drives them apart. Tunable in territory.ini under [Rivalry] and per scenario.

Fixed:
- Suspects who get stuck hands-up while boarding a police vehicle can now break into a believable escape: they may grab a nearby vehicle or get picked up by their faction, then police continue the chase through native AI.
- Reinforcement, drive-by, dismount, two-wheel and tow-truck scenes now recover better from stuck vehicle entry or departure, so peds and vehicles are less likely to freeze in place after the action.
- Tow trucks no longer snap their heading into place before towing, and if the tow gets stuck they now detach and try hooking from the other side of the vehicle before giving up.
- Drive-by passengers now re-check their faction loadout before firing, preventing unarmed passengers from sitting through the attack.
- Drive-by crews now keep fleeing in their vehicle unless they can actually burn the getaway car, preventing early car abandonment during the escape.
- Police controls now ignore paramedics, so ambulance responders are no longer stopped or arrested like suspects.
- Police crews now return to their original patrol vehicle and seat after an interaction; if the original driver is dead, a surviving passenger can take the wheel.
- Gang members who were idling in a scenario before a successful peaceful deal now return to that ambient behavior instead of fleeing as if the deal had turned violent.
- Vehicle getaways now reserve every seat before actors board, wait for assigned passengers more reliably, and drive away with a cleaner urgent style that ignores lights without ramming through traffic as aggressively.

[0.8.4-beta] - 2026-06-27

New:
- Added an in-game InteractV menu on F5. You can change your player faction during the session and toggle useful gameplay options like player involvement, blips, line-of-sight gating, phone reinforcements, drive-by, and Ride Along contacts.
- The F5 menu can now pick a random gang plus matching player model, or let you choose any player model defined in the selected gang's group XML.
- Territory gangs can now trigger fast carjackings against civilians in luxury cars or on motorcycles: crews threaten the driver, steal the vehicle, and flee with accomplices when possible.
- Female gang members can now start same-sex street beefs with prostitutes through a dedicated prostitute group, route, scenario, and behavior profile that can be tuned separately from gang-vs-gang.
- Faction strategies can now be limited by in-game hours, so some gangs can act mostly at night while deals, drug sales, drive-bys, and dismount assaults can still happen during the day when configured.
- Spawn trigger strategies can now use a sniper-hit arrival: a real shooter spawns off-screen, lines up a long-distance shot with configurable headshot chance, then flees naturally.
- Armenian revenge crews can now occasionally choose a night sniper hit instead of always arriving as bombers or dismount assault crews.
- Faction tactics now differ more clearly: Armenians favor sniper/sticky/contract-style assaults, Koreans use short disciplined hit-squad dismounts, Lost crews use dirty burn-and-run biker raids, Ballas/Vagos/Salva lean into drive-bys, and Families favor local defensive ripostes.
- Added a separate F6 faction command menu for your nearby crew: recruit faction members, make them follow, hold position, find a car, dismiss them, and switch between calm, natural, or aggressive behavior with separate weapon modes.
- Gang rivalry is now tracked per neighbourhood: a gang's biggest rival in one zone (e.g. Davis) can differ from elsewhere, based on how many beefs actually happened there. Territory revenge crews target the local top rival.
- Territory responses now require nearby turf: a gang won't drive across the map to intervene unless it owns a spot near the scene (about 300 ft), keeping fights to real neighbourhood conflicts.
- Added per-zone heat: violent gang activity heats up a neighbourhood and the police start coming to control and arrest gangs there more often; the zone cools down over time. Tunable in territory.ini under [Heat].
- Female gang members can now run into prostitutes more reliably: a prostitute can be spawned near a lone female gangster to kick off the same-sex street beef, instead of waiting for a rare ambient encounter.

Fixed:
- Territory revenge, contestation, drive-by and similar spawn events now respect their configured vehicle count instead of silently adding extra cars to fit the full ped count.
- Territory spawn events now avoid stacking multiple active triggers on the same scene, preventing several revenge/contestation crews from arriving at once.
- If a convoy driver dies, a surviving passenger can take the wheel during the approach or when the crew is released, so vehicles no longer sit full of stranded passengers.
- Shopkeeper robbery scenes now use the supported stare action name, preventing the old fixation action from falling back to idle.
- SWAT rappel helicopters now use a lower native hover without being forcibly repositioned, so rope deployment stays smoother while SWAT still descends in pairs.
- SWAT rappel teams now move toward the tension zone after touching down and are only released once they reach it.
- SWAT rappel pedCount now deploys in rear-seat waves, so larger counts continue rappelling two by two instead of being capped to the first pair.
- SWAT rappel helicopters now extend their hold time based on pedCount, and rappel troops clear the rope task before moving toward the tension zone.
- Ambulance responders now leave the ambulance before the medical scenario starts, and the victim approach reuses the generic approach state instead of a medic-only movement state.
- Ambulance CPR now plays the proper paired CPR animations, then sends the revived patient to the rear of the ambulance while the medic returns to the driver seat.
- Foot pursuits during an arrest no longer stop dead when the scene ends: the officer keeps chasing and the suspect keeps fleeing, instead of both wandering off.
- SWAT troopers now push toward the scene the moment each one finishes rappelling, instead of the whole team waiting at the helicopter until the last man is down.
- Shopkeeper robbery scenes now play their intended menace and close-quarters fight actions instead of standing idle.
- Tow trucks now line up in front of the target vehicle before hooking it, and no longer stay parked on the spot forever after towing.
- Gang fights that end while combat is still raging (e.g. right after a territory conquest) no longer freeze or scatter everyone: the survivors keep fighting under native AI and losers flee naturally, instead of suddenly standing idle.
- Gang members can now break and flee a fight instead of always battling to the death — a losing crew can run when overwhelmed or badly hurt.
- Spawn-trigger vehicles (police FBI cars, gang convoys, etc.) no longer linger forever after the event: any vehicle that loses track of its convoy is now released and streams out, and all of them are cleaned up on script reload.
- Civilian witnesses (and gang leaders calling for backup) now actually hold a phone to their ear during the call instead of miming it with an empty hand.

[0.8.3-beta] - 2026-06-24

New:
- Gang members can now rob shopkeepers: they approach, threaten the clerk, and the scene can branch into compliance, panic, shotgun standoffs, brief gunfire, close assault, or a vehicle escape.
- Territory events can now send the gang that owns the most spots in the current zone to rob a nearby shopkeeper, with occasional police response during the robbery.
- Some faction revenge crews can now burn their getaway vehicle after escaping: they get out, throw Molotovs at the car, then scatter on foot.
- Dismount assault timing is now tunable from XML and faction strategies, so factions can use longer or faster vehicle raids without duplicating territory triggers.
- Scenario XML can now choose a named starting step with startStep, making module-style scenario entry points easier to tune.
- Scripted actor Speech values can now list several native speech names; one is picked randomly when the action runs.
- Drive-by spawn triggers can now define weighted Escape destinations in XML, so crews can flee toward authored disposal routes instead of only driving away from the target.
- Spawn trigger arrivals can now make nearby bystanders react through XML-configured BystanderReaction radius and event type, while still letting ambient peds return to their scenarios afterward.
- Death conquest now observes confirmed owner-gang deaths near a spot and can award a territory win to a credible gang challenger, including active drive-by crews.
- Drive-by and Ride Along now have clearer in-car feedback: pickup greeting, target spotted speech, optional flashing target blip, and staggered fallback/cheer lines as the crew flees.
- Ride Along pickup cars now honk while waiting for you, and drive-by crews flee harder after the hit instead of calmly driving away.
- French faction SMS now use more natural short street wording instead of translated-sounding lines.
- Air support flyovers now expose spawnDistance in XML, and Ride Along pickup vehicles are biased toward hidden/off-screen road spawns instead of appearing right in front of you.
- Your faction can now text a "spot held" style message when it successfully defends one of its own territory spots.
- Drive-by and Ride Along phone SMS now live in each faction XML through PhoneDispatch and PhoneNoTarget messages, so faction tone and language can scale without putting dialogue in interactv.ini.
- Territory spawn trigger XML now uses clearer names and comments: TriggerTarget, Vehicle spawnDistance, Approach arrivalDistance and footSpawnDistance. Legacy names still load.
- Premium players can now choose faction SMS language with Language=en|fr in config/interactv.ini [FactionSms]. English remains the default, and the Families now include a full French SMS set.
- Faction operation alerts now respect your chosen language end to end: with English selected you no longer get stray French call-outs, and the Families faction now has English call-outs alongside its French ones.

Fixed:
- Early gang reinforcement calls are now NPC-only and the phone call plays more naturally before backup spawns.
- Gang reinforcements and scenario arrivals are less likely to stay locked by event control once they should be available to normal combat or ambient behavior.
- Ride Along pickup prompts and timeout texts now respect the configured faction SMS language.
- Pursuit behavior is now reserved for enemies that are actually fleeing; close targets fall into melee combat instead of causing awkward long-distance chase behavior.
- Dismount assault crews now recover if their driver dies: a surviving crew member takes the wheel and flees with the vehicle instead of staying stuck.
- Gang deals and bum drug-sale events now target gang members already placed in ambient scenarios, and the inter-gang transaction now steps closer before the handoff animation.
- Drive-by and Ride Along phone confirmations now sound like crew dispatch messages instead of announcing the target or operation upfront.
- Drive-by and Ride Along phone calls now play the same configured player call speech as faction reinforcement calls.
- Multi-spot territory conquests now group nearby spot flips into one faction SMS instead of sending several texts at once.
- Faction SMS no longer send a follow-up when a nearby target simply disappears before the event starts.
- Faction intel SMS now avoid sounding like they can predict rival intentions; they describe sightings, movement and caution instead.
- Arrested suspects no longer freeze with their hands up: they reliably find and walk to a police car even when one was not pre-assigned.
- Police spawned by world events now hold their ground and fight back instead of acting like fleeing suspects.
- Bodies from world-event peds no longer pop out of existence the moment they die in front of you; they stay until you have moved away.
- SWAT rappel insertions now use the configured crew count, descend in pairs, and keep their rifles visibly equipped after landing.
- Army parachute responders now stay script-owned until they reach the ground, preventing soldiers from disappearing mid-drop, and equip their rifles after landing.
- Ambulance responders can now start their medical scenario on a dead victim instead of immediately ending because the patient is already down.
- Motorcycle riders knocked off their bike while riding in now get back on, or finish the approach on foot, instead of staying stuck.
- At the end of a gang deal or control, crews head back to the vehicle and seats they arrived in, so a full car leaves with everyone aboard; if the driver was killed, another member takes the wheel.
- Ride Along drive-bys no longer freeze when there is no target nearby: the crew searches briefly, then drives off cleanly.
- The territory system no longer treats a gang you are already busy controlling as an open turf to contest.

[0.8.2-beta] - 2026-06-24

New:
- Territory ownership areas can now be hidden from the pause map/minimap with ShowTerritoryBlips=false in config/territory.ini, while keeping the territory system active.

[0.8.1-beta] - 2026-06-23

New:
- Player insults are now configurable in interactv.ini: set PlayerInsultSpeeches directly, or leave it empty and choose a PlayerInsultSpeechBank.
- Premium players now get separate iFruit contacts for a normal faction drive-by and a Ride Along drive-by. Ride Along sends a faction-specific 4-seat car to pick you up first so you can ride in the back and take part. Drive-by calls can now also search known rival territory spots when no nearby target is visible, preferring gangs with stronger rivalry before falling back to another hostile spot.

[0.8.0-beta] - 2026-06-23

New:
- Premium players can now call their own faction from the in-game iFruit phone. Your character calls for help, backup spawns off-screen, walks in, and joins a nearby fight involving your faction; if there is no active fight nearby, they arrive and return to ambient behavior.

Fixed:
- Turning off blips in interactv.ini now also hides interaction ally, backup, convoy and air-support blips, instead of only hiding the initial interaction/debug marker.

[0.7.2-beta] - 2026-06-22

New:
- DeveloperMode now has a guarded territory reset command: press Ctrl+Shift+F9 to clear gang territory ownership, contest progress, and rivalry memory, then let the world rescan fresh.
- Gang phone notifications now use short faction-specific message pools for territory attacks, revenge runs, drive-bys, dismount assaults, deals, drug sales and reinforcements. Messages can mention the real zone name and target gang, so calls feel more local and less repetitive.
- Latino gangs now have a slightly more bilingual street tone while keeping messages mainly in English.

[0.7.1-beta] - 2026-06-22

Fixed:
- Gang reinforcements no longer break immersion: instead of gang members popping out of nowhere into idle ambient scenarios (drinking, smoking, hanging out) on random pavement mid-fight, the outnumbered leader now visibly makes a phone call (phone animation + shout), and the reinforcements spawn off-screen, walk in, and join the fight as actual combatants.
- Military passengers from a Barracks now spawn ARMED with their loadout and with full law combat attributes, so they hold their ground and fight instead of coming out unarmed and running away like civilians (previously only the driver was set up — the back-seat soldiers were left unarmed).
- A nearby external gunfight now correctly cancels a gang-vs-gang confrontation again: only gunfire from peds that are NOT part of the confrontation counts, so two adjacent fights no longer keep each other alive forever.
- Crew no longer gets stuck when re-boarding their vehicle at the end of an interaction: the one who takes the wheel now actually drives off (it previously just sat there), and everyone reserves a distinct seat up front instead of all piling toward the same one. And if someone's seat does get taken or the car pulls away before they reach it, they now recover within a couple of seconds (grab another free seat or walk off) instead of standing frozen for 10-20s.
- Two simultaneous arrests no longer send both suspects toward the same police car: each arrest now claims its own transport vehicle — one car per suspect.
- Territory vehicle repaint no longer recolors a car an NPC just stepped out of: only vehicles that have never had any occupant get repainted. (Still fully disable-able via territory.ini VehicleFlipRadius=0.)
- During an arrest, a second officer no longer races the transport vehicle's driver seat (including an ambient police car picked as transport) and gets stuck in front of it: the wheel is reserved for the designated driver from the moment one is assigned — even before the suspect is seated — so other officers take a passenger seat or return to their own car.
- Officers now fill ANY free seat in the suspect's transport vehicle, including the rear seat next to the prisoner (a guard rides in the back) — they're no longer blocked from the back and left wandering. The van waits a few seconds for a boarding officer before driving off, and wandering is now genuinely the last resort (own car → nearby police car → a spawned no-siren pickup that drives to them → only then wander).
- Gangsters and civilians leaving an interaction can no longer grab an emergency/police vehicle as a getaway car: they now skip police, ambulance and fire vehicles when picking a car, so an officer never returns to find a gangster sitting in its seat and gets stuck on foot.
- Spawn-trigger units no longer pop in right next to the player: being off-screen wasn't enough (a point directly behind you is off-screen yet only a few metres away), so spawns now also require a minimum distance from the player — foot spawns pick the farthest off-screen spot, and vehicle spawns won't fall back to a road node close to you.
- When a gang fight turns into a melee brawl, the game no longer takes over instantly: the script holds the fight for ~10s so everyone actually commits to it before being handed off, instead of some peds wandering off before the brawl gets going.
- The minimap spot now keeps blinking through the ENTIRE conquest, including melee / last-man-standing battles: previously the blink vanished while the battle was still being decided, so you couldn't tell which spot was in play. Every conquest — scripted or battle-resolved — blinks until it settles.

Changed:
- Premium/basic split is now enforced for territory content: Basic keeps the world reaction layer (police, military and helicopter/air support), while territory ownership and gang territory events require Premium.
- Spawn-trigger events and interactions now share one global cap (MaxInteractions): a spawn-trigger event no longer fires while that cap is already filled by active interactions (and vice-versa), keeping events and interactions mutually exclusive within the limit.
- Officers boarding after an arrest now head to the NEAREST car first and take the best free seat in it (driver, then passenger, then rear), instead of all chasing the same seat rank across the whole scene — more natural, less walking back and forth.
- Gang members approaching another gang no longer sprint across long distances: a normal (non-pursuit) approach now walks or trots, and the full sprint is reserved for actually chasing a target that's fleeing.

[0.7.0-beta] - 2026-06-20

Fixed:
- Law groups never fight each other: police, SWAT and army are treated as allies, so an officer will no longer try to control or arrest a SWAT member or soldier.
- Officer left behind at the end of an interaction: a cop that lost its seat (or had no vehicle tracked) now boards the nearest police vehicle that still has a free seat instead of standing idle in front of a car that has room.
- All spawned law units — police, SWAT, and now army too — go through one shared setup that flags them as cops and applies the full police combat profile, so no spawn is left behaving like a passive civilian.
- Arrest boarding choreography: every officer (including the one leading the arrest) now HOLDS aim on the suspect until he is actually seated, then boards — no more cops walking back and forth to the car, boarding before the suspect, or standing frozen aiming once he's in. When boarding they fill seats by priority (driver, then front passenger, then rear) and re-evaluate every second: if a faster officer grabs the seat they were heading for, they instantly pick another free seat (or a nearby police vehicle) instead of walking to an occupied seat and giving up. The driver of the suspect's vehicle is now simply the first officer to claim the wheel (not forced to be the arrest leader), and it waits a few seconds for officers still walking over before driving off — so nobody gets left behind.
- Witnesses calling the cops: a scene now triggers ONE bystander police call, not several — no more waves of patrols from the same fight.
- Convoy allies dismounting too far: a convoy car's crew is now only recruited into the fight once the car is GENUINELY at the scene (it still spaces out on the way in), instead of bailing out dozens of metres away.
- Drive-by / dismount that parked and did nothing: GTA often parks the convoy at the nearest road node, tens of metres short of an off-road target. The crew now still engages (drive-by fires, dismount crew runs in) instead of idling in the car with its blip stuck on — which also means the event ends and its vehicles get released naturally instead of lingering.

Changed:
- Melee brawls hand off to GTA: when a gang confrontation turns into a melee fight, the scripted interaction now bows out and lets GTA's native AI run the brawl. This frees the fighters so the territory battle system can pick them up and decide the spot by who's left standing when the dust settles.

New:
- Faction reputation (Respect): each gang now has a single faction-wide gauge, Respect, that rises when it wins fights / takes spots and falls when it loses them (config/faction_profile.xml). Respect makes a gang fight with more confidence when high, and makes a humiliated gang (low Respect) more likely to go on the offensive. Respect changes slowly (small steps + a sliding cap) so a multi-spot defeat no longer collapses it at once. It persists between sessions (config/faction_state.xml).
- Inter-gang rivalry now drives behaviour: the per-pair rivalry the engine already tracked (who has wronged whom) goes UP on fights/spot losses and DOWN on successful deals. It decides whether two gangs deal or brawl, and how likely an offensive is.
- New responder sources for territory events (config/spawn_triggers/territory_events.xml): in addition to previous_zone_owner and top_rival_by_score, you can now use lowest_respect (the most humiliated rival retaliates), nearest_rival (neighbourhood conflict), and recent_aggressor (tit-for-tat).
- Inter-gang deals: gangs with low mutual rivalry sometimes drive up to each other and trade (scenarios/gang_vs_gang_deal.xml). A successful deal lowers their rivalry; occasionally it goes bad and turns into a gang fight.
- De-escalation: if too many bystanders (or cops) are around, a gang confrontation now breaks up BEFORE it turns violent — members peel off one by one (the ones farthest out leave first), driving off if they came by car, walking off toward their own turf otherwise.
- Weapon loadouts (loadouts.meta style): each group XML now uses a <Loadout> with <Item weapon="..." ammo="..." chance="..." flags="..." melee="..." />. Firearm "chance" is a weight for a weighted random primary (so weapon choice is realistic, not flat-random); melee "chance" is a backup probability. Weapon names accept both SHVDN names (Pistol) and canonical WEAPON_* names (incl. add-ons).

New:
- Bystanders call the cops: a civilian witnessing an assault may pull out their phone, call for ~5s, and trigger a police response. Tunable via [Factions] BystanderCopCallChance.
- Gang reinforcements: at the start of a gang-vs-gang fight, a gang that is outnumbered AND has one of its own spots nearby may call for backup (they shout for help and members show up). Tunable via [Factions] GangReinforceChance.

Changed:
- All territory events are now driven by natural detection again (local to the player, spaced by their own cooldowns) and biased by Respect/rivalry, instead of all firing together. This removes the "everything happens at once" bursts.
- De-escalation now uses an extended BACK_DOWN: when bystanders/cops are around, gangsters apologise and actually walk apart before the confrontation ends (they no longer freeze in place).

New:
- Battle conquest: a real gunfight between gangs near a spot (3+ members per side, in combat) now contests that spot. The mod watches the native fight and, once it settles, resolves it by SURVIVORS — the side with more survivors captures the spot; a wipeout on both sides leaves no winner. Replaces the old death-toll conquest. (Tuning in TerritoryConfig: BattleMinPerGang, BattleSettleMs.)

Fixed:
- Helicopter crew are no longer dispatched as ground officers to arrest a killer.
- Spawned gang members (drive-bys, convoys, reinforcements) now share their gang's natural relationship group (declared per gang in groups/*.xml via relationshipGroup), so a gang no longer shoots at its own drive-by crew. All spawns go through one shared setup.
- Law groups (police/SWAT/army) can no longer capture gang territory — only real gangs own turf.
- Helicopter air-support crew stay aboard with their carbine drawn and visible (SWAT), and never start a ground police control or arrest.
- During an arrest, surplus officers now board the transport (filling free seats without piling up) or wander off when it's full, instead of standing around aiming.

Fixed:
- Arrest boarding loop: the suspect now boards the police vehicle ONCE and stays seated, instead of getting in, out, and back in repeatedly.
- Crowd density now updates correctly for every simultaneous confrontation (it was shared across interactions before), so de-escalation reacts reliably to bystanders.

New:
- Granular startup notifications: The boot sequence now explicitly displays the count of loaded Scenarios, Groups, Behaviors, and States, clearly distinguishing between "included" (embedded) and "custom" (local overrides) for each category.
- Explicit debug logging: ResourceLoader now logs the exact clean path (e.g., config/routes/base) of every loaded XML file, rather than just the short name, to help track down exactly which file is being loaded from the DLL or disk.
- Per-faction combat stats: each group XML now supports <CombatStats accuracy="N" damageMultiplier="X" /> to tune GTA aim accuracy (0-100) and weapon damage multiplier per faction. Salva set to accuracy=80, x2 damage.
- Fear-gated flee/surrender: FLEE, FLEE_VEHICLE, GANG_SURRENDER, and BACK_DOWN states in the gang_vs_gang behavior are now gated by a minimum Fear trait. Factions with fear=0 (e.g. Salva) can no longer surrender or flee regardless of situation — they fight to the end.

[0.6.8-beta] - 2026-06-19

New:
- Architecture change: all premium XMLs (scenarios, routes, behaviors, spawn_triggers, groups) are now 
  embedded directly into the InteractV.dll file as Embedded Resources. Users no longer need to keep
  these loose files in their scripts folder, but can still override them by placing a file with the 
  same name in the correct folder.

[0.6.7-beta] - 2026-06-19

Fixed:
- Territory replacement: A conquered spot's ped replacement now ONLY replaces peds belonging to the losing gang. Neutral peds (like cops, medics, or passing gangs) playing a scenario on a conquered spot are no longer wrongly replaced by the winning gang.
- Aircraft/Flyover crews initiating interactions: Helicopter occupants (cops, military) are now explicitly excluded from being selected as the target (Ped B) in proximity and combat scans. This prevents a civilian walking near a low-flying helicopter from inadvertently causing a role-swap that made the helicopter cop initiate a ground police control.
- Dead script vehicles (and helicopters) persisting forever: ProcessDeferredVehicleReleases now explicitly calls Delete() on dead vehicles. GTA's native MarkAsNoLongerNeeded() was failing to despawn destroyed script-owned vehicles, leaving burnt-out carcasses stuck on the map indefinitely. Helicopters from flyovers now also use this deferred release system.
- Cop seat shuffling / re-boarding loops: Applied SET_PED_CONFIG_FLAG (184 and 429) to prevent cops from automatically shuffling to the driver's seat. This stops the chaotic boarding loops where cops would enter as passengers, shuffle to the driver's seat, get out, and re-enter.
- Cop backup arrival: Backup cops responding to a call now properly exit their vehicles and join the arrest scenario instead of sitting idle in their cars with sirens blazing.
- Police control cancellation: Added armed_nearby to the CancelEvaluator. A police control will now properly cancel if an armed person is detected nearby.
- Arrest transport dismiss: Dismissed backup cops no longer attempt to target or enter the suspect's transport vehicle when leaving the scene.

[0.6.7-beta] - 2026-06-19

New:
- Player police controls: the law groups now strictly execute a common control (police_common_control) 
  when scanning the player instead of escalating directly to an arrest. The player is not arrested 
  via scenarios (combat_arrest is excluded).

Fixed:
- Territory spawn triggers / convoys: peds now descend immediately from their vehicles upon reaching
  the scene instead of idling in the car for 10 seconds. The scenario leader is forced out properly,
  and a fast-path handles immediate actors bypassing the 5s stall timer.

[0.6.6-beta] - 2026-06-15
  "dismount_assault"): a rival gang convoy rolls up on a gang cluster, the whole crew LEAVES the car
  and presses the attack ON FOOT for ~12 s, then every ped REBOARDS THE EXACT SEAT it left (no
  driver-seat scramble) and the car drives off. Lifecycle drive in → dismount → on-foot fire →
  reboard own seats → flee, driven by the new StateDismountAssault (also usable from scenario XML via
  action="DISMOUNT_ASSAULT"). Reuses the DriveBy trigger phase, so the crew is properly released on
  completion (no frozen leftovers).
- Police air support during cop controls (police_air_support_control, trigger="active_interaction"):
  when a police-control interaction is detaining a sizeable group of gangsters, a Police Maverick
  arrives, orbits the scene with searchlight + megaphone (announce + CLEAR_AREA), then leaves. Gated
  by a new Detect requireRoute="cop_,combat_arrest,Police_" attribute (comma-separated, case-
  insensitive substring match on the interaction's RouteName) so it never fires over ordinary gang
  beefs. requireRoute works on any active_interaction trigger.
- Vehicle spawns accept a per-vehicle pedCount override (<Vehicle pedCount="N">): -1 (default) uses
  the Responder pedCount, 0 fills every seat, N caps occupants. Lets the army Barracks ride FULL while
  the Guardian stays at 4.

Fixed:
- Territory no longer counts non-gang groups: the Army (groups type="law") was anchoring and flipping
  RANCHO spots ("owner=Army", spots turning neutral/white). Territory now requires the ped's profile
  GroupType=="gang", so law/military/civil groups never own turf.
- Drive-by is snappier: the on-target fire pause dropped from 3 s to 1.2 s (arrive → fire → flee).
- Drive-by / dismount-assault: when the DRIVER dies, the surviving passengers are now actively ejected
  and flee on foot instead of staying stuck in a driverless car — which also lets the now-empty car
  stream out (it was persisting with the dead driver + stranded passengers aboard).
- Police air-support / flyover helicopters no longer hover stuck near the scene after leaving: the
  leave grace timer reused EndTime, so the top-of-loop check kept re-entering the orbit routine and
  re-issued waypoints that overrode the fly-away command. The orbit is now gated off once the leave
  order is issued.
- Army Barracks now rides full (see the per-vehicle pedCount override above).
- Spawn-trigger vehicles now spawn ALIGNED with the road: the spawn point was already snapped to a
  vehicle node, but the node's heading was discarded, so cars appeared at a default/perpendicular
  angle (half on the pavement). Every spawned convoy vehicle now faces along the road's traffic
  direction. Applies to all vehicle spawn triggers.
- Spawn-trigger convoys steer around obstacles better: the default approach driving style 786469 was
  missing the AvoidEmptyVehicles bit, so convoys got stuck behind PARKED cars at gang spots. Default
  is now 786477 (adds AvoidEmptyVehicles=8) — they steer around both moving traffic and parked cars,
  still ignoring red lights. Override per trigger via <Approach drivingStyle="..">.
- End-of-interaction: actors already seated in a vehicle no longer all dismount and re-board as
  passengers. The unconditional "return to last vehicle" step re-tasked even seated peds — a driver,
  whose own seat reads "not free", was pushed into a passenger seat. Now a seated driver just cruises
  off, a seated passenger rides along while a living driver is at the wheel, and if the driver is
  gone exactly ONE passenger claims the wheel (no driver-seat brawl). On-foot actors that had a
  vehicle still return to it as driver/passenger as before.
- STARE no longer turns the ped away from the target and oscillates: TASK_STAND_STILL had been
  commented out, so between the periodic 3 s face-turns the body had no holding task and GTA's idle
  AI rotated it away — the next turn snapped it back ("turns to the opposite side, weird back and
  forth"). Stand-still is re-issued with the look-at again, locking the body facing the target.
- Arrest: the suspect is now ALWAYS booked into a POLICE vehicle. A police-only invariant is enforced
  at the boarding point (StateSuspectEnterCar) — a non-police car that slipped into TransportVehicle
  is rejected and a real patrol car is re-resolved; if none is available the state ends so the
  kneel / COP_CALL_BACKUP path brings a marked transport. (No more boarding the nearest civilian car.)
- Arrest: the transport driver covering the boarding suspect now uses the proper cop TACTICAL AIMING
  posture (StateCopTactical / ApplyTacticalPositioning, CopAggressive, static, non-attacker) — weapon
  drawn, holds a stand-off, side-steps for spacing — instead of a bare TASK_AIM_GUN_AT_ENTITY.
- Multi-vehicle spawn triggers no longer spam "first-arrived vehicle promoted to scenario leader" and
  leave the convoy idle at the spawn point: the promote-to-leader check used a back-slot car's loose
  STAGGERED stop radius, so a car that merely spawned inside its own (large) stop got promoted every
  tick while the arrival check (base StopDistance) never fired — endless churn that inflated slot
  indices (NextSlotIndex++) until every car's stop radius dwarfed the spawn distance and none drove.
  Promotion now requires a car to be genuinely at the scene (base StopDistance). Also bumped
  territory_contestation spawnDistance 40→80 so all 4 cars spawn beyond their staggered stop and drive in.
- Drive-by no longer arrives, sits ~10 s, THEN engages: the convoy waited for the exact StopDistance
  arrival (GTA parks a few metres outside it), so only the 8 s stuck-timer accepted the arrival. Since
  drive_by / dismount_assault hand off to a state that runs its own approach→fire→flee, they now engage
  as soon as the convoy is reasonably near (<= 2.5× StopDistance), with no stuck-timer wait.
- Helicopter air-support crew fixed: side passengers were spawned with BlockPermanentEvents=true (so
  they ignored all external events and never reacted to combat) and their rifle was given un-equipped
  (looked unarmed). They now react to zone combat via GTA's AI (BlockPermanentEvents=false), carry the
  rifle IN HAND (equipNow), get armor + "always fight"/"stay in vehicle" combat attributes, and the
  POLICE air crew is now SWAT (s_m_y_swat_01) instead of a classic patrol cop. Army crew = soldier
  model with carbine, one sniper among them. Savage/Valkyrie/Annihilator now count as army choppers too.

[0.6.5-beta] - 2026-06-15

New:
- [Experimental] Territory can be disabled entirely via interactv.ini [Experimental] EnableTerritory=false.

Changed:
- Territory winner is now attributed primarily by DEATHS per team (the most reliable signal once GTA
  has cleaned up the bodies), then by survivors, then by summed last-known health.

Fixed:
- A gang fight already in active combat is no longer cancelled or handed off to a forced cop control
  when law is nearby (group_nearby) — GTA's native AI runs it. The old gate read inter.Phase, which
  lagged behind the peds' real combat state, so a control was wrongly forced mid-firefight.
- Drive-by no longer stutters (advance/stop on the road): the player-relative target re-acquisition
  only re-issues the drive task when the destination actually shifts (>8 m), not on every flicker.
- Air-support helicopters no longer hang in place: the orbit force-advances to the next ring point
  after a timeout when a waypoint can't be reached (e.g. blocked by a building at low altitude).
- Post-combat getaway: fleeing peds now SHARE a car (one driver + passengers ride along, leaving
  together) instead of each grabbing a separate vehicle; and two peds from the same car no longer
  fight over the driver seat — the first claims it, the rest take a passenger seat.
- Drive-by spawn triggers no longer leave a "persistent" car frozen in the street after fleeing: the
  StateDriveBy reached its end without a follow-up state, so its OnExit (which un-locks the crew and
  hands them back to GTA) never fired and the crew was enrolled in no interaction — nothing released
  them. The drive-by trigger now releases its whole crew + vehicles on normal completion, so the car
  drives off and streams out naturally.
- Post-combat gangsters no longer freeze in place after playing their outro: a scenario step that
  waits on "blocking" actors had no timeout, so if a blocking state never flagged itself done (e.g.
  an outro that finished visually but never completed), the step — and the whole interaction — hung
  forever, leaving the peds locked (BlockPermanentEvents=true) and never released. Such steps now
  force-advance once they run 30 s past their own Duration, but ONLY while no blocking actor is still
  actively fighting — so a genuine firefight is never cut short.
- group_nearby (and every other nearby-ped scan) no longer misses peds: GetNearbyPedsCached was keyed
  only by the 5 m position bucket, so a recent scan with a SMALLER radius would be reused for a larger
  request, silently dropping any ped between the two radii. A solo cop/SWAT ~10 m from a beef could be
  missed by the 20 m group_nearby law check (so the beef never cancelled/handed off to police). The
  cache now also records its fetch radius and only reuses an entry fetched with a radius >= the one
  requested, re-querying the world otherwise.

[0.6.4-beta] - 2026-06-15

New:
- Drive-by is now player-relative: the convoy always engages the nearest target-gang ped to the
  player (on screen when possible, otherwise the nearest one), one at a time, re-acquiring as the
  player moves. It no longer aborts on player_distance and ignores red lights.
- Air support helicopters are now active: they announce COP_ARRIVAL_ANNOUNCE_MEGAPHONE on arrival,
  orbit the scene, and call CLEAR_AREA over the megaphone (police air support, Flyover megaphone="true").
  Choppers are crewed with armed side passengers (carbine + flashlight; an army chopper carries one sniper).
- Police backup is more credible: at least 2 patrol cars, 2 cops each, spawned slightly spaced out.
- DeveloperMode flag (interactv.ini [General], default OFF): gates the F7 / Shift+F7 / F8 / F11 test
  keys and the D-pad-left squad recruit out of public builds. The F10 debug-HUD toggle stays available.

Changed:
- Territory winner is now decided by summed last-known health when both survivor counts read 0
  (GTA had already cleaned up the bodies) — no more bogus "draw | survivors 0=0".
- Contested spots blink from the ARGUE phase (verbal/menace) and keep blinking through the whole
  deferred-outcome window instead of going quiet mid-settle.
- Vehicle repainting only ever touches cars that have ALWAYS been empty and never had a driver; any
  car seen occupied is remembered and permanently excluded.
- Territory replacement only re-skins peds actually playing a scenario (no more swapping a
  freshly-killed loser who is merely standing on a spot).
- Convoys spread out at staggered stop distances (no more 3-4 cars piling on one point); late
  vehicles finish their route then join as allies; arrived crews engage immediately (no idle).
- Convoys re-path several times before giving up (vehicle_stuck_unreachable) and drive urgently —
  they ignore red lights but still steer/stop for other vehicles. Per-trigger drivingStyle still wins.
- combat_arrest: a cop still in a vehicle now drives up to the suspect (siren on), announces on
  arrival, then dismounts and runs the scenario — instead of bailing out far away and idling.
- Arrest transport: surplus cops no longer trigger extra backup when a present car can already carry
  the suspect; allies ride as front passengers (never piling onto the driver seat); the leader waits
  for the crew to board before leaving; the hands-up suspect no longer loops 1-2 steps toward the car.

Fixed:
- Cops flying a helicopter (and military in a chopper) are no longer eligible to start or be the
  target of a ground interaction — covers the combat scan path too.
- Spawn-trigger / backup / convoy vehicles are no longer streamed out the instant a cop steps out,
  and are excluded from territory repainting (a car the mod drove is never recolored).

[0.6.3-beta] - 2026-06-14

New:
- Drive-by: new reusable StateDriveBy (DRIVE_BY action) ported from the standalone drive-by
  mod (core drive-by + flee). New spawn-trigger arrival mode "drive_by" and a
  territory_drive_by trigger: a rival convoy rolls up on a gang cluster, the seated crew
  fires from the windows, then the cars flee.
- Spawn triggers now accept count ranges instead of fixed numbers: <Vehicle min=".." max="..">
  and <Responder pedMin=".." pedMax=".."> (a value is rolled per fire). Backward compatible
  with count / pedCount.
- Spawn triggers now blip EVERY spawned vehicle (not just the lead one), and ALL occupants of
  ALL vehicles join the resulting interaction (the lead vehicle's driver is the leader).
- Gang colors are now configurable per group XML: blipColor (minimap) and vehicleColor (paint
  index). Native defaults are populated in the group XMLs and used when omitted.
- Spawn-trigger convoys now use the responding gang's vehicle COLOR as well as its model.
- Army intervention: new Army group (groups/army.xml, law) and an army_intervention spawn trigger —
  a very large gang cluster (~30) brings barracks/guardian/barracks3 trucks; soldiers deploy and
  patrol the area.
- Helicopter flyovers: new <Flyover> spawn-trigger element (cosmetic). A heli passes over the scene
  then leaves — a Cargobob sometimes accompanies the army, and a Police Maverick (polmav) sweeps a
  nearby death scene with its searchlight (air_support.xml). Flyover-only triggers spawn just the heli.

Changed:
- Territory loss now requires a team to be largely wiped out (majority down), not merely the
  leader dying or fleeing — losses were happening far too fast.
- Player gunfire near a social gang interaction now ESCALATES it to combat instead of
  cancelling it. Player gunfire is excluded from the external_gunfire cancel condition.
- Loser vehicles near a conquered spot are repainted to the winner's tint on the same cadence
  as the ped re-skinning, not only at the instant of the flip.
- Spawn-trigger convoy driving is now tunable per trigger: <Approach driveSpeed=".." drivingStyle="..">,
  and the default driving style is now Normal (obeys roads/traffic) instead of the old rushed style —
  spawn-trigger gang AND cop vehicles drive far less recklessly.
- Territory winner is now evaluated after the fight actually settles (no participant still in combat)
  or 60s after the interaction ends, whichever comes first — not frozen at the scripted end while
  combat is still ongoing.
- Territory vehicle recolor now only repaints EMPTY abandoned loser vehicles; occupied ones are left
  alone except a ped using a vehicle scenario, which is re-skinned in place with its car recolored
  (no swapping of normal/moving drivers).

Fixed:
- StateStare no longer turns to the side then re-turns on a distant target: the periodic body
  turn is now skipped unless the ped is actually misaligned (heading-delta guard).
- Cancelled or never-engaged interactions (early-cancel, social break-up, police interrupt) no
  longer award/flip territory via the survivor-count fallback (requires real combat engagement).
- Territory ped replacement is now strictly 1-for-1: a wrong-gang ped is deleted ONLY when a
  winner is spawned in its place, so losing peds (e.g. a gangster on a bike) never vanish
  without a replacement, and the spot never exceeds its cluster size.
- Territory replacement now also covers gangsters riding a vehicle (bike, car, anything): the
  occupant is swapped in place 1-for-1, and the vehicle is repainted to the winner's tint only
  when the swapped ped was the driver.
- Conquering a spot no longer makes the losing crew vanish: re-skinning is an in-place 1-for-1 swap
  (a winner appears exactly where each loser stood), so the whole crew is replaced at once cleanly.
- Spawn-trigger crew vehicles are released (streamed out) once the fight ends, so abandoned cars
  whose occupants have died no longer persist in the world.
- A cop that just ran a control/arrest now has a cooldown before being picked to control again —
  the same cop no longer arrests two different gangsters back-to-back.
- Multi-vehicle spawn triggers: the FIRST vehicle to arrive now starts the scenario (a slow primary
  no longer blocks it), a dead primary promotes a surviving convoy vehicle, and every vehicle's crew
  enrolls as allies and disembarks as it reaches the scene (not just one car's occupants).
- Territory re-skin now replaces EVERY settled wrong-gang ped on a conquered spot (no cap from the
  saved-position count), each re-skinned in place — no more leftovers of the losing gang.
- Helicopter flyovers now leave in a real random horizontal direction at cruising altitude instead
  of climbing straight up.
- Vehicle recolor is restricted to empty, stationary, driverless vehicles whose model is in the
  loser gang's config — it no longer recolors occupied or moving cars ("any ped's car" bug).
- Suspect-transport / backup cops no longer bail out of the car mid-route when it stalls in traffic:
  they disembark only once near the scene; a stalled car is re-tasked to keep driving in.
- Territory replacement never touches peds that are participants in an active interaction
  (actors were disappearing mid-fight on conquered spots).
- Removed "from nothing" spawning at saved scenario positions — gang presence now comes solely
  from re-skinning GTA-native scenario peds, so reloading no longer conjures peds out of thin air.
- Released spawn-trigger peds (e.g. cops) are handed back to GTA AI with a wander/cruise task so
  they no longer freeze and then stream out, looking like they vanished.

[0.6.2-beta] - 2026-06-13

New:
- Gang-vs-gang AUTO_REACT actors now continuously head-track the closest enemy
  (player included), recomputed each Think. Head-only, additive over the current
  sub-state; skipped once a ped commits to combat or fleeing. gang_vs_gang only.
- Police can now recruit idle patrol cops who are still SEATED in a police vehicle
  with the siren OFF ("hors intervention"). Law leaders only; the cop's vehicle
  must be a police patrol model and all occupants are eligible. Other teams still
  never recruit peds that are in a vehicle.
- Spawn trigger scanInterval is now actually honored: each trigger is re-evaluated
  no more often than its own scanInterval (the 3s global loop is just a floor).
  Previously the attribute was parsed but ignored.
- Spawn trigger player-distance gate is now configurable and split by player state:
  global [SpawnTriggers] PlayerMaxDistFoot (default 180) / PlayerMaxDistVehicle
  (default 300), overridable per trigger via the XML attributes playerMaxDistFoot /
  playerMaxDistVehicle. Larger in a vehicle since the player travels/sees further.
- Spawn triggers never fire when the target is on screen — they no longer pop in
  inside the player's view (IS_SPHERE_VISIBLE gate).
- Territory multi-spot capture: a flip now also co-captures up to
  [Territory] MultiSpotCaptureCount (default 2) of the loser's nearest spots within
  MultiSpotMaxRadius (default 120 m), so a decisive win bleeds into adjacent turf.
- Territory progressive minimap: a contested spot's color fades (alpha) as a
  challenger closes in on a flip, then snaps to the new owner color on capture.
- Territory contested-ground model: when a gang fight reaches the PHYSICAL (combat)
  phase, all combatant-owned spots within [Territory] PhysicalContestRadius (default
  40 m) are LOCKED as the contested ground. Those spots blink (~500 ms) between the
  two gangs' colors and are the ONLY spots that fight puts at stake at the end. A gang
  fighting on its own turf risks that turf; a winning defender consolidates (+1, no
  flip); spots owned by a third gang are never affected.
- Territory vehicle flip: on a flip, the loser gang's vehicles within
  [Territory] VehicleFlipRadius (default 30 m) are repainted to the winner's tint.
- Foot pursuit: all backup cops now join the chase (new ally PURSUE reaction on the
  ARREST_FLEE and foot-chase approach steps), instead of only the leader sprinting.
- Foot pursuit handoff: once the chasing officer leaves the player by more than
  [Police] PursuitReleaseDistance (default 100 m), the scripted chase is released to
  GTA's native AI — the cops keep pursuing the suspect on foot.
- Cop control vehicle approach: a new VEHICLE_APPROACH phase (cop_patrol) makes a cop
  who starts a control while still in a vehicle drive up to the nearest road node by
  the suspect (~12 m) and dismount before assessing — instead of bailing out and
  walking from afar. Backup cops in vehicles do the same. On-foot cops skip it. Needs
  the new SelfInVehicle brain param.

Changed:
- Territory ped replacement now runs on its own fast pass ([Clustering]
  ReplacementInterval, default 1s) decoupled from the heavy 30s discovery scan, so
  conquered spots are re-skinned to the owner gang within ~1s instead of up to 30s —
  but only once the player can't witness it.
- Territory replacement visibility guards: a spot is never re-skinned while it is on
  screen (IS_SPHERE_VISIBLE) or within 15 m of the player, plus a post-flip grace
  window ([Clustering] ReplacementPostFlipDelay, default 10s) so the losing gang
  disperses before the winner takes over — no more instant swap in front of the player
  right after a fight. The fast cadence retries until the player looks away, so nothing
  is missed (GTA keeps the scenario peds spawned).
- Arrest transport acquisition order is now: reuse a nearby police vehicle first
  (assigning a cop driver if it's empty) -> only if nothing is nearby, the cop
  plays a radio "call reinforcements" gesture, THEN a PoliceT van is dispatched.
- Arrest departure: the transport van now leaves with ONLY the driver + suspect.
  The control leader and allies return to their own patrol vehicles (or a no-siren
  Police pickup is dispatched if none is available) instead of piling into the van.
- Spawn trigger cooldown now starts when the event ENDS (trigger reaches Done),
  so `cooldown` is a true quiet period after the event rather than time consumed
  while the trigger is still running.

Fixed:
- Empty nearby police vehicle during an arrest was selected as transport but never
  driven (no driver), so the suspect waited indefinitely. A cop is now tasked to
  drive it to the suspect.
- Cop disappearing at the end of an arrest: control cops left standing idle on the
  scene were culled when the interaction ended. They now actively return to a
  vehicle during the departure, and the interaction stays alive until they are
  seated (40s cap), so none are left to pop out.
- Gangsters could play law scenarios (e.g. CODE_HUMAN_MEDIC_TIME_OF_DEATH). Non-law
  peds now substitute a gangsta-appropriate scenario (smoking, stand impatient...).
- Tram/metro riders playing a scenario were registered as territory spots when the
  tram was stopped at a station (a single speed sample read ~0). Spot anchors now
  require position-constancy across scans before they count.
- Spawn trigger responders arriving by car rammed walls trying to reach the target
  (a gang ped often off-road). They now drive to the nearest road node and finish
  the approach on foot.
- Persistent corpses from spawn triggers: dead trigger peds were left flagged as
  mission entities and never streamed out. Dead peds now drop the mission flag so
  GTA can clean up the body.
- Territory ped-replacement ping-pong between overlapping rival spots: a spot now only
  replaces a wrong-gang ped when THIS spot is the ped's NEAREST spot, capped at the
  spot's own cluster size and respawned on its saved slots. Each ped is handled by
  exactly one spot (no more swap loop) while still catching wrong-gang peds a few metres
  off their exact slot — which an earlier tight-tolerance attempt wrongly skipped (e.g.
  Ballas left standing on a Family-owned spot).
- Conquered spots left covered in the losing gang: replacement required the wrong-gang
  peds to be IN a scenario, but a fight knocks them out of their scenario task
  (inScenario=False), so they were never swapped; and the "spot already occupied"
  check skipped the whole spot as soon as a SINGLE winner ped was present, ignoring
  remaining enemies. Replacement now targets wrong-gang peds that are in a scenario OR
  stationary, removes all intruders, and spawns winners only up to the spot's free
  slots (counting winners already there). Log now shows removed/spawned/existing counts.
- Police-interrupted gang beef wrongly awarded territory: when cops broke up a
  Family-vs-Ballas fight, the cleanup still ran the territory hook and flipped spots on
  a survivor-count fallback (e.g. Family "won" 3-vs-1 and took 3 Ballas spots) even
  though nobody actually won. Police interruptions now skip territory attribution.
- Phantom "police nearby" cancel: group_nearby(law) counted GTA ped types 28 (animal)
  and 29 (archenemy) as cops, so a stray dog near a gang fight cancelled the turf war
  and triggered a failed gang->police takeover ("Police not ready, gang dispersing")
  with no officer present. Law now requires a configured 'law' profile OR a genuine
  COP/SWAT ped type with no other group profile; interaction allies are excluded.

[0.6.1-beta] - 2026-06-05

New:
- Territory win counts now persist to config/territory_wins.xml between sessions.
  Win counts survive script reloads; threshold changes apply immediately on the
  next interaction outcome without risk of crash or stale state.
- ClusterRadius now defaults to 8 m (down from 15 m) — produces finer-grained
  territory spots and avoids rival gang clusters mapping to the same spot.
- FlipGapThreshold now defaults to 2 — a gang must lead by 2 net wins before a
  spot flips, preventing a single lucky fight from immediately flipping territory.
- Scenario step debug logging: every DECISION now logs the chosen branch
  ([DECISION] step → target). Terminal steps (no next=) log reason at all debug
  levels ([STEP_END]). Normal step transitions log at DetailedLogs level.
- Territory replacement is now per-ped and scan-based: TryReplaceWrongPeds()
  detects wrong-gang scenario peds at conquered spots (PreviousOwner != null) and
  replaces them immediately on detection, with no distance or LOS gating.
  Replacement only fires for spots that were actually conquered — spots with no
  PreviousOwner are never touched.
- Territory replacement peds spawned with blockEvents=false: peds react naturally
  to the ambient world (fights, police) instead of being locked by script control.
- Debug overlay (F10): nearest territory spot ID, owner, and distance are drawn at
  the bottom-center of the screen when debug mode is active.
- proximity condition: dynamicTime="false" attribute — when set, the required
  hold-time is fixed (base value) regardless of how far apart the two peds are.
  Previously the time always scaled with distance even when the attribute was set.
- proximity condition: no_gunfire type — condition fails if gunfire is audible
  nearby, blocking interaction start during active shootouts.
- proximity condition: armed attribute with dist — filters peds by whether they
  have a weapon drawn within the specified radius.

Fixed:
- Territory replacement cycle (infinite spawn→release→respawn loop): ReleasePeds
  was called before each spawn, MNLN'ing live keepAlive peds; GTA immediately
  respawned the original gang, which was detected as a mismatch and re-triggered
  replacement. Fixed via IsSpotOccupiedByWinners guard (skip the spot if live
  winner peds are already present) and PurgeStalePeds (cleans dead peds from the
  tracking list without touching live ones).
- Cross-spot contamination: fixed replacement scanning peds from neighboring spots.
  World.GetNearbyPeds was called with a 100 m fixed radius, scooping peds from
  adjacent spots. Now uses ComputeSpotRadius — the actual spread of the spot's
  saved positions plus ClusterRadius buffer — so each spot only touches its own peds.
- Conquered spots blinking on non-conquered territory: the PreviousOwner guard now
  strictly prevents any replacement scan on spots that were never flipped, even if
  the stored owner matches a living gang.

Fixed:
- NullReferenceException loop in StateReactiveAI.UpdateContext(): FindClosestEnemy()
  can return null when all enemies exit via BACK_DOWN; the null was then
  dereferenced on _target.Position. Crash was swallowed by an inner try/catch in
  ScenarioExecutor, leaving the ped stuck forever with BlockPermanentEvents=true
  and a persistent red blip on the map.
- [BACK_DOWN] Team X fully backed down spam: the ExitedActors.Contains check ran
  every tick after TeamXResolved was set, logging and re-setting the flag
  continuously. Now gated on !inter.TeamXResolved.
- Debug visual labels not appearing for scripted scenario peds: ScenarioExecutor
  was called with _showDebugLabels (always false) instead of DebugUtils.IsActive,
  causing PedStateMachine.DrawDebug() to never fire for non-AUTO_REACT actors.
- Territory wrong spot flipped (Family vs Vagos fight flipping nearest Salva spot):
  OnInteractionEnded now filters candidate spots to only those owned by one of the
  two fighting gangs, ignoring third-party spots within SpotMatchRadius.
- Territory blips visible on minimap beyond player scope: blips now use
  IsShortRange = true — always visible on the full pause map, minimap-only when
  the player is nearby.
- Territory scan detecting non-scenario peds: scan now filters with
  IS_PED_USING_ANY_SCENARIO before building clusters; wanderers no longer distort
  centroids or create spurious spots.
- Territory cluster collapse (all clusters mapping to same spot): removed the
  two-step FindByCenter/SpotMatchRadius fallback in DoInitialScan; clusters more
  than ClusterRadius apart from any existing spot now correctly create new spots.
- Territory blip continued blinking after conquest: removed the blink system
  entirely; FlipSpot calls CreateOrUpdateSpotBlip directly with the winner color.
- Police departure leaving without ally: an ally sitting in their patrol vehicle
  (not the transport) had IsInVehicle()=true, so anyAllyStillBoarding was never
  set. The ally was silently skipped and the vehicle departed without them.
  TASK_ENTER_VEHICLE is now issued regardless of current vehicle state.
- GANG_SURRENDER duration reduced from 9 s to 5 s, animation flag updated to 18
  (StayInEndFrame + allow physics secondary motion for natural body movement).
- ScanCooldown is now configurable in territory.ini ([Clustering] ScanCooldown=N
  in seconds, minimum 5).

[0.6.0-beta] - 2026-05-29

New:
- Territory contestation spawn trigger: when a rival gang clusters in a zone, the
  gang that last lost that spot sends reinforcements (source="previous_zone_owner").
- footChance attribute on <Responder>: percentage chance to arrive on foot instead
  of using the group's vehicle profile.
- Spawn trigger arrival mode execute_scenario: the driver becomes LeaderA in a
  scripted interaction on arrival.
- GangSpot.PreviousOwner persisted to gang_zones.xml: survives script reloads.
- Territory spots now survive OnAborted reload — flipped zones are physically
  re-applied (correct gang's peds) when the player re-enters the area.
- Cop patrol interactions now cancel when the suspect escapes beyond 80 m.

Fixed:
- Bodies from interactions no longer vanish instantly — corpses are now removed
  when the player moves 80 m away (2-minute hard fallback if player stays nearby).
- Dead leader orphaned body: when an ally was promoted to replace a dead leader,
  the original corpse (a mission entity) was never released, causing it to persist
  indefinitely. Now cleaned up before the pointer is overwritten.
- ProcessPendingCleanup fall-through: after distance-based release (RemoveAt),
  missing continue caused a second RemoveAt on the wrong list index.
- Police control no longer targets the player even when playerInvolvement = true.
- Flee vehicles: two peds could claim the same empty vehicle. The second ped now
  skips already-claimed vehicles.
- Fled driver behavior: getaway vehicle now uses reckless driving flags (786600)
  at 45 m/s instead of cruising at 25 m/s with traffic stop.
- Peds idle after melee: armed peds (weapon selected but not in combat) are now
  correctly routed through the flee path instead of standing motionless.
- Spawn trigger vehicle stuck: when the target position is off-road, the vehicle
  is now accepted as arrived (or aborted) after 8 s without movement.

---

[0.5.1-beta] - 2026-05-24

Fixed:
- Crash on interaction cancel when LeaderB had already been streamed out.
- Incorrect gang detection for peds near zone boundaries.
- Territory flip not persisting across session boundaries.

---

[0.5.0-beta] - 2026-05-20

New:
- Spawn trigger system: data-driven NPC group responders (cluster, on_death,
  active_interaction triggers). Configured via config/spawn_triggers/*.xml.
- Territory system: gang zones tracked, flipped on interaction outcomes, and
  physically replaced with the winner's peds (TerritoryEngine).
- PreviousOwner tracking on GangSpot for contestation logic.
- Police dispersal system: NPC gang/civil peds react to nearby police.
- Forced cop control: when group_nearby(law) cancels a gang interaction, the
  nearest available cop takes control of the gang leaders.
- CombatEscalation: idle allies pulled into nearby fights automatically.

---

[0.4.0-beta] - 2026-05-18

Removed:
- Vehicle Encounters system — drive-by and patrol spawning removed entirely (will be redesigned).
- Law Intervention system — police cluster trigger feature removed (will be redesigned).
- RL brain — reinforcement learning override removed; ConfigurableBrain is the sole decision engine.

Fixed:
- Crash when interaction target becomes null mid-THREATEN state.
- Flee detection triggering too early.

---

[0.3.0-beta] - 2026-03-20

- Initial ElevenLabs TTS support.
- Improved NPC pathfinding in urban areas.
- Fixed crash during high-speed vehicle chases.

---

[0.2.0-alpha] - 2026-01-10

- Initial Gang vs Gang scenarios.
- Basic routing system and behavior profile system.
