====== Bullet ======
===== Fields =====
^ Field ^ Type ^ Offset ^ Description ^ Notes ^
| atkId_Bullet | ''s32'' | ''0x0'' | Set the attack parameters that are applied when this bullet impacts a victim. | This field refers to the following params: [[des-refmat:param:AtkParam|AtkParam_Pc]], [[des-refmat:param:AtkParam|AtkParam_Npc]] |
| sfxId_Bullet | ''s32'' | ''0x4'' | SFX ID before acceleration. If the SFX ID after acceleration is -1, this SFX will continue to fly even after acceleration. | This field takes an [[des-refmat:particle-list|Particle ID]]. |
| sfxId_Hit | ''s32'' | ''0x8'' | Impact SFX ID. -1 means it does not occur. | This field takes an [[des-refmat:particle-list|Particle ID]]. |
| EmittePosType | ''u8'' | ''0xc'' | Where projectile appears when created. | This field uses the following enum: BULLET_EMITTE_POS_TYPE |
| FollowType | ''u8'' | ''0xd'' | Affects projectile position and behavior. | This field uses the following enum: BULLET_FOLLOW_TYPE |
| isAttackSFX | ''u8'' | ''0xe'' | If ON, the projectile SFX will remain stuck in the victim it it collides. | This field is a boolean. |
| isEndlessHit | ''u8'' | ''0xf'' | If ON, the projectile will hit continously upon impact. | This field is a boolean. |
| life | ''f32'' | ''0x10'' | Time for projectile to exist in flight (-1 is infinite). In seconds. | |
| dist | ''f32'' | ''0x14'' | If the bullet flight distance exceeds this value, the attenuation set by other parameters will be applied. | |
| numShoot | ''s32'' | ''0x18'' | The number of projectiles produced per emitter interval. | |
| shootInterval | ''f32'' | ''0x1c'' | The interval at which the projectile is emitted. Applied when generated via the TAE Bullet Behavior event. In seconds. | |
| shootAngle | ''s16'' | ''0x20'' | Specify the horizontal angle at which the projectile should be fired, offset from the emitter origin. In degrees. | |
| shootAngleInterval | ''s16'' | ''0x22'' | When firing multiple projectiles, specify the horizontal angle interval at which to fire (Y-axis). In degrees. | |
| gravityInRange | ''f32'' | ''0x24'' | Gravity applied downward within range. In metres per second ^ 2. | |
| gravityOutRange | ''f32'' | ''0x28'' | Gravity applied downward outside of range. In metres per second ^ 2. | |
| damageDamp | ''s8'' | ''0x2c'' | After passing attenuation distance, Physical damage falls off by this % every second. | |
| spelDamageDamp | ''s8'' | ''0x2d'' | After passing attenuation distance, Magic damage falls off by this % every second. | |
| fireDamageDamp | ''s8'' | ''0x2e'' | After passing attenuation distance, Fire damage falls off by this % every second. | |
| staminaDamp | ''s8'' | ''0x2f'' | After passing attenuation distance, Stamina damage falls off by this % every second. | |
| knockbackDamp | ''s8'' | ''0x30'' | After passing attenuation distance, knockback falls off by this % every second. | |
| shootAngleXZ | ''s8'' | ''0x31'' | Specify the vertical angle of the projectile that should be fired. Positive values angle upwards, negative values angle downwards. In degrees. | |
| lockShootLimitAng | ''u8'' | ''0x32'' | The maximum angle the bullet's initial direction can change to face towards player locked-on target or AI focused enemy. In degrees. | |
| pad2 | ''dummy8'' | ''0x33'' | | This field is padding. |
| hormingStopRange | ''f32'' | ''0x34'' | The distance at which the bullet homing will stop being applied. | |
| initVellocity | ''f32'' | ''0x38'' | Initial speed of projectile. | |
| accelInRange | ''f32'' | ''0x3c'' | Acceleration whilst projectile is within distance threshold. In metres per second ^ 2. | |
| accelOutRange | ''f32'' | ''0x40'' | Acceleration whilst projectile is beyond the distance threshold. In metres per second ^ 2. | |
| maxVellocity | ''f32'' | ''0x44'' | The maximum speed of the bullet. In metres per second. | |
| minVellocity | ''f32'' | ''0x48'' | The minimum speed of the bullet. In metres per second. | |
| accelTime | ''f32'' | ''0x4c'' | The delay before the projectile will start accelerating. In seconds. | |
| homingAngle | ''s32'' | ''0x50'' | The amount of tracking correction made each second, affecting the speed the projectile faces the victim. In degrees per second. | |
| homingBeginDist | ''f32'' | ''0x54'' | The distance at which projectile homing will start to be applied. | |
| hitRadius | ''f32'' | ''0x58'' | The initial radius of the hitbox. | |
| hitRadiusMax | ''f32'' | ''0x5c'' | The maximum radius of the hitbox, the duration for the hitbox to change from initial to max radius is determined by spreadTime. (If -1, radius is same as initial hitbox radius). | |
| spreadTime | ''f32'' | ''0x60'' | The amount of time takes for hitbox radius to grow from initial value to max value. If 0, only the initial radius is used. In seconds. | |
| expDelay | ''f32'' | ''0x64'' | The duration from the projectile landing to the start of hit radius expansion (if 0, it expands immediately). | |
| isPenetrate | ''u8'' | ''0x68'' | If ON, allows a projectile to pierce through enemies and objects. Also potentially allows hitting the same enemy multiple times using dmgHitRecordLifetime. See isPenetrateMap to ignore map. | This field is a boolean. |
| Material_AttackType | ''u8'' | ''0x69'' | Specify the particles and sounds to apply for the attack against the victim. | This field uses the following enum: BEHAVIOR_ATK_TYPE |
| Material_AttackMaterial | ''u8'' | ''0x6a'' | Specify the particles and sounds to apply for the attack against the victim. | This field uses the following enum: WEP_MATERIAL_ATK |
| Material_Size | ''u8'' | ''0x6b'' | Specify the size of the particles to apply for the attack against the victim. | This field uses the following enum: BEHAVIOR_ATK_SIZE |
| isPenetrateMap | ''u8'' | ''0x6c'' | If ON, the projectile will pass through collision and map pieces. | This field is a boolean. |
| isHitBothTeam | ''u8'' | ''0x6d'' | If ON, the projectile will collide with both victim and owner team types. | This field is a boolean. |
| pad4 | ''dummy8'' | ''0x6e'' | | This field is padding. |
| hormingOffsetRange | ''f32'' | ''0x74'' | If set to 0, the projectile will track with perfect accuracy. Otherwise, the target location is offset by this amount in the direction to victim is moving. | |
| spEffectIDForShooter | ''s32'' | ''0x78'' | The SpEffect applied to owner of bullet upon being emitted. | This field refers to the following params: [[des-refmat:param:SpEffectParam]] |
| autoSearchNPCThinkID | ''s32'' | ''0x7c'' | The think parameters used by the funnel to search for the target (e.g. soulmass). | This field refers to the following params: [[des-refmat:param:NpcThinkParam]] |
| HitBulletID | ''s32'' | ''0x80'' | The bullet to generate when the projectile expires, or conditionally according to some launchConditionType values. | This field refers to the following params: [[des-refmat:param:Bullet]] |
| spEffectId0 | ''s32'' | ''0x84'' | The SpEffect to apply when the projectile hits target. | This field refers to the following params: [[des-refmat:param:SpEffectParam]] |
| spEffectId1 | ''s32'' | ''0x88'' | SpEffect to apply when the projectile hits target. | This field refers to the following params: [[des-refmat:param:SpEffectParam]] |
| spEffectId2 | ''s32'' | ''0x8c'' | SpEffect to apply when the projectile hits target. | This field refers to the following params: [[des-refmat:param:SpEffectParam]] |
| spEffectId3 | ''s32'' | ''0x90'' | SpEffect to apply when the projectile hits target. | This field refers to the following params: [[des-refmat:param:SpEffectParam]] |
| spEffectId4 | ''s32'' | ''0x94'' | SpEffect to apply when the projectile hits target. | This field refers to the following params: [[des-refmat:param:SpEffectParam]] |
| pad5 | ''dummy8'' | ''0x98'' | | This field is padding. |
===== Enums =====
==== BEHAVIOR_ATK_TYPE ====
^ Option ^ Description ^ Notes ^
| ''0'' | Slash | |
| ''1'' | Blow | |
| ''2'' | Thrust | |
| ''3'' | Explosion | |
| ''4'' | Bullet | |
==== WEP_MATERIAL_ATK ====
^ Option ^ Description ^ Notes ^
| ''0'' | Standard | |
| ''1'' | Physical | |
| ''2'' | Magic | |
| ''3'' | Fire | |
| ''4'' | Lightning | |
| ''5'' | Unknown | |
| ''6'' | None | |
| ''7'' | Dmy1 | |
| ''8'' | Dmy2 | |
| ''9'' | Dmy3 | |
| ''10'' | Dmy4 | |
| ''255'' | None | |
==== BEHAVIOR_ATK_SIZE ====
^ Option ^ Description ^ Notes ^
| ''0'' | Small | |
| ''1'' | Large | |
==== BULLET_FOLLOW_TYPE ====
^ Option ^ Description ^ Notes ^
| ''0'' | Do not follow | |
| ''1'' | Follow owner | |
| ''2'' | Follow owner's feet | |
| ''3'' | Follow victim | |
| ''4'' | Follow along ground | |
==== BULLET_EMITTE_POS_TYPE ====
^ Option ^ Description ^ Notes ^
| ''0'' | Default | |
| ''1'' | Random radius around owner | |
| ''2'' | Higher elevation | |
| ''3'' | Nearby victim origin. If no victims, targets projectile origin. | |
| ''4'' | Random radius around nearest victim | |