A participant and a local vehicle are different facts

An arena participant record and a live Vehicle entity serve different purposes. The roster describes a participant; an entity represents a vehicle currently available to the local world. A roster entry does not guarantee a currently usable model, position or live health sample.

onEnterWorld initializes vehicle world state, while onLeaveWorld tears down appearance-related work and notifies the player owner. A vehicle leaving the local world is not, by that fact alone, a confirmed kill or removal from the battle roster.

Health changes have a dedicated feedback path

In this source snapshot, Vehicle.set_health has an empty body. The substantial notification path is onHealthChanged, which handles the received old/new health and attack context before updating presentation and feedback. Watching only the property setter is insufficient to reconstruct that path.

Preserve whether a health value is current, previously observed or unavailable. A gap in local observations does not justify inventing damage events or an attacker.

Crew loss is distinct from zero HP

set_isCrewActive can invoke the vehicle death path when the crew becomes inactive even while health remains positive. A displayed defeat or death state therefore cannot always be reduced to health == 0.

Health and crew-active state should remain separate inputs when reproducing client presentation. Respawns and replacement entities also require a new observation context.

What this establishes about visibility

These files explain how the client handles the entities and state it receives. They do not establish the complete server spotting algorithm, concealed enemy positions or the reason every entity becomes unavailable. Treat a local presence event as a local observation with an explicit lifetime.

Game files and evidence

These links follow the public repository's default branch. Search each file for the symbols below. They establish client-side calculations and state handling; they do not verify server configuration or live behavior.

Game fileSymbols to inspectWhat it establishes
Vehicle.pyonEnterWorld; onLeaveWorld; onHealthChanged; set_health; set_isCrewActiveLocal entity lifetime and distinct health/crew presentation paths.

Use this in a mod

Continue with Battle & Arena, Battle State, Components and Feedback and Battle Data Pipelines for roster, controller and event ownership.