enum class ProjectileBehaviorFlag_t : uint32
{
    // MPropertySuppressEnumerator
    PBF_None = 0,
    // MPropertyFriendlyName = Bounce off walls
    PBF_BounceOffWall = 1, // (1 << 0)
    // MPropertyFriendlyName = Stick to valid targets
    PBF_StickToTarget = 2, // (1 << 1)
    // MPropertyFriendlyName = Stick to world
    PBF_StickToWorld = 4, // (1 << 2)
    // MPropertyFriendlyName = Don't turn towards velocity
    PBF_NotTurnTowardVelocity = 8, // (1 << 3)
    // MPropertyFriendlyName = Detonate on hit valid target
    PBF_DetonateOnHitTarget = 16, // (1 << 4)
    // MPropertyFriendlyName = Detonate on hit world
    PBF_DetonateOnHitWorld = 32, // (1 << 5)
    // MPropertyFriendlyName = Detonate on hit ignore arming time
    PBF_DetonateOnHitIgnoreArmingTime = 64, // (1 << 6)
    // MPropertyFriendlyName = Start detonate time on hit target
    PBF_StartDetonateTimeOnHitTarget = 128, // (1 << 7)
    // MPropertyFriendlyName = Start detonate time on hit world
    PBF_StartDetonateTimeOnHitWorld = 256, // (1 << 8)
    // MPropertyFriendlyName = Disable touch on hit
    PBF_DisableTouchOnHit = 512, // (1 << 9)
    // MPropertyFriendlyName = Don't remove on touching tracked target
    // MPropertyDescription = When set, tracked projectiles won't get removed automatically when touchign their target.  ***YOU MUST MANUALLY REMOVE THEM***
    PBF_DisableRemoveOnTouchTrackedTarget = 1024, // (1 << 10)
    // MPropertyFriendlyName = Disable trigger projectile impact behavior
    PBF_DisableTriggerProjectileImpactBehavior = 2048, // (1 << 11)
    // MPropertyFriendlyName = Detonate on lifetime expire
    PBF_DetonateOnLifetimeExpire = 4096, // (1 << 12)
    // MPropertyFriendlyName = Validate Target Line of Sight
    // MPropertyDescription = When set, validates the projectile can 'see' the target. Mitigates trigger volumes from hitting targets that are behind cover from the attack position
    PBF_ValidateTargetLineOfSight = 8192, // (1 << 13)
    // MPropertyFriendlyName = Allow Hit On Non-Tracked Targets
    // MPropertyDescription = When set, tracked projectiles can hit non-tracked targets, allowing people to intercept.
    PBF_AllowHitOnNonTrackedTargets = 16384, // (1 << 14)
    // MPropertyFriendlyName = Projectile only interacts / touches world
    // MPropertyDescription = When set, projectile will not touch anything but the world
    PBF_OnlyTouchWorld = 32768, // (1 << 15)
    // MPropertyDescription = When set, tracked projectiles won't have their lifetime set to 2seconds upon IsDoneTracking().  ***YOU MUST MANUALLY REMOVE THEM***
    PBF_DisableRemoveOnDoneTracking = 65536, // (1 << 16)
    // MPropertyFriendlyName = Disable passing through portals
    // MPropertyDescription = When set, this projectile will not travel through portals and will never recive a OnPortalled() call, because it can't
    PBF_DontTravelThroughPortals = 131072, // (1 << 17)
    // MPropertyFriendlyName = Switch to position tracking if target dies.
    // MPropertyDescription = When set, this projectile will track to the last known good location of the target, if the target dies, instead of getting removed.
    PBF_LocationTrackingOnTargetDeath = 262144, // (1 << 18)
    // MPropertyFriendlyName = Projetile should hit when near position
    // MPropertyDescription = When set, this projectile will fire an on hit event when reaching a tracked position. Useful if your position isn't going to hit the ground.
    PBF_DetonateWhenReachingTrackedPosition = 524288, // (1 << 19)
};