Skip to content

BulletType

Built-in constants:

placeholder spaceLiquid damageLightning damageLightningGround fireball

BulletType

extends Content

field type default notes
lifetime float 40.0 Lifetime in ticks.
speed float 1.0 Speed in units/tick.
damage float 1.0 Direct damage dealt on hit.
hitSize float 4.0 Hitbox size.
drawSize float 40.0 Clipping hitbox.
drag float 0.0 Drag as fraction of velocity.
pierce boolean false Whether to pierce units.
pierceBuilding boolean false Whether to pierce buildings.
pierceCap int -1 Maximum # of pierced objects.
pierceDamageFactor float 0.0 Multiplier of damage decreased per health pierced.
maxDamageFraction float -1.0 If positive, limits non-splash damage dealt to a fraction of the target's maximum health.
removeAfterPierce boolean true If false, this bullet isn't removed after pierceCap is exceeded. Expert usage only.
laserAbsorb boolean true For piercing lasers, setting this to true makes it get absorbed by plastanium walls.
optimalLifeFract float 0.0 Life fraction at which this bullet has the best range/damage/etc. Used for lasers and continuous turrets.
layer float 100.0 Z layer to drawn on.
hitEffect Effect hitBulletSmall Effect shown on direct hit.
despawnEffect Effect hitBulletSmall Effect shown when bullet despawns.
shootEffect Effect shootSmall Effect created when shooting.
chargeEffect Effect none Effect created when charging starts; only usable in single-shot weapons with a firstShotDelay / shotDelay.
smokeEffect Effect shootSmallSmoke Extra smoke effect created when shooting.
hitSound Sound none Sound made when hitting something or getting removed.
despawnSound Sound none Sound made when hitting something or getting removed.
hitSoundPitch float 1.0 Pitch of the sound made when hitting something
hitSoundVolume float 1.0 Volume of the sound made when hitting something
inaccuracy float 0.0 Extra inaccuracy when firing.
ammoMultiplier float 2.0 How many bullets get created per ammo item/liquid.
reloadMultiplier float 1.0 Multiplied by turret reload speed to get final shoot speed.
buildingDamageMultiplier float 1.0 Multiplier of how much base damage is done to tiles.
recoil float 0.0 Recoil from shooter entities.
killShooter boolean false Whether to kill the shooter when this is shot. For suicide bombers.
instantDisappear boolean false Whether to instantly make the bullet disappear.
splashDamage float 0.0 Damage dealt in splash. 0 to disable.
scaledSplashDamage boolean false If true, splash damage is "correctly" affected by unit hitbox size. Used for projectiles that do not collide / have splash as their main source of damage.
knockback float 0.0 Knockback in velocity.
impact boolean false Should knockback follow the bullet's direction
status StatusEffect none Status effect applied on hit.
statusDuration float 480.0 Intensity of applied status effect in terms of duration.
collidesTiles boolean true Whether this bullet type collides with tiles.
collidesTeam boolean false Whether this bullet type collides with tiles that are of the same team.
collidesAir boolean true Whether this bullet type collides with air/ground units.
collidesGround boolean true Whether this bullet type collides with air/ground units.
collides boolean true Whether this bullet types collides with anything at all.
collideFloor boolean false If true, this projectile collides with non-surface floors.
collideTerrain boolean false If true, this projectile collides with static walls
keepVelocity boolean true Whether velocity is inherited from the shooter.
scaleLife boolean false Whether to scale lifetime (not actually velocity!) to disappear at the target position. Used for artillery.
hittable boolean true Whether this bullet can be hit by point defense.
reflectable boolean true Whether this bullet can be reflected.
absorbable boolean true Whether this projectile can be absorbed by shields.
backMove boolean true Whether to move the bullet back depending on delta to fix some delta-time related issues. Do not change unless you know what you're doing.
ignoreSpawnAngle boolean false If true, the angle param in create is ignored.
createChance float 1.0 Chance for this bullet to be created.
maxRange float -1.0 Bullet range positive override.
rangeOverride float -1.0 When > 0, overrides range even if smaller than base range.
rangeChange float 0.0 When used in a turret with multiple ammo types, this can be set to a non-zero value to influence range.
range float 0.0 Range initialized in init().
healPercent float 0.0 % of block health healed *
healAmount float 0.0 flat amount of block health healed
makeFire boolean false Whether to make fire on impact
despawnHit boolean false Whether to create hit effects on despawn. Forced to true if this bullet has any special effects like splash damage.
fragOnHit boolean true If true, this bullet will create bullets when it hits anything, not just when it despawns.
fragOnAbsorb boolean true If false, this bullet will not create fraags when absorbed by a shield.
pierceArmor boolean false If true, unit armor is ignored in damage calculations.
setDefaults boolean true Whether status and despawnHit should automatically be set.
hitShake float 0.0 Amount of shaking produced when this bullet hits something or despawns.
despawnShake float 0.0 Amount of shaking produced when this bullet hits something or despawns.
fragBullet BulletType null Bullet type that is created when this bullet expires.
delayFrags boolean false If true, frag bullets are delayed to the next frame. Fixes obscure bugs with piercing bullet types spawning frags immediately and screwing up the Damage temporary variables.
fragRandomSpread float 360.0 Degree spread range of fragmentation bullets.
fragSpread float 0.0 Uniform spread between each frag bullet in degrees.
fragAngle float 0.0 Angle offset of fragmentation bullets.
fragBullets int 9 Number of fragmentation bullets created.
fragVelocityMin float 0.2 Random range of frag velocity as a multiplier.
fragVelocityMax float 1.0 Random range of frag velocity as a multiplier.
fragLifeMin float 1.0 Random range of frag lifetime as a multiplier.
fragLifeMax float 1.0 Random range of frag lifetime as a multiplier.
fragOffsetMin float 1.0 Random offset of frag bullets from the parent bullet.
fragOffsetMax float 7.0 Random offset of frag bullets from the parent bullet.
pierceFragCap int -1 How many times this bullet can release frag bullets, if pierce = true.
intervalBullet BulletType null Bullet that is created at a fixed interval.
bulletInterval float 20.0 Interval, in ticks, between which bullet spawn.
intervalBullets int 1 Number of bullet spawned per interval.
intervalRandomSpread float 360.0 Random spread of interval bullets.
intervalSpread float 0.0 Angle spread between individual interval bullets.
intervalAngle float 0.0 Angle offset for interval bullets.
intervalDelay float -1.0 Use a negative value to disable interval bullet delay.
hitColor Color ffffffff Color used for hit/despawn effects.
healColor Color 98ffa9ff Color used for block heal effects.
healEffect Effect healBlockFull Effect emitted upon blocks that are healed.
spawnBullets Seq new Seq<>() Bullets spawned when this bullet is created. Rarely necessary, used for visuals.
spawnUnit UnitType null Unit spawned instead of this bullet. Useful for missiles.
despawnUnit UnitType null Unit spawned when this bullet hits something or despawns due to it hitting the end of its lifetime.
despawnUnitChance float 1.0 The chance for despawn units to spawn.
despawnUnitCount int 1 Amount of units spawned when this bullet despawns.
despawnUnitRadius float 0.1 Random offset distance from the original bullet despawn/hit coordinate.
faceOutwards boolean false If true, units spawned when this bullet despawns face away from the bullet instead of the same direction as the bullet.
parts Seq new Seq<>() Extra visual parts for this bullet.
trailColor Color e58956ff Color of trail behind bullet.
trailChance float -1.0E-4 Chance of trail effect spawning on bullet per tick.
trailInterval float 0.0 Uniform interval in which trail effect is spawned.
trailEffect Effect missileTrail Trail effect that is spawned.
trailParam float 2.0 Rotation/size parameter that is passed to trail. Usually, this controls size.
trailRotation boolean false Whether the parameter passed to the trail is the bullet rotation, instead of a flat value.
trailInterp Interp one Interpolation for trail width as function of bullet lifetime
trailLength int -1 Length of trail quads. Any value <= 0 disables the trail.
trailWidth float 2.0 Width of trail, if trailLength > 0
trailSinMag float 0.0 If trailSinMag > 0, these values are applied as a sine curve to trail width.
trailSinScl float 3.0 If trailSinMag > 0, these values are applied as a sine curve to trail width.
splashDamageRadius float -1.0 Use a negative value to disable splash damage.
splashDamagePierce boolean false If true, splash damage pierces through tiles.
incendAmount int 0 Amount of fires attempted around bullet.
incendSpread float 8.0 Spread of fires around bullet.
incendChance float 1.0 Chance of fire being created.
homingPower float 0.0 Power of bullet ability. Usually a number between 0 and 1; try 0.1 as a starting point.
homingRange float 50.0 Range of homing effect around bullet.
homingDelay float -1.0 Use a negative value to disable homing delay.
suppressionRange float -1.0 Range of healing block suppression effect.
suppressionDuration float 480.0 Duration of healing block suppression effect.
suppressionEffectChance float 50.0 Chance of suppression effect occurring on block, scaled down by number of blocks.
suppressColor Color bf92f9ff Color used for the regenSuppressSeek effect.
lightningColor Color f3e979ff Color of lightning created by bullet.
lightning int 0 Number of separate lightning "roots".
lightningLength int 5 Length of each lightning strand.
lightningLengthRand int 0 Extra random length added onto base length of lightning.
lightningDamage float -1.0 Use a negative value to use default bullet damage.
lightningCone float 360.0 Spread of lightning, relative to bullet rotation.
lightningAngle float 0.0 Offset of lightning relative to bullet rotation.
lightningType BulletType null The bullet created at lightning points.
weaveScale float 1.0 Scale of bullet weave pattern. Higher -> less vibration.
weaveMag float 0.0 Intensity of bullet weaving. Note that this may make bullets inaccurate.
weaveRandom boolean true If true, the bullet weave will randomly switch directions on spawn.
puddles int 0 Number of individual puddles created.
puddleRange float 0.0 Range of puddles around bullet position.
puddleAmount float 5.0 Liquid count of each puddle created.
puddleLiquid Liquid water Liquid that puddles created are made of.
displayAmmoMultiplier boolean true Whether to display the ammo multiplayer for this bullet type in its stats.
lightRadius float -1.0 Radius of light emitted by this bullet; <0 to use defaults.
lightOpacity float 0.3 Opacity of light color.
lightColor Color fbd367ff Color of light emitted by this bullet.