Bullet Parameters
Dark Souls 1
Useful knowledge:
atkId_Bullet refers to a AtkParam_Npc or AtkParam_Pc, typically for dealing damage.
hitBulletID is used to generate a second bullet upon expiring (or more when chaining), allowing effects such as explosions.
sfxId_ fields are used for visual and audio effects.
| Field | Description |
|---|---|
| atkId_Bullet | ID of AtkParam_Npc or AtkParam_Pc to use on hit targets. |
| sfxId_Bullet | Visual/audio effect while bullet is active. Refers to ID of an SFX |
| sfxId_Hit | Visual/audio effect when the bullet expires or hits something. Refers to ID of an SFX |
| sfxId_Flick | Visual/audio effect when the bullet is blocked by a shield? (needs verification) Refers to ID of an SFX |
| life | Duration (in seconds) bullet will last. |
| dist | Arbitrary range threshold (in "meters") used for swapping between inRange and outRange fields. Has misc effects too1. |
| shootInterval | Frequency (in seconds) to generate additional bullets while TAE bullet behavior event remains active. 0 = do not generate additional bullets |
| gravityInRange | Converts projectile direction downwards/upwards (+/-) by this amount over time while distance is less than the dist threshold. Also increases velocity, but whether this is constant or direction dependent is unknown. |
| gravityOutRange | Converts projectile direction downwards/upwards (+/-) by this amount over time while distance is greater than the dist threshold. Also increases velocity, but whether this is constant or direction dependent is unknown. |
| hormingStopRange | Stops homing when bullet is within this distance (in "meters") of homing target. |
| initVellocity | Initial movement speed. |
| accelInRange | Movement acceleration/deceleration (+/-) while distance is less than the dist threshold. |
| accelOutRange | Movement acceleration/deceleration (+/-) while distance greater than the dist threshold. |
| maxVellocity | Maximum movement speed. |
| minVellocity | Minimum movement speed. |
| accelTime | Delay (in seconds) before acceleration/deceleration will be applied. Timer only runs once. |
| homingBeginDist | Distance required from the bullet's origin to start homing. |
| hitRadius | Initial hitbox radius of bullet (in "meters") |
| hitRadiusMax | Ultimate hitbox radius of bullet (in "meters") when spreadTime timer finishes |
| spreadTime | Time (in seconds) it will take the hitbox size to fully change from hitRadius to hitRadiusMax. If less than 0.2, only hitRadius will be used |
| expDelay | Unknown, never used. |
| hormingOffsetRange | Distance (in "meters") to offset homing target using the direction they are currently moving. |
| dmgHitRecordLifeTime | Frequency (in seconds) that (penetrating) bullets can apply damage or special effects. 0 = apply once |
| externalForce | Applies permanent movement velocity in bullet origin's initial direction. |
| spEffectIDForShooter | spEffectParam to apply to the bullet's owner. |
| autoSearchNPCThinkID | Used for some homing soul mass/pursuers spell behavior, such as additional projectiles as intelligence increases and launching when applicable. |
| HitBulletID | ID of another bullet to generate once this one expires, or conditionally using launchConditionType. |
| spEffectId0 | spEffectParam to apply to hit targets. |
| spEffectId1 | spEffectParam to apply to hit targets. |
| spEffectId2 | spEffectParam to apply to hit targets. |
| spEffectId3 | spEffectParam to apply to hit targets. |
| spEffectId4 | spEffectParam to apply to hit targets. |
| numShoot | Amount of projectiles to generate per interval2. |
| homingAngle | How quickly the projectile can turn to face a homing target (in degrees per second). |
| shootAngle | Yaw (left/right) angle offset for all projectiles. |
| shootAngleInterval | Yaw (left/right) angle offset between multiple projectiles. See numShoot. |
| shootAngleXInterval | Pitch (up/down) angle offset between multiple projectiles. Positive values angle upwards, negative values angle downwards. See numShoot. |
| damageDamp | Reduction in physical damage over time (needs testing. may only apply after dist threshold) |
| spelDamageDamp | Reduction in magic damage over time (needs testing. may only apply after dist threshold?) |
| fireDamageDamp | Reduction in fire damage over time (needs testing. may only apply after dist threshold?) |
| thunderDamageDamp | Reduction in lightning damage over time (needs testing. may only apply after dist threshold?) |
| staminaDamp | Reduction in stamina damage over time (needs testing. may only apply after dist threshold?) |
| knockbackDamp | Reduction in knockback over time (needs testing. may only apply after dist threshold?) |
| shootAngleXZ | Pitch (up/down) angle offset for all projectiles. Positive values angle upwards, negative values angle downwards. |
| lockShootLimitAng | Maximum angle the bullet origin's initial direction can change to face towards player locked-on target or AI focused enemy |
| isPenetrate | Determines if bullet can pierce through enemies and objects. Also potentially allows hitting the same enemy multiple times using dmgHitRecordLifetime. See isPenetrateMap to ignore map. |
| prevVelocityDirRate | Unknown. Rarely used. |
| atkAttribute | Physical damage type. 1 = Slash, 2 = Strike, 3 = Thrust, 4 = Normal |
| spAttribute | Special damage type. Changes visual/audio effects on hit and death animations. 1 = Normal, 2 = Fire, 3 = Magic, 4 = Poison, 5 = unused ("egg"), 6 = Lightning, 7 = Petrification, 8 = Crystal |
| Material_AttackType | Possibly visual/audio effects on hit? (needs info) |
| Material_AttackMaterial | Possibly visual/audio effects on hit? (needs info) |
| Material_Size | Unknown. Never used. |
| launchConditionType | Condition required for generating hitBulletID. 0 = life duration ended or hit ground/enemy, 1 = ?, 2 = hit water, 254 = hit death collision (fall death only?), 255 = hit ground or enemy |
| FollowType | Misc effects on how bullets behave. 0 = normal, 1 = follow owner (homing soul mass style), 2 = follow owner at origin or dmyPoly (bottom of character), 33 = Rapidly approach and stop at dist & ignores velocity & ignores lockShootLimitAng, 4 = slide off of world collision |
| EmittePosType | Affects bullet generation locations (needs info and verification). 1 = random locations around origin (used by firestorm), 2 = slightly higher elevation (used by white dragon breath and other ground crawling bullets), 3 = nearest enemy origin within a certain distance (unused), 4 = random locations around nearest enemy within certain distance (used by bed of chaos) |
| isAttackSFX | Determines if bullets that hit targets will be stuck in them. Used by arrows and throwing knives. |
| isEndlessHit | Unknown. Used by part of Evil Eye Ring and Acid Surge? |
| isPenetrateMap | Determines if bullets ignore map collision. |
| isHitBothTeam | Determines if bullets can affect the owner's allies. |
| isUseSharedHitList | Determines how multiple projectiles from a single bullet behave when hitting the same target (needs info). |
| isUseMultiDmyPolyIfPlace | Unknown. Never used. |
| attachEffectType | Determines if this bullet will deflect other bullets with specific fields. 0 = no deflection, 1 = isHitForceMagic deflection, 3 = isHitDarkForceMagic deflection |
| isHitForceMagic | Determines if this bullet will be deflected by other bullets with attachEffectType = 1. |
| isIgnoreSfxIfHitWater | Never used. |
| isIgnoreMoveStateIfHitWater | Determines if bullet will collide with water collision false = collide, true = do not collide |
| isHitDarkForceMagic | Determines if this bullet will be deflected by other bullets with attachEffectType = 3. |





