How INaccurate are entire bursts? Larger is worse, 0 is perfect accuracy. This is an angle, so long range shots are always less likely to hit than close range given same target and inaccuracy. Can improve with unit XP.
allowNonBlockingAim
bool
When false, the weapon is blocked from firing until AimWeapon() returns.
alphaDecay
float
#Cannon only. See `stages`. Alpha reduction for the last stage (interpolated linearly for the others).
Default:
1
alwaysVisible
bool
Is the projectile visible regardless of sight?
animParams1
float3
Used to do flipbook style animation of texture1
Fallback to:
animParams
Default:
[1 1 30]
animParams2
float3
Used to do flipbook style animation of texture2
Fallback to:
animParams
Default:
[1 1 30]
animParams3
float3
Used to do flipbook style animation of texture3
Fallback to:
animParams
Default:
[1 1 30]
animParams4
float3
Used to do flipbook style animation of texture4
Fallback to:
animParams
Default:
[1 1 30]
avoidCloaked
bool
Does the weapon avoid shooting if there's cloaked (incl. revealed, but not decloaked) units in the way? See remarks at `avoidFriendly`
avoidFeature
bool
Does the weapon avoid shooting if there's features in the way? See remarks at `avoidFriendly`
Default:
1
avoidFriendly
bool
Does the weapon avoid shooting if there's allies in the way? Note that an ally can run into the projectile and it will still explode - use `collideFriendly` to avoid that
Default:
1
avoidGround
bool
Does the weapon avoid shooting if terrain would block it? See remarks at `avoidFriendly`
Default:
1
avoidNeutral
bool
Does the weapon avoid shooting if there's neutrals in the way? Note this does not mean Gaia! See also remarks at `avoidFriendly`
beamDecay
float
BeamLaser only. Controls the fadeout (multiplier for alpha per sim frame)
Default:
1
beamTTL
int
BeamLaser and LightningCannon only. Linger time of the visual sprite, in sim frames.
beamburst
bool
#BeamLaser only. Lets a laser use burst mechanics, but sets `beamtime` to the duration of 1 sim frame.
beamtime
float
#BeamLaser only. The laser maintains it beam for this many seconds, spreading its damage over that time.
Default:
1
bounceExplosionGenerator
string
The name, with prefix, of a CEG to be emitted when bouncing
bounceRebound
float
Vertical velocity multiplier on bounce
Default:
1
bounceSlip
float
Horizontal velocity multiplier on bounce
Default:
1
burnblow
bool
For LaserCannon, expire when reaching the target (at max range otherwise). For Cannon, explode when reaching the target (keep falling otherwise). For Missile/Starburst/TorpedoLauncher, explode when running out of fuel (fall down otherwise).
burst
int
Shots per burst. Cannot be used by #BeamLaser unless `beamburst` is used which comes with caveats.
Default:
1
burstRate
float
Delay between shots within a burst, in seconds
Default:
0.1
cameraShake
float
Passed to the wupget:ShockFront callin as the first argument, intended for shaking the camera on particularly strong hits. Same scale as damage.
Fallback to:
damage.default
canAttackGround
bool
Can the unit target ground? Only units otherwise. Note, features are not directly targetable either way.
Default:
1
castShadow
bool
Does the projectile itself cast shadow?
Default:
1
cegTag
string
The name, without prefixes, of a CEG to be emitted by the projectile each frame.
collideCloaked
bool
Does the projectile collide with cloaked (includes revealed but not decloaked) units? See remarks at `collideFriendly`
Default:
1
collideEnemy
bool
Does the projectile collide with enemies? Use to make sure it hits the ground, or for buffs targeting allies. Note that targeting will always target enemies anyway, and never allies. Also note there is no corresponding `avoidEnemy`
Default:
1
collideFeature
bool
Does the projectile collide with features? See remarks at `collideFriendly`
Default:
1
collideFireBase
bool
Does the projectile collide with its firebase, i.e. a transport holding the unit? Put it on marines' weapons to let them shoot out of a bunker while remaining in its colvol. There is no corresponding `avoidFirebase`.
collideFriendly
bool
Does the projectile collide with allies? Note that the unit will still shoot if there are allies in the way, which is controlled separately via `avoidFriendly`.
Default:
1
collideGround
bool
Does the projectile collide with terrain? See remarks at `collideFriendly`
Default:
1
collideNeutral
bool
Does the projectile collide with neutrals? Note this does not mean Gaia! See also remarks at `collideFriendly`
Default:
1
collideNonTarget
bool
Does the projectile ghost through everything that isn't its target (incl. other enemies)? Combine with `tracks` and `impactOnly` for 'starcraft' style weapons that are largely just graphics. There is no corresponding `avoidNonTarget`.
Default:
1
collisionSize
float
Width for hitscan interceptors. Supposed to be collision radius for others but it's broken at the moment
Default:
0.05
colormap
string
A series of RGBA tuples. If the projectile is a sprite then it will shift over these colours over its lifetime
commandfire
bool
Does the weapon respond to the manual fire command instead of regular attack?
coreThickness
float
BeamLaser and LaserCannon only. Thickness of the inner core as a fraction of full thickness (0-1). Just to get a secondary color via `rgbColor2`.
Default:
0.25
coverage
float
The radius in elmos within which an interceptor weapon will fire on targetable weapons.
craterAreaOfEffect
float
Diameter of terrain deformation. Damage to units controlled separately. Keep in mind about the inner half of this is the hole, and the outer half is the raised (!) rim
Fallback to:
areaOfEffect
Default:
8
Scale:
0.5
Scaled by:
0.5f
craterBoost
float
A flat modifier to cratering strength, applies second-last (after reduction due to altitude).
craterMult
float
A multiplier to cratering strength. Applies after all other modifiers.
Fallback to:
impulseFactor
Default:
1
customParams
table
A table of arbitrary string key-value pairs, for use by Lua gadgets (no engine meaning)
cylinderTargeting
float
Makes targeting happen in a cylinder. The height is range times this value. Zero means use the usual range (spherical or ballistic)
Fallback to:
cylinderTargetting
Max:
128
damage
table
Damage table, indexed by armor class name
damage.default
float
The default damage used in absence of explicit per-armorclass value
Default:
1
damageAreaOfEffect
float
The diameter (not radius!) for damage. Cratering controlled separately. Also the collision radius for projectile-based interceptors.
Fallback to:
areaOfEffect
Default:
8
Scale:
0.5
Scaled by:
0.5f
dance
float
Missile only. Missiles will randomly shift up to this many elmos, perpendicular to their movement direction. Movement period is hardcoded to 8 sim frames
Scale:
0.0333333
Scaled by:
1.0f / GAME_SPEED
duration
float
#LaserCannon only. The visual-only length of the projectile as a fraction of the per-second projectile speed.
Default:
0.05
dynDamageExp
float
Exponent of the range-dependent damage formula, the default of 0.0 disables dynamic damage, 1.0 means linear scaling, 2.0 quadratic and so on.
dynDamageInverted
bool
If true the damage curve is inverted i.e. the weapon does more damage at greater ranges as opposed to less.
dynDamageMin
float
The minimum floor value that range-dependent damage can drop to.
dynDamageRange
float
If set to non-zero values the weapon will use this value in the range-dependant damage formula instead of the actual range.
edgeEffectiveness
float
Exponent for a magic formula describing splash damage falloff. The damage always drops down to 0, this tag just controls how large the 'core' is. Can be negative for a very core-centric explosion. 0 is linear falloff with radius. 1 is no falloff.
Max:
1
energyPerShot
float
Energy cost per shot. For stockpile weapons this is consumed over time, immediately on shot otherwise.
explosionGenerator
string
The name, with prefix, of a CEG to be emitted on impact
explosionScar
bool
Does the explosion leave a scar decal on the ground?
Default:
1
explosionSpeed
float
How fast does the shockwave propagate? Note that units cannot actually dodge the shockwave (they are tagged immediately and just damaged after a delay)
falloffRate
float
LaserCannon with `hardStop = false` only. How much, as a fraction, the laser fades per sim frame beyond max range. Capped to be 0.2 or above (ie. will never take more than 5 sim frames to fade completely)
Default:
0.5
fireStarter
float
The percentage chance of the weapon setting fire to static map features on impact.
Scale:
0.01
Scaled by:
0.01f
fireSubmersed
bool
Can the weapon fire underwater? Requires `waterweapon`.
Fallback to:
waterweapon
firetolerance
float
Angle above which reaim (script `AimWeapon`) is forced outside the usual time-based reaim. In the legacy 16-bit angular units.
Default:
3640
Scale:
9.58738e-05
Scaled by:
TAANG2RAD
fixedLauncher
bool
Missile/Torpedo/Starburst only. The projectile will start aimed at the direction of the aiming piece, which is not necessarily towards the target
flameGfxTime
float
#Flamethrower only. Multiplier of the total range for visuals purposes. For example at 1.2, the visual will extend 20% further than max range. Should be >= 1. Exposed back to WeaponDefs as `duration` (same as the unrelated #LaserCannon tag)
flighttime
float
Lifetime of the projectile, in seconds. Missile/Torpedo/Starburst projectiles 'lose fuel' and fall down; Cannons explode; others fade away
Scale:
30
Scaled by:
GAME_SPEED
gravityAffected
bool
#DGun weapon type only. Is the dgun projectile affected by gravity? Aiming won't take this into account.
groundBounce
bool
Bounces when hitting terrain?
hardstop
bool
LaserCannon only. If true, lasers get 'eaten up' at max range. Otherwise they continue on and fade away according to `intensityFalloff` (but can't collide anymore).
heightBoostFactor
float
#Cannon weapon type only. Controls the ballistic range gain/loss for height difference; larger means higher effect of range difference. -1 is derived some magic formula. Hard to tell how this stacks with `heightMod`.
Default:
-1
heightmod
float
Multiplies height difference to target, for targeting purposes. When lower than 1, the targeting volume becomes elongated vertically and the unit can target further high than normal (useful to make terrain and aircraft less punishing). At 0, the height difference component becomes completely ignored.
Default:
0.2
highTrajectory
int
0: low trajectory, 1: high trajectory, 2: the unit will have a state toggle for the player to pick
Default:
2
impactOnly
bool
Does the projectile only damage a single thing it hits? Mostly equivalent to having 0 AoE without the issues with 0. Also removes cratering.
impulseBoost
float
A flat bonus to impulse.
impulseFactor
float
A multiplier to base impulse (knockback). For most weapons, base impulse is equal to applied damage. For #Melee weapons the base impulse is the hitting unit's mass.
Default:
1
intensity
float
Alpha transparency for non-model projectiles. Lower values are more opaque, but 0.0 will cause the projectile to disappear entirely.
Default:
0.9
interceptSolo
bool
If true no other interceptors may target the same projectile.
Default:
1
interceptedByShieldType
unsigned int
Bitmask representing the types of shields that this weapon can intercept. Each digit of binary that is set to one means that a shield with the corresponding digit in its shieldInterceptType tag will be hit by this weapon.
interceptor
int
Bitmask representing the types of weapons that this weapon can intercept. Each digit of binary that is set to one means that a weapon with the corresponding digit in its targetable tag will be intercepted by this weapon.
largeBeamLaser
bool
BeamLaser only. Enables some extra fancy texturing (NOT size). Check other Beamlaser tags for 'large'.
laserFlareSize
float
BeamLaser only. Size of the flare visual effect at emit point, in elmos
Default:
15
leadBonus
float
If `leadLimit` is not unlimited, add this value multiplied by raw unit XP (not limXP) to the limit.
leadLimit
float
Maximum distance in elmos the unit will lead a moving target. Less than zero is unlimited.
Default:
-1
lodDistance
int
LaserCannon only. Distance at which rendering is simplified, without the rounded ends
Default:
1000
metalPerShot
float
Metal cost per shot. For stockpile weapons this is consumed over time, immediately on shot otherwise.
minIntensity
float
BeamLaser only. The minimum percentage the weapon's damage can fall-off to over its range. Setting to 1.0 will disable fall off entirely. Unrelated to the visual-only `intensity`. Largely a duplicate of `dynDamageExp`.
model
string
Name of a 3D model. Otherwise uses 2D sprites
movingAccuracy
float
Same as `accuracy` but applies when the unit is moving.
Fallback to:
accuracy
myGravity
float
Overrides the map gravity for ballistic weapons and missiles. Missiles only affected once flightTime expired. The default of 0.0 disables the tag in favour of map gravity.
name
string
The descriptive name of the weapon, for GUI purposes.
Default:
Weapon
noExplode
bool
The projectile will not be removed when exploding and instead continue on. It will keep exploding every sim frame while inside a collision volume, massively multiplying nominal damage.
noGap
bool
#Cannon only. Makes `separation` adjust to take `sizeDecay` into account so `stages` stay adjacent.
Default:
1
noSelfDamage
bool
Is the unit unable to damage itself with the weapon?
numBounce
int
How many bounces can the weapon do? Explodes on impact when cannot bounce anymore
Default:
-1
ownerExpAccWeight
float
How much does accuracy (but not sprayAngle!) improve with unit limXP? Multiplier for limXP which is then subtracted as a fraction (for example at limXP=0.4 and ownerExpAccWeight=2, the weapon only has 1-(0.4*2) = 20% of original inaccuracy.
paralyzeTime
int
Determines the maximum length of time in seconds that the target will be paralyzed. The timer is restarted every time the target is hit by the weapon. Cannot be less than 0.
Default:
10
paralyzer
bool
Is the weapon a paralyzer? If true the weapon only stuns enemy units and does not cause damage in the form of lost hit-points.
predictBoost
float
How well the unit leads its targets. Between 0 and 1. At pb=0 it will over- or under-estimate target speed by between 0-2x its actual value. At pb=1 it will estimate speed perfectly. Keep in mind `leadLimit` can still make it undershoot.
projectiles
int
Projectiles per shot. Best used in conjunction with `sprayAngle` or changing the firing piece in script using ShotX as otherwise they'll all be clumped up in one blob.
Default:
1
proximityPriority
float
Importance of distance when picking targets. Higher means closer units are preferred more; negative values make weapons prefer distant targets.
Default:
1
pulseSpeed
float
'Large' BeamLaser only. Frequency of beam pulsation (fade to zero alpha and back) in hertz
Default:
1
range
float
Maximum targeting range. Ballistic weapons can resolve lower due to physics. Some weapons can also fly past that range if they miss.
Default:
10
rechargeDelay
float
The delay in seconds before a shield begins to regenerate after it is hit.
Fallback to:
shieldRechargeDelay
Scale:
30
Scaled by:
GAME_SPEED
reloadTime
float
Reload time between bursts, in seconds. Note that reloadTime starts to count down from the first round fired, not the last, so if (reloadTime < burst * burstRate) the weapon will fire continuously.
Default:
1
rgbColor
float3
Color of the sprite, when not using a model. #EmgCannon has a different default of 0.9/0.9/0.2.
Default:
[1 0.5 0]
rgbColor2
float3
BeamLaser and LaserCannon only. The color of the inner core of the sprite, see `coreThickness`.
Default:
[1 1 1]
scarAlpha
float
Initial opacity of the scar decal (0-1)
scarColorTint
float4
Color tint for explosion scar decal. Scaled so that 0.5 is no change, 1.0 is twice as bright.
Default:
[0.5 0.5 0.5]
scarDiameter
float
Diameter of the scar decal
Default:
-1
scarDotElimination
float
Specifies the exponent of dot product of projection vector and current terrain normal vector, this is used to remove to remove scar projection from surfaces that usually should not receive the ground scar effect, the exponent controls the degree of elimination. The default 0.0 means there will be no elimination at all.
scarGlow
float
Initial glow intensity of the scar decal (0-1)
scarGlowColorMap
string
A colormap (set of RGBA tuples) for the scar decal. Will smoothly fade between these colours over its lifetime.
scarGlowTtl
float
Duration of the glow of the scar, in seconds
scarIndices
table
A table of indices to the scar table in resources.lua
scarProjVector
float4
Forced direction of a ground scar projection (you can think of this technique as if the scar image was projected onto the ground from the cinema projector at certain world-space vector). If all zeroes, it will use ground normals. Realistically this should either be left at default, or set to {0, 1, 0} for orbital-type weapons
Default:
[0 0 0]
scarTtl
float
Duration of the scar decal, in seconds
scrollSpeed
float
'Large' BeamLaser only. Speed in elmo/s at which the tiled beam texture shifts.
Default:
5
separation
float
#Cannon only. See `stages`. Multiplier for the default distance between stages
Default:
1
shield.alpha
float
The alpha transparency of the shield whilst it is visible.
Fallback to:
shieldAlpha
Default:
0.2
shield.armorType
string
Specifies the armorclass of the shield; you can input either an armorclass name OR a unitdef name to share that unit's armorclass
Fallback to:
shieldArmorType
Default:
default
shield.badColor
float4
The RGBA colour the shield transitions to as its hit-points are reduced towards 0.
Fallback to:
shieldBadColor
Default:
[1 0.5 0.5]
shield.energyUse
float
The amount of the energy resource consumed by the shield to absorb or repulse weapons, continually drained by a repulsor as long as the projectile is in range.
Fallback to:
shieldEnergyUse
shield.exterior
bool
Determines whether or not projectiles fired within the shield's radius can pass through the shield (true) or are intercepted (false).
Fallback to:
exteriorShield
shield.force
float
The force applied by the repulsor to the weapon - higher values will deflect weapons away at higher velocities.
Fallback to:
shieldForce
shield.goodColor
float4
The RGBA colour the shield transitions to as its hit-points are regenerated towards its maximum power.
Fallback to:
shieldGoodColor
Default:
[0.5 0.5 1]
shield.interceptType
unsigned int
Bitmask representing the types of weapons that this shield can intercept. Each digit of binary that is set to one means that a weapon with the corresponding digit in its interceptedByShieldType will be intercepted by this shield (See [[Shield Interception Tag]] Use).
Fallback to:
shieldInterceptType
shield.maxSpeed
float
The maximum speed the repulsor will impart to deflected projectiles.
Fallback to:
shieldMaxSpeed
shield.power
float
Essentially the maximum allowed hit-points of the shield - reduced by the damage of a weapon upon impact.
Fallback to:
shieldPower
shield.powerRegen
float
How many hit-points the shield regenerates each second.
Fallback to:
shieldPowerRegen
shield.powerRegenEnergy
float
How much energy resource is consumed to regenerate each hit-point.
Fallback to:
shieldPowerRegenEnergy
shield.radius
float
The radius of the circular area the shield covers.
Fallback to:
shieldRadius
shield.repulser
bool
Does the shield repulse (deflect) projectiles or absorb them?
Fallback to:
shieldRepulser
shield.smart
bool
Determines whether or not projectiles fired by allied units can pass through the shield (true) or are intercepted as enemy weapons are (false).
Fallback to:
smartShield
shield.startingPower
float
How many hit-points the shield starts with - otherwise the shield must regenerate from 0 until it reaches maximum power.
Fallback to:
shieldStartingPower
shield.visible
bool
Is the shield visible or not?
Fallback to:
visibleShield
shield.visibleHitFrames
int
The number of frames a shield becomes visible for when hit.
Fallback to:
visibleShieldHitFrames
shield.visibleRepulse
bool
Is the (hard-coded) repulse effect rendered or not?
Fallback to:
visibleShieldRepulse
size
float
Size of the 2D visual sprite, if the weapon has no 'model' set.
sizeDecay
float
#Cannon only. See `stages`. Size reduction per stage, as a fraction of the first stage
sizeGrowth
float
#Flamethrower only. Visual-only radius growth in elmos per sim frame.
Default:
0.5
smokeColor
float
Smoke trail brightness multiplier
Default:
0.65
smokePeriod
int
Smoke trail update rate - the trail ribbon will make a new vertex this many sim frames. Use for high turn-rate homing missiles to prevent jagged edges. Smaller is smoother but more performance-heavy.
Default:
8
smokeSize
float
Smoke trail size multiplier
Default:
7
smokeTime
int
Smoke trail linger duration, in sim frames
Default:
60
smokeTrail
bool
MissileLauncher only. Does it leave a smoke trail ribbon?
smokeTrailCastShadow
bool
Does the smoke trail cast shadow?
Default:
1
soundHitDry
string
The sound emitted when hitting outside water. Note that a #BeamLaser will play this once per sim frame.
Fallback to:
soundHit
soundHitDryVolume
float
Sound volume of the impact, outside water. -1 means autogenerate from damage.
Fallback to:
soundHitVolume
Default:
-1
soundHitWet
string
The sound emitted when hitting in water. Note that a #BeamLaser will play this once per sim frame.
Fallback to:
soundHit
soundHitWetVolume
float
Sound volume of the impact, inside water. -1 means autogenerate from damage.
Fallback to:
soundHitVolume
Default:
-1
soundStart
string
The sound emitted when shooting the weapon.
soundStartVolume
float
Sound volume of the shot. -1 means autogenerated from damage.
Default:
-1
soundTrigger
bool
Does the weapon produce the shooting sound only once for the whole burst? If false, for each shot in a burst.
sprayAngle
float
How inaccurate are individual projectiles in a burst?
stages
int
#Cannon only. If `model` is not set then draw this many 2D sprites to simulate a sort of motion blur.
Default:
5
startvelocity
float
Initial projectile speed in elmo/s
Min:
0.01
Scale:
0.0333333
Scaled by:
INV_GAME_SPEED
stockpile
bool
Does each round of the weapon have to be built and stockpiled by the player? Will only correctly function for the first of each stockpiled weapons a unit has.
stockpileTime
float
The time in seconds taken to stockpile one round of the weapon.
Fallback to:
reload
Default:
1
Scale:
30
Scaled by:
GAME_SPEED
submissile
bool
Torpedo only. Lets torpedoes exit the water and be a missile. Lets underwater launchers shoot out-of-water targets (out-of-water launchers still cannot - use Missile instead of Torpedo for that).
sweepFire
bool
Makes BeamLasers continue firing while aiming for a new target, 'sweeping' across the terrain.
targetBorder
float
1/-1 will target the close/far edge of the colvol (instead of center). Matters for huge colvols and/or small ranges
Min:
-1
Max:
1
targetMoveError
float
Fraction of target speed per second added as a random error. E.g. if target moves at 50 elmo/s and targetMoveError is 0.5 then a random vector of length up to 25 will be added to the target position
targetable
int
Bitmask representing the types of weapon that can intercept this weapon. Each digit of binary that is set to one means that a weapon with the corresponding digit in its interceptor tag will intercept this weapon. Instant-hitting weapons such as [#BeamLaser], [#LightningCannon] and [#Rifle] cannot be targeted.
textures.1
string
When not using a model, sprite texture for AircraftBomb, Cannon, EMG, Flame; main beam texture for LaserCannon, BeamLaser, Lightning; flare texture for Missile, Starburst; dome for Shield. Note that DGun has a hardcoded texture.
Fallback to:
texture1
textures.2
string
The end-of-beam texture for LaserCannon and BeamLaser (half of texture for each end); smoketrail for Missile and Starburst. Note that Torpedo has a hardcoded trail.
Fallback to:
texture2
textures.3
string
Flare for non-'large' BeamLaser, or directional muzzle exhaust for 'large'; flame exhaust for Starburst.
Fallback to:
texture3
textures.4
string
Flare for 'large' BeamLaser.
Fallback to:
texture4
thickness
float
LaserCannon, BeamLaser and Lightning only. How thicc is the laser?
Default:
2
tileLength
float
'Large' BeamLaser only. Length in elmos of a repeated texture tile for the beam. Regular BeamLaser just has a single stretched tile.
Default:
200
tolerance
float
For `turret = false` only. Firing cone width, in the 16-bit legacy angular unit.
Default:
3000
Scale:
9.58738e-05
Scaled by:
TAANG2RAD
tracks
bool
Missile/Torpedo/Starburst only. Does the projectile track its target (i.e. homing)? Requires a positive `turnRate`.
trajectoryHeight
float
Missile/Torpedo only. Causes the missile to fly in an arc. The value is the fraction of target distance as extra arc height (e.g. at 1.0 the arc is as tall as it is long).
turnrate
float
For projectiles with `tracks`, in COB angular units (65536 is tau) per second. Also the turn rate for Starburst when they stop ascending and turn towards target (regardless of homing).
Scale:
3.19579e-06
Scaled by:
TAANG2RAD * INV_GAME_SPEED
turret
bool
Does the unit aim within an arc (up-to and including full 360° turret traverse) or always aim along the owner's heading?
waterBounce
bool
Bounces when hitting the water surface?
waterweapon
bool
Can the projectile travel underwater? Ability to fire underwater controlled separately via `fireSubmersed`
weaponTimer
float
StarburstLauncher only. Seconds of vertical ascent
weaponType
string
Sets weapon type, which is a bundle of behaviours and visuals (check other tags). Available types (sorted from the most general):
Cannon - ballistic projectile, defaults to 'plasma ball' visuals
LaserCannon - non-ballistic projectile, defaults to 'slow laser' visuals (think stormtroopers)
BeamLaser - hitscan weapon, laser visuals
MissileLauncher - potentially homing projectile, leaves a smoke trail
TorpedoLauncher - missile that can't exit water by default
StarburstLauncher - missile with a vertical ascent phase at the beginning
AircraftBomb - resolves into Torpedo or Cannon, but has support for being dropped by a bomber plane
Flame - non-ballistic projectile, has a sprite which expands
LightningCannon - hitscan weapon, lightning visuals
Melee - just applies damage. No frontswing though
DGun - deprecated, a fiery ball projectile. Has a lot of hardcoded visuals but does NOT convey 'dgun' mechanics. Prefer Cannon instead
EmgCannon - deprecated, a version of Laser or Flame with crappy visuals
Rifle - deprecated, more or less equivalent to invisible Lightning
Default:
Cannon
weaponVelocity
float
Maximum speed in elmo/s (won't accelerate further on its own)
Fallback to:
maxVelocity
Min:
0.01
Scale:
0.0333333
Scaled by:
INV_GAME_SPEED
weaponacceleration
float
Acceleration in elmo/s^2
Fallback to:
acceleration
Scale:
0.00111111
Scaled by:
INV_GAME_SPEED * INV_GAME_SPEED
windup
float
Delay between firing and the first shot
wobble
float
Missile only. Missiles will turn towards random directions (new direction rolled every 16 sim frames). In legacy angular units per second.