| 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. |
| sfxId_Flick | s32 | 0xc | SFX ID when repelling projectile. -1 means it does not occur. | This field takes an Particle ID. |
| 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. | |
| shootInterval | f32 | 0x18 | The interval at which the projectile is emitted. Applied when generated via the TAE Bullet Behavior event. In seconds. | |
| gravityInRange | f32 | 0x1c | Gravity applied downward within range. In metres per second ^ 2. | |
| gravityOutRange | f32 | 0x20 | Gravity applied downward outside of range. In metres per second ^ 2. | |
| hormingStopRange | f32 | 0x24 | The distance at which the bullet homing will stop being applied. | |
| initVellocity | f32 | 0x28 | Initial speed of projectile. | |
| accelInRange | f32 | 0x2c | Acceleration whilst projectile is within distance threshold. In metres per second ^ 2. | |
| accelOutRange | f32 | 0x30 | Acceleration whilst projectile is beyond the distance threshold. In metres per second ^ 2. | |
| maxVellocity | f32 | 0x34 | The maximum speed of the bullet. In metres per second. | |
| minVellocity | f32 | 0x38 | The minimum speed of the bullet. In metres per second. | |
| accelTime | f32 | 0x3c | The delay before the projectile will start accelerating. In seconds. | |
| homingBeginDist | f32 | 0x40 | The distance at which projectile homing will start to be applied. | |
| hitRadius | f32 | 0x44 | The initial radius of the hitbox. | |
| hitRadiusMax | f32 | 0x48 | 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 | 0x4c | 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 | 0x50 | The duration from the projectile landing to the start of hit radius expansion (if 0, it expands immediately). | |
| hormingOffsetRange | f32 | 0x54 | 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. | |
| dmgHitRecordLifeTime | f32 | 0x58 | The interval at which damage can be applied by this bullet to a victim. 0 means it will only ever apply once. | |
| externalForce | f32 | 0x5c | The external force modifier to apply to the projectile in the direction of shooting (Y-axis is removed) based on map factor. | |
| spEffectIDForShooter | s32 | 0x60 | The SpEffect applied to owner of bullet upon being emitted. | This field refers to the following params: SpEffectParam |
| autoSearchNPCThinkID | s32 | 0x64 | 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 | 0x68 | 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 | 0x6c | The SpEffect to apply when the projectile hits target. | This field refers to the following params: SpEffectParam |
| spEffectId1 | s32 | 0x70 | SpEffect to apply when the projectile hits target. | This field refers to the following params: SpEffectParam |
| spEffectId2 | s32 | 0x74 | SpEffect to apply when the projectile hits target. | This field refers to the following params: SpEffectParam |
| spEffectId3 | s32 | 0x78 | SpEffect to apply when the projectile hits target. | This field refers to the following params: SpEffectParam |
| spEffectId4 | s32 | 0x7c | SpEffect to apply when the projectile hits target. | This field refers to the following params: SpEffectParam |
| numShoot | u16 | 0x80 | The number of projectiles produced per emitter interval. | |
| homingAngle | s16 | 0x82 | The amount of tracking correction made each second, affecting the speed the projectile faces the victim. In degrees per second. | |
| shootAngle | s16 | 0x84 | Specify the horizontal angle at which the projectile should be fired, offset from the emitter origin. In degrees. | |
| shootAngleInterval | s16 | 0x86 | When firing multiple projectiles, specify the horizontal angle interval at which to fire (Y-axis). In degrees. | |
| shootAngleXInterval | s16 | 0x88 | When firing multiple projectiles, specify the vertical angle interval at which to fire (X-axis). Positive angle upwards, negative angle downwards. In degrees. | |
| damageDamp | s8 | 0x8a | After passing attenuation distance, Physical damage falls off by this % every second. | |
| spelDamageDamp | s8 | 0x8b | After passing attenuation distance, Magic damage falls off by this % every second. | |
| fireDamageDamp | s8 | 0x8c | After passing attenuation distance, Fire damage falls off by this % every second. | |
| thunderDamageDamp | s8 | 0x8d | After passing attenuation distance, Lightning damage falls off by this % every second. | |
| staminaDamp | s8 | 0x8e | After passing attenuation distance, Stamina damage falls off by this % every second. | |
| knockbackDamp | s8 | 0x8f | After passing attenuation distance, knockback falls off by this % every second. | |
| shootAngleXZ | s8 | 0x90 | Specify the vertical angle of the projectile that should be fired. Positive values angle upwards, negative values angle downwards. In degrees. | |
| lockShootLimitAng | u8 | 0x91 | The maximum angle the bullet's initial direction can change to face towards player locked-on target or AI focused enemy. In degrees. | |
| isPenetrate | u8 | 0x92 | 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. |
| prevVelocityDirRate | u8 | 0x93 | The ratio to add the previous movement direction to the current direction when the sliding projectile hits the wall. | |
| atkAttribute | u8 | 0x94 | Attack attribute to use when applying attack against the victim. | This field uses the following enum: ATKPARAM_ATKATTR_TYPE |
| spAttribute | u8 | 0x95 | Special attributes to use when applying attack against the victim. | This field uses the following enum: ATKPARAM_SPATTR_TYPE |
| Material_AttackType | u8 | 0x96 | 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 | 0x97 | 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 | 0x98 | Specify the size of the particles to apply for the attack against the victim. | This field uses the following enum: BEHAVIOR_ATK_SIZE |
| launchConditionType | u8 | 0x99 | Conditions required for HitBulletID to generate upon impact or expiration. | This field uses the following enum: BULLET_LAUNCH_CONDITION_TYPE |
| FollowType | u8 | 0x9a [0-2] | Affects projectile position and behavior. | This field uses the following enum: BULLET_FOLLOW_TYPE |
| EmittePosType | u8 | 0x9a [3-5] | Where projectile appears when created. | This field uses the following enum: BULLET_EMITTE_POS_TYPE |
| isAttackSFX | u8 | 0x9a [6] | If ON, the projectile SFX will remain stuck in the victim it it collides. | This field is a boolean. |
| isEndlessHit | u8 | 0x9a [7] | If ON, the projectile will hit continously upon impact. | This field is a boolean. |
| isPenetrateMap | u8 | 0x9b [0] | If ON, the projectile will pass through collision and map pieces. | This field is a boolean. |
| isHitBothTeam | u8 | 0x9b [1] | If ON, the projectile will collide with both victim and owner team types. | This field is a boolean. |
| isUseSharedHitList | u8 | 0x9b [2] | If ON, multiple projectile from the same emitter that collide with a victim will count as one projectile in terms of updating the damage interval. | This field is a boolean. |
| isUseMultiDmyPolyIfPlace | u8 | 0x9b [3] | If ON, multiple dummy polygons with shared ID can be used for emitting the projectile. | This field is a boolean. |
| attachEffectType | u8 | 0x9b [4-5] | The deflection type for this projectile against other projectiles. | This field uses the following enum: BULLET_ATTACH_EFFECT_TYPE |
| isHitForceMagic | u8 | 0x9b [6] | If ON, this projectile can be deflected by projectiles with attachEffectType set to 1. | This field is a boolean. |
| isIgnoreSfxIfHitWater | u8 | 0x9b [7] | If ON, do not emit the hit particle if the projectile hits the water surface | This field is a boolean. |
| isIgnoreMoveStateIfHitWater | u8 | 0x9c [0] | If ON, the projectile will pass through water collision. | This field is a boolean. |
| isHitDarkForceMagic | u8 | 0x9c [1] | If ON, this projectile can be deflected by projectiles with attachEffectType set to 3. | This field is a boolean. |
| pad | dummy8 | 0x9d | This field is padding. |
| Option | Description | Notes |
|---|---|---|
0 | None | |
1 | Slash | |
2 | Strike | |
3 | Thrust | |
4 | Push |
| Option | Description | Notes |
|---|---|---|
0 | Do not overwrite | |
1 | None | |
2 | Fire | |
3 | Magic | |
4 | Poison | |
5 | Egg | |
6 | Lightning | |
7 | Petrification | |
8 | Crystallization | |
255 | None |
| 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 | Always | |
1 | Hit water | |
2 | Hit water or swamp | |
3 | Didn't hit enemy | |
4 | Hit enemy | |
254 | Expired | |
255 | Hit ground or enemy |
| 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 |
| Option | Description | Notes |
|---|---|---|
0 | None | |
1 | Repel Physical Projectiles (isHitForceMagic) | |
3 | Repel Magical Projectiles (isHitDarkForceMagic) |