Skip to content

Ballista

v1.4.8

The siege ballista a crew loads and fires. Scenes place a BallistaSpawner, which spawns this prefab. The weapon prefabs are hidden in the prefab browser.

Find placed ones in the Scene panel with s:Ballista. See Filter.

Where you put it

Use the spawner in a siege scene. The weapon entity needs children tagged with BodyTag and NavelTag. A child tagged with SkeletonTag supplies the skeleton; if that child is missing, the body is used.

What you set

Native\Prefabs\props_siege_ballistas.xml stores this order on ballista_a. HorizontalDirectionRestriction is a public field that prefab does not write.

Panel field What to do with it
NavelTag Child that yaws. The prefab stores BallistaNavel.
BodyTag Child that pitches. The prefab stores BallistaBody.
SkeletonTag Child with the weapon skeleton. The prefab stores SkeletonEntity.
AnimationHeightDifference Height fix for the pilot's hands. The prefab stores 0.
IdleActionName Pilot idle. Attacker prefab: act_usage_ballista_idle_attacker. Defender: act_usage_ballista_idle_defender.
ReloadActionName Reload action. Attacker act_usage_ballista_reload_attacker, defender act_usage_ballista_reload_defender.
PlaceAmmoStartActionName Start of placing the bolt. Attacker and defender each have their own clip.
PlaceAmmoEndActionName End of placing the bolt.
PickUpAmmoStartActionName Start of picking the bolt up.
PickUpAmmoEndActionName End of picking the bolt up.
HorizontalDirectionRestriction Yaw limit, in radians. Code default is a right angle. The prefab does not write it. A spawner overwrites it from DirectionRestrictionDegree.
BallistaShootingSpeed Bolt speed. Code default is 120. The prefab stores 170.
MissileItemID Ammo item id. The prefab stores ballista_projectile.
Focus What the crew prefers to shoot. The prefab stores Troops.
StartingAmmoCount Bolts at start. The prefab stores 0.
TopReleaseAngleRestriction Highest pitch, in radians. The prefab stores 0.7.
BottomReleaseAngleRestriction Lowest pitch, in radians. The prefab stores -0.7.
RemoveOnDeployTag Entities with this tag are removed when the engine deploys. Empty on the prefab.
AddOnDeployTag Entities with this tag are added when it deploys. Empty on the prefab. The spawner copies its own value here.
PilotStandingPointTag Pilot stand tag. The prefab stores Pilot.
AmmoPickUpTag Ammo stand tag. The prefab stores ammopickup.
WaitStandingPointTag Wait stand tag. The prefab stores Wait.
NavMeshPrefabName Navmesh prefab. Both ballista_a and ballista_b store ballista_a_dnm.

Move, reload, and fire sounds are event:/mission/siege/ballista/move, reload, and fire.

What it does

A pilot aims with the mouse. The navel yaws and the body pitches, inside the limits above. Loading plays the pick-up and place actions, then the reload action. Firing uses the skeleton clips ballista_fire and ballista_set_up. Grapeshot ids on this weapon are ballista_c_projectile_grape and ballista_c_projectile_grape_projectile. The crew stops using it when an enemy is within 7 meters.

Where it lives

Managed script. Weapon prefabs are in Native\Prefabs\props_siege_ballistas.xml: ballista_a, ballista_a_fire, ballista_b, ballista_b_fire. No scene file stores the weapon script. Siege scenes store the spawner.

Examples

Attacker ballista. ballista_a in that file. Idle and reload use the _attacker actions. Shooting speed 170, focus Troops, ammo item ballista_projectile.

Defender ballista. ballista_b in the same file. The six action fields use the _defender clips. Speed, ammo, focus, and pitch limits match ballista_a.