Messages Vehicle - themeldingwars/Documentation GitHub Wiki
Vehicle messages are a reduced version of the Character set. A vehicle is driven by a client, so it has controllers like a character does, but it has no weapons of its own and no equipment, so the whole firing side of the character protocol is missing.
Commands
MovementInput
- On the Vehicle BaseController.
- Position, rotation quaternion, direction, a
ushortmovement state and auint32time. - Sent continuously while driving, the same way the Character version is.
MovementInputFake
- On the Vehicle BaseController.
- Same as MovementInput with an extra
sbytebefore the movement state.
SinAcquire_Source
- On the Vehicle BaseController.
- A single target entity id.
ReceiveCollisionDamage
- On the Vehicle BaseController.
- A
ushortshort time and an optional entity id behind aHaveEntitybyte. - The client reports its own collisions. When the vehicle hits several entities at once, one message is sent per entity rather than a list.
ActivateAbility
- On the Vehicle CombatController.
- A
uint32time, an ability slot index, a byte counted array of target entity ids, and aTraceAbilitiesbyte that thetraceAbilitiesconsole command toggles.
DeactivateAbility
- On the Vehicle CombatController.
- A
uint32time and an ability slot index.
SetWaterLevelAndDesc
- On the Vehicle BaseController.
- A single byte, which the server writes straight to the
WaterLevelAndDescshadow field on the Vehicle ObserverView and BaseController.
SetEffectsFlag
- On the Vehicle BaseController.
- Two bytes. When the first is
0x01, the second is the headlight state,0x00off and0x01on. Whether the first byte selects which effect is being toggled has not been confirmed. - The second byte is what ends up in the
EffectsFlagsshadow field on the Vehicle ObserverView, which is how other players see your headlights.
Events
AbilityActivated
- On the Vehicle CombatController.
- An
apt::AbilityDataid and auint32time.
AbilityFailed
- On the Vehicle CombatController.
- Same contents as AbilityActivated. This is the server refusing an ActivateAbility.
PublicCombatLog
- On the Vehicle CombatController.
- An
int32flag followed by a combat log message when the flag is1.
CurrentPoseUpdate
- On the Vehicle MovementView, from GSS version 9 onwards.
- Carries a pose update struct, the same one the Character MovementView uses.
TookDebugWeaponHitPublic
- On the Vehicle CombatView.
- Carries a debug weapon hit struct. Only relevant with
debugweaponenabled, see Debug Traces for what the client does with it.
ForcedMovement
- On the Vehicle CombatController.
- Carries a forced movement struct, e.g. being pushed by an explosion.
ForcedMovementCancelled
- On the Vehicle CombatController.
- An
apt::BaseCommandDefid and aushortshort time.
FlipPunch
- On the Vehicle CombatController.
- Two
Vector3values, presumably a position and a direction. - The purpose is unconfirmed. The name suggests the impulse used to right an overturned vehicle, but nothing has been observed sending or acting on it.
DebugMovementUpdate
- On the Vehicle MovementView, from GSS version 9 onwards.
- A byte, then position, rotation, direction, a
ushortthat is probably the state and auint32that is probably the time, i.e. the same shape as MovementInput with a leading byte. - Only sent with movement debugging enabled, see Debug Traces.