| 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: AtkParam_Pc, 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 Particle ID. |
| sfxId_Hit | s32 | 0x8 | Impact SFX ID. -1 means it does not occur. | This field takes an 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: 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: 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: Bullet |
| spEffectId0 | s32 | 0x84 | The SpEffect to apply when the projectile hits target. | This field refers to the following params: SpEffectParam |
| spEffectId1 | s32 | 0x88 | SpEffect to apply when the projectile hits target. | This field refers to the following params: SpEffectParam |
| spEffectId2 | s32 | 0x8c | SpEffect to apply when the projectile hits target. | This field refers to the following params: SpEffectParam |
| spEffectId3 | s32 | 0x90 | SpEffect to apply when the projectile hits target. | This field refers to the following params: SpEffectParam |
| spEffectId4 | s32 | 0x94 | SpEffect to apply when the projectile hits target. | This field refers to the following params: SpEffectParam |
| pad5 | dummy8 | 0x98 | This field is padding. |
| Option | Description | Notes |
|---|---|---|
0 | Slash | |
1 | Blow | |
2 | Thrust | |
3 | Explosion | |
4 | Bullet |
| 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 |
| Option | Description | Notes |
|---|---|---|
0 | Small | |
1 | Large |
| Option | Description | Notes |
|---|---|---|
0 | Do not follow | |
1 | Follow owner | |
2 | Follow owner's feet | |
3 | Follow victim | |
4 | Follow along ground |
| 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 |