BulletData Resource
Namespace: SpaceUsurper
Inheritance: Object → HotloadedData → BulletData
Note
This resource type supports #include, so it can inherit properties
from other resources of the same type.
Properties
| Name | Description | 
|---|---|
| #include | (Inherited from HotloadedData<BulletData>) | 
| alwaysTargetClosestPlayer | |
| anchored | Set this to true if something else moves this bullet (eg. parent pattern). | 
| autoUpdateTargetPlayer | |
| borderWarningColor | The color of the bullet when just out of camera bounds (uses current colorA when not set). | 
| borderWarningGlow | How much the bullet glows when just out of camera bounds. | 
| borderWarningMinOpacity | How opaque the edges of the border warning are. | 
| bounds | |
| bulletArchetypeIgnoreOnUpdate | |
| cantBeDestroyed | |
| cantBeIgnored | If true, player's IgnoreBulletDamage property won't prevent bullet's damage or onHitPlayerhandler. | 
| changeTargetPlayerOnDeath | In co-op, should this bullet pick a new target player if the old target dies. | 
| circleSkew | Amount of skew (stretching in forward direction) when bullet traveling at max skew speed. | 
| circleSkewDist | Distance (per fixed frame) required for full skew. | 
| circleSkewEasingType | |
| clampToBounds | If true, force bullet to be inside its bounds. | 
| clampToBoundsVelocityDamping | If clampToBounds is true, damping of 0 will not affect velocity of clamped bullets, 1 will remove it completely. | 
| collideInAllDirections | If true, bullet rotates the direction it checks for collisions with pixels, and doesn't resolve visual overlaps (defaults to false). Used for turrets/drones/etc. | 
| collideWithPixels | |
| colorBlinkEasingType | Defaults to QuadInOut. | 
| colorBlinkStartTime | So that bullets in the same volley can have different color timing offsets. | 
| debugText | |
| debugVector | |
| depthLevel | |
| despawnAfterKeyframes | If true, bullet despawns as soon as it runs out of keyframes, regardless of its lifetime. | 
| despawnOnDeath | If true, despawn if target player dies. | 
| despawnOnPlayerHit | Defaults to true. | 
| despawnStyle | |
| despawnTime | |
| despawnWhenAllPatternsRemoved | If true, this bullet despawns when all patterns added to it through Bullet.AddPattern have despawned. Defaults to false. | 
| despawnWhenAnyPatternsRemoved | If true, this bullet despawns when any patterns added to it through Bullet.AddPattern has despawned. Defaults to false. | 
| disableBulletArchetypeGeneration | Don't try to generate a BulletArchetype class for this bullet type. | 
| dontCheckBounds | If true, don't disable this bullet based on being outside of arena. | 
| extraFrameSize | Number of extra spritesheet frames to use instead - (N+1)x(N+1) instead of 1x1. | 
| flipX | |
| flipY | |
| force | How much force it applies to pxcs it hits (also affected by pixelDamagePercent). | 
| grazeSize | |
| ignorePlayerCollision | Don't EVER collide with player - for when using bullet as visual effect, or when shot by player. | 
| impactPattern | |
| impulseFrictionPercent | How quickly the bullet slows down impulse velocity (default is 0.05). | 
| isPlayerBullet | Whether the bullet should be considered to be shot by the player. | 
| isStrictlyVisual | Can never be Affected, Repelled, Destroyed, etc. Use for background bullets or other visual effects. | 
| isUnobtainable | Used for status bullets - evaluated each frame and powerup cannot be collected while true. | 
| keyframes | |
| lifetime | |
| mass | How well the bullet resists being repelled (if unset, it defaults to 1). | 
| maxGrazeAngle | TODO: only supported by BulletArchetype bullets. | 
| minGrazeAngle | TODO: only supported by BulletArchetype bullets. | 
| noCollisionLeniency | For small bullets, don't have a smaller hitbox than visuals when colliding with player. | 
| outOfBoundsRadiusFactor | How far off camera until this bullet is removed (multiplied by out radius) (defaults to 4f). (also used for border warning range) | 
| parallaxSpeed | |
| partDamageFactor | Damage multiplier when hitting a part instead of a single pixel (default is 1). | 
| playerDamageDir | When player is hit by this bullet, which direction should force be applied to player (by default, towards player, away from bullet center). | 
| precacheTextures | (Inherited from HotloadedData<BulletData>) | 
| proximityRange | |
| proximityUnits | |
| pushStrength | Amount of force the bullet applies against a grazing player (default is 0.4). | 
| quickReflect | Reflect instantly instead of animating. | 
| reflectLimit | Number of times bullet can reflect before despawning automatically. | 
| sfxHitPixel | |
| sfxHitPlayer | |
| shapeType | |
| shouldLoop | |
| shouldOverrideStatusEffect | Decides if the current bullet should be overridden with a status effect. | 
| shouldReflect | If bullet should reflect when hitting a pixel. | 
| spriteForwardOffset | Amount the sprite is adjusted in forward direction. | 
| spriteScale | Extra scale for sprite. | 
| startFacingAngle | Start with this rotation instead of facing the current direction. | 
| startMoveAngle | Start with this move angle instead of moving in the pattern's current direction. | 
| startSpeed | |
| statusCycleTime | If this bullet has overridden statuses, this is the time to cycle between them. | 
| statusLevel | The amount of status levels to add. | 
| statusPaths | The status effects that can be used to override. | 
| stopPatternsOnDespawn | Whether anchored patterns stop when the bullet is finished. | 
| targetPlayerUpdatePeriod | |
| totalPixelDamage | The max amount of damage this bullet can deal. | 
| updateFloatVar | |
| useAbsoluteAngles | If true, don't add startAngle to keyframe angles. | 
| useLegacyDamage | Only for old replay support. | 
| useRawDeltaTime | Ignore time-scaling. | 
Handlers
| Name | Description | 
|---|---|
| onAutoUpdateTargetPlayer | |
| onDespawn | |
| onDestroyPixel | |
| onHitPart | |
| onHitPartProtected | |
| onHitPixel | |
| onHitPlayer | |
| onLifetimeFinished | |
| onOutOfBounds | |
| onProximity | |
| onRemove | |
| onStart | |
| onUpdate | 
Script Parameters
Note
These parameters are available for you to use while writing scripts inside of a resource of this type.
| Name | Description | 
|---|---|
| anchorFacingAngle | The current angle of this pattern's anchor, if any. Type: Single | 
| anchorVel | The current velocity of this pattern's anchor, if any. Type: Vector2 | 
| bullet | The current bullet being acted on. Type: Bullet | 
| bulletAngle | The start angle of the most recent bullet this pattern shot. Type: Single | 
| campaignIndex | The stage's index in the campaign. Type: Int32 | 
| corePos | The position of the pixelgroup this pattern is anchored to, if any. Type: Vector2 | 
| currentBullet | To be used in the BulletPattern.onBullet callback. Type: Bullet | 
| currentBulletEntity | Type: BulletEntity | 
| dt | In-game time since the last update (1/60s), modified by timescale. Type: Single | 
| dtRaw | In-game time since the last update (1/60s), unaffected by timescale changes. Type: Single | 
| fanNum | The index of the current bullet inside a fan subdivision. Type: Int32 | 
| hitNormal | The impact normal of this bullet. Type: Vector2 | 
| hitPart | The part that this bullet collided with. Type: PixelGroup | 
| hitPixel | The pixel that this bullet collided with. Type: PixelData | 
| hitPos | The impact position of this bullet (when it hits a pixel/part). Type: Vector2 | 
| hitUnit | The unit that this bullet collided with. Type: Unit | 
| isStatusSelected | Type: Boolean | 
| lastBulletPos | The start position of the previous bullet this pattern shot. Type: Vector2 | 
| numVolleys | The number of volleys in the parent pattern. Type: Int32 | 
| outOfBoundsNormal | The normal value of the edge where this bullet went out of bounds (eg. vec2(-1f, 0f) on the right side of the arena). Type: Vector2 | 
| outOfBoundsPos | The position that this bullet went out of bounds at. Type: Vector2 | 
| parallelNum | The index of the current bullet inside a parallel subdivision. Type: Int32 | 
| path | The path of this pattern's config data. Type: DataPath<PatternData> | 
| pattern | This pattern. Type: BulletPattern | 
| patternAngle | The angle this pattern is facing. Type: Single | 
| patternDir | The direction this pattern is facing. Type: Vector2 | 
| patternStartPos | The start position of this pattern. Type: Vector2 | 
| patternTime | The elapsed time of this pattern. Type: Single | 
| player | Currently targeted player. Type: Player | 
| players | List of all players. Type: Player[] | 
| rand | Random number generator that should be used for this bullet. Type: Rand | 
| ropeCurrLength | Type: Single | 
| ropeNumSprings | Type: Int32 | 
| ropeSpringNum | Type: Int32 | 
| ropeTotalLength | Type: Single | 
| stage | The currently playing stage. Type: GameStage | 
| stageHeight | The height of the arena. Type: Single | 
| stagePath | The location of this stage's config data. Type: String | 
| stageSize | The size of the arena. Type: Vector2 | 
| stageTime | The elapsed time for the current run. Type: Single | 
| stageWidth | The width of the arena. Type: Single | 
| startAngle | The starting angle of this bullet. Type: Single | 
| statusCharge | Type: Single | 
| statusChargePercent | Type: Single | 
| this | The current bullet being acted on. Type: Bullet | 
| volleyNum | The volley number of the parent pattern when this bullet was fired (first volley is number 0). Type: Int32 | 
| xMax | The right boundary of the arena. Type: Single | 
| xMin | The left boundary of the arena. Type: Single | 
| yMax | The upper boundary of the arena. Type: Single | 
| yMin | The lower boundary of the arena. Type: Single | 
| $version | Alias of stage.GetScriptVersion(FILE) Type: Int32 | 
| __bullet_CantBeAffected | Alias of bullet.CantBeAffected Type: Boolean | 
| __bullet_CantBeDestroyed | Alias of bullet.CantBeDestroyed Type: Boolean | 
| __bullet_CantBeIgnored | Alias of bullet.CantBeIgnored Type: Boolean | 
| __bullet_CurrDamageAvailable | Alias of bullet.CurrDamageAvailable Type: Single | 
| __bullet_DataPath | Alias of bullet.DataPath Type: DataPath<BulletData> | 
| __bullet_IgnorePlayerCollisionForKeyframe | Alias of bullet.IgnorePlayerCollisionForKeyframe Type: Boolean | 
| __bullet_PlayerCollideable | Alias of bullet.PlayerCollideable Type: Boolean | 
| __bullet_PxcCollideable | Alias of bullet.PxcCollideable Type: Boolean | 
| __bullet_SourcePlayer | Alias of bullet.SourcePlayer Type: Player | 
| averageMoveInputPercent | Alias of stage.PlayerHandler.AverageMoveInputPercent Type: Single | 
| averagePlayerPos | Alias of stage.AveragePlayerPos Type: Vector2 | 
| averagePlayerVel | Alias of stage.AveragePlayerVel Type: Vector2 | 
| averageShootInputPercent | Alias of stage.PlayerHandler.AverageShootInputPercent Type: Single | 
| bulletDataPath | Alias of bullet.DataPath Type: DataPath<BulletData> | 
| bulletFanNum | Alias of bullet.FanNum Type: Int32 | 
| bulletFrameTime | Alias of bullet.ElapsedFrameTime Type: Single | 
| bulletLastPos | Alias of bullet.LastPos Type: Vector2 | 
| bulletMass | Alias of bullet.Mass Type: Single | 
| bulletNum | Alias of bullet.BulletNum Type: Int32 | 
| bulletParallelNum | Alias of bullet.ParallelNum Type: Int32 | 
| bulletPos | Alias of bullet.Position Type: Vector2 | 
| bulletPosA | Alias of bullet.PosA Type: Vector2 | 
| bulletPosB | Alias of bullet.PosB Type: Vector2 | 
| bulletStartTime | Alias of bullet.StartTime Type: Single | 
| bulletTime | Alias of bullet.ElapsedLifetime Type: Single | 
| bulletTimeScale | Alias of bullet.TimeScale Type: Single | 
| bulletVel | Alias of bullet.Velocity Type: Vector2 | 
| childBullet | Alias of bullet.ChildBullet Type: Bullet | 
| collideWithPixels | Alias of bullet.CollideWithPixels Type: Boolean | 
| collideWithPlayer | Alias of bullet.CollideWithPlayer Type: Boolean | 
| crossDist | Alias of bullet.CrossDistance Type: Single | 
| crossWidth | Alias of bullet.CrossWidth Type: Single | 
| damageDealt | Alias of bullet.PxcDamageDealt Type: Single | 
| debugToggle | Alias of stage.MiscDebugToggle Type: Boolean | 
| difficulty | Alias of stage.Difficulty Type: Single | 
| diffInt | Alias of stage.DifficultyInt Type: Int32 | 
| dir | Alias of bullet.AliasDir Type: Vector2 | 
| facingAngle | Alias of bullet.FacingAngle Type: Single | 
| facingDir | Alias of bullet.FacingDirection Type: Vector2 | 
| facingSpeed | Alias of bullet.AliasFacingSpeed Type: Single | 
| floatVar | Alias of bullet.FloatVar Type: Single | 
| forceStrength | Alias of bullet.CurrForceStrength Type: Single | 
| hasParentBullet | Alias of pattern.HasParentBullet Type: Boolean | 
| hasParentPattern | Alias of bullet.HasParentPattern Type: Boolean | 
| intVar | Alias of bullet.IntVar Type: Int32 | 
| isAnchored | Alias of bullet.IsAnchored Type: Boolean | 
| isDespawning | Alias of bullet.IsDespawning Type: Boolean | 
| isDocked | Alias of stage.IsDocked Type: Boolean | 
| isGameOver | Alias of stage.IsGameOver Type: Boolean | 
| isPaused | Alias of stage.IsPaused Type: Boolean | 
| isPlayerBullet | Alias of bullet.IsPlayerBullet Type: Boolean | 
| isPlayerCollidingWithPixel | Alias of player.IsCollidingWithPixel Type: Boolean | 
| isPositive | Alias of bullet.IsPositive Type: Boolean | 
| isPowerup | Alias of bullet.ShouldOverrideStatus Type: Boolean | 
| isRedirected | Alias of bullet.IsRedirected Type: Boolean | 
| isStatusBullet | Alias of bullet.IsStatusVisualBullet Type: Boolean | 
| isSwitch | Alias of stage.IsSwitch Type: Boolean | 
| keyNum | Alias of bullet.AliasKeyNum Type: Int32 | 
| keyProgress | Alias of bullet.AliasKeyProgress Type: Single | 
| lastVolleyTime | Alias of pattern.LastVolleyShootTime Type: Single | 
| length | Alias of bullet.Length Type: Single | 
| level | Alias of bullet.Level Type: Int32 | 
| lifetimeProgress | Alias of bullet.AliasLifetimeProgress Type: Single | 
| loopNum | Alias of bullet.LoopNum Type: Int32 | 
| maxPlayerInvulnPercent | Alias of stage.MaxPlayerInvulnPercent Type: Single | 
| moveAngle | Alias of bullet.AliasMoveAngle Type: Single | 
| moveMode | Alias of bullet.MoveMode Type: BulletMoveMode | 
| nspc | Alias of bullet.NumShotPatternsConstant Type: Int32 | 
| numAlivePlayers | Alias of stage.AlivePlayerCount Type: Int32 | 
| numBullets | Alias of bullet.NumBullets Type: Int32 | 
| numChildBullets | Alias of pattern.NumChildBullets Type: Int32 | 
| numKeyLoops | Alias of bullet.AliasNumKeyLoops Type: Int32 | 
| numPlayers | Alias of stage.PlayerCount Type: Int32 | 
| numShotPatterns | Alias of stage.NumShotPatterns Type: Int32 | 
| numShotPatternsConstant | Alias of bullet.NumShotPatternsConstant Type: Int32 | 
| numSpawnedPatterns | Alias of stage.NumSpawnedPatterns Type: Int32 | 
| numSpawnedPatternsConstant | Alias of pattern.NumSpawnedPatternsConstant Type: Int32 | 
| numUnits | Alias of stage.UnitHandler.NumActiveUnits Type: Int32 | 
| opacity | Alias of bullet.AliasOpacity Type: Single | 
| parentBullet | Alias of bullet.ParentBullet Type: Bullet | 
| parentPattern | Alias of bullet.ParentPattern Type: BulletPattern | 
| patternNum | Alias of bullet.PatternNum Type: Int32 | 
| patternPos | Alias of bullet.AliasPatternPos Type: Vector2 | 
| patternProgress | Alias of pattern.PatternProgress Type: Single | 
| patternStartTime | Alias of pattern.StartTime Type: Single | 
| PI | Alias of 3.141593 Type: Single | 
| playerAimAngle | Alias of player.Input.AimAngle Type: Single | 
| playerAimDir | Alias of player.Input.AimDirection Type: Vector2 | 
| playerAimInputPercent | Alias of player.Input.AimInputPercent Type: Single | 
| playerAimVector | Alias of player.Input.AimVector Type: Vector2 | 
| playerBodyColorA | Alias of player.Body.BodyColorA Type: Color | 
| playerBodyColorB | Alias of player.Body.BodyColorB Type: Color | 
| playerBodyColorC | Alias of player.Body.BodyColorC Type: Color | 
| playerBodyOpacity | Alias of player.Body.BodyOpacity Type: Single | 
| playerBodySize | Alias of player.Body.Size Type: Vector2 | 
| playerBodyWidthMods | Alias of player.Body.WidthMods Type: Vector2 | 
| playerBoostPercent | Alias of player.BoostPercent Type: Single | 
| playerBrakeInputPercent | Alias of player.Input.BrakeInputPercent Type: Single | 
| playerBrakePercent | Alias of player.Body.BrakePercent Type: Single | 
| playerDamageBonus | Alias of player.DamageBonus Type: Single | 
| playerDeathPercent | Alias of player.DeathPercent Type: Single | 
| playerFacingAngle | Alias of player.Body.FacingAngle Type: Single | 
| playerFacingDir | Alias of player.Body.FacingDirection Type: Vector2 | 
| playerGrazePercent | Alias of player.Health.GrazePercent Type: Single | 
| playerGrazePos | Alias of player.Health.GrazePos Type: Vector2 | 
| playerGunAngle | Alias of player.GunHandler.AimAngle Type: Single | 
| playerGunDir | Alias of player.GunHandler.AimDirection Type: Vector2 | 
| playerGunPos | Alias of player.GunHandler.Position Type: Vector2 | 
| playerGunSize | Alias of player.GunHandler.Size Type: Vector2 | 
| playerGunWidthMods | Alias of player.GunHandler.WidthMods Type: Vector2 | 
| playerIgnoreBulletDamage | Alias of player.IgnoreBulletDamage Type: Boolean | 
| playerIgnoreLaserDamage | Alias of player.IgnoreLaserDamage Type: Boolean | 
| playerInvulnPercent | Alias of player.Health.InvulnPercent Type: Single | 
| playerIsDead | Alias of player.IsDead Type: Boolean | 
| playerIsDying | Alias of player.IsDying Type: Boolean | 
| playerIsIntangible | Alias of player.IsIntangible Type: Boolean | 
| playerIsInvuln | Alias of player.Health.IsInvulnerable Type: Boolean | 
| playerLastHitBullet | Alias of player.Health.BulletDamageSource Type: DataPath<BulletData> | 
| playerLastHitSourceIsBullet | Alias of player.Health.PlayerLastDamageSourceIsBullet Type: Boolean | 
| playerLastHitUnit | Alias of player.Health.UnitDamageSource Type: DataPath<UnitData> | 
| playerLastPos | Alias of player.Movement.LastPos Type: Vector2 | 
| playerLastStatusActivated | Alias of player.StatusEffectHandler.LastStatusActivatedPath Type: DataPath<StatusEffectData> | 
| playerLastStatusLevelChangedAmount | Alias of player.StatusEffectHandler.LastStatusLevelChangedAmount Type: Int32 | 
| playerLastStatusLevelChangedPath | Alias of player.StatusEffectHandler.LastStatusLevelChangedPath Type: DataPath<StatusEffectData> | 
| playerMoveDelta | Alias of player.Movement.MoveDelta Type: Vector2 | 
| playerMoveInputPercent | Alias of player.Input.MoveInputPercent Type: Single | 
| playerMoveVector | Alias of player.Input.MoveVector Type: Vector2 | 
| playerNumTimesPreventedDeath | Alias of player.Health.NumTimesPreventedDeath Type: Int32 | 
| playerPixelLastCollisionTime | Alias of player.LastPixelCollisionTime Type: Single | 
| playerPos | Alias of player.Movement.Position Type: Vector2 | 
| playerRecoilPercent | Alias of player.GunHandler.MaxRecoilPercent Type: Single | 
| playerSelectedStatusPath | Alias of player.StatusEffectHandler.SelectedStatusPath Type: DataPath<StatusEffectData> | 
| playerShootInputPercent | Alias of player.Input.ShootInputPercent Type: Single | 
| playerVel | Alias of player.Movement.Velocity Type: Vector2 | 
| playerVelPercent | Alias of player.Movement.VelocityPercent Type: Single | 
| pn | Alias of bullet.PatternNum Type: Int32 | 
| pp | Alias of pattern.PatternProgress Type: Single | 
| radius | Alias of bullet.Radius Type: Single | 
| rawStageTime | Alias of stage.RawFixedElapsedTime Type: Single | 
| rectSize | Alias of bullet.RectSize Type: Vector2 | 
| rectWidthMods | Alias of bullet.RectWidthMods Type: Vector2 | 
| remoteControlPos | Alias of bullet.AliasRemoteControlPos Type: Vector2 | 
| rotationSpeed | Alias of bullet.AliasRotationSpeed Type: Single | 
| sizeMultiplier | Alias of bullet.AliasSizeMultiplier Type: Single | 
| song | Alias of stage.SongHandler.Song Type: Song | 
| sourcePlayer | Alias of bullet.SourcePlayer Type: Player | 
| spawnPos | Alias of bullet.SpawnPos Type: Vector2 | 
| stageBaseBgColor | Alias of stage.BaseBgColor Type: Color | 
| stageBgColor | Alias of stage.BgColor Type: Color | 
| stageBounds | Alias of stage.Bounds Type: Rect | 
| stageCenter | Alias of stage.BoundsCenter Type: Vector2 | 
| stageProgress | Alias of stage.ScoringHandler.Progress Type: Single | 
| stageState | Alias of stage.BehaviourHandler.CurrentState Type: String | 
| statusLevel | Alias of bullet.StatusLevel Type: Int32 | 
| timeScale | Alias of stage.TimeScaleHandler.CurrentTimeScale Type: Single | 
| timeSinceVolley | Alias of pattern.TimeSinceLastVolley Type: Single | 
| totalDamage | Alias of bullet.TotalPxcDamage Type: Single | 
| vectorVar | Alias of bullet.VectorVar Type: Vector2 |