ProjectileConfigs
Asset path: Server/ProjectileConfigs/*.json
Parent
When set this asset will inherit properties from the named asset.
When inheriting from another ProjectileConfig most properties will simply be copied from the parent asset to this asset. In the case where both child and parent provide a field the child field will simply replace the value provided by the parent, in the case of nested structures this will apply to the fields within the structure. In some cases the field may decide to act differently, for example: by merging the parent and child fields together.
Type information: String
Tags
Tags are a general way to describe an asset that can be interpreted by other systems in a way they see fit.
For example you could tag something with a Material tag with the values Solid and Stone, And another single tag Ore.
Tags will be expanded into a single list of tags automatically. Using the above example with Material and Ore the end result would be the following list of tags: Ore, Material, Solid, Stone, Material=Solid and Material=Stone.
Type information:
(Nullable) Map of the following:
| Key | Type |
|---|---|
any String | Array of String |
Physics
Type information:
(Nullable) Either Standard physics plus terrain following: the projectile snaps to the ground ahead, climbing up to MaxClimb and dropping up to MaxDrop blocks. A taller wall or deeper cliff ends its course (the miss chain runs there).
GroundFollowPhysicsConfig with the following properties:
| Key | Type | Description | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Type | Constant value: GroundFollow | This field controls the type, it must be set to the constant value "GroundFollow" to function as this type. | ||||||||||
| Density | Number defaults to: 700.0 | |||||||||||
| Gravity | Number defaults to: 0.0 | |||||||||||
| Bounciness | Number defaults to: 0.0 | |||||||||||
| BounceLimit | Number defaults to: 0.4 | |||||||||||
| BounceCount | Integer defaults to: -1 | |||||||||||
| SticksVertically | Boolean defaults to: false | |||||||||||
| ComputeYaw | Boolean defaults to: true | |||||||||||
| ComputePitch | Boolean defaults to: true | |||||||||||
| RotationMode | (Nullable) Any one of the following String (defaults to VelocityDamped):
RotationMode
| |||||||||||
| MoveOutOfSolidSpeed | Number defaults to: 0.0 | |||||||||||
| TerminalVelocityAir | Number defaults to: 1.0 | |||||||||||
| DensityAir | Number defaults to: 1.2 | |||||||||||
| TerminalVelocityWater | Number defaults to: 1.0 | |||||||||||
| DensityWater | Number defaults to: 998.0 | |||||||||||
| HitWaterImpulseLoss | Number defaults to: 0.2 | |||||||||||
| RotationForce | Number defaults to: 3.0 | |||||||||||
| SpeedRotationFactor | (Nullable) Either Number defaults to: 2.0 or String that matches the pattern: ^(-?Infinity|NaN)$ | |||||||||||
| SwimmingDampingFactor | Number defaults to: 1.0 | |||||||||||
| AllowRolling | Boolean defaults to: false | |||||||||||
| RollingFrictionFactor | Number defaults to: 0.99 | |||||||||||
| RollingSpeed | (Nullable) Either Number defaults to: 0.10000000149011612 or String that matches the pattern: ^(-?Infinity|NaN)$ | |||||||||||
| MaxClimb | Integer defaults to: 1 | How many blocks up the projectile can step in one move. A taller wall ends its course. | ||||||||||
| MaxDrop | Integer defaults to: 1 | How many blocks down the projectile can drop in one move. A deeper cliff ends its course. |
or
StandardPhysicsConfig with the following properties:
| Key | Type | Description | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Type | Constant value: Standard | This field controls the type, it must be set to the constant value "Standard" to function as this type. | ||||||||||
| Density | Number defaults to: 700.0 | |||||||||||
| Gravity | Number defaults to: 0.0 | |||||||||||
| Bounciness | Number defaults to: 0.0 | |||||||||||
| BounceLimit | Number defaults to: 0.4 | |||||||||||
| BounceCount | Integer defaults to: -1 | |||||||||||
| SticksVertically | Boolean defaults to: false | |||||||||||
| ComputeYaw | Boolean defaults to: true | |||||||||||
| ComputePitch | Boolean defaults to: true | |||||||||||
| RotationMode | (Nullable) Any one of the following String (defaults to VelocityDamped):
RotationMode
| |||||||||||
| MoveOutOfSolidSpeed | Number defaults to: 0.0 | |||||||||||
| TerminalVelocityAir | Number defaults to: 1.0 | |||||||||||
| DensityAir | Number defaults to: 1.2 | |||||||||||
| TerminalVelocityWater | Number defaults to: 1.0 | |||||||||||
| DensityWater | Number defaults to: 998.0 | |||||||||||
| HitWaterImpulseLoss | Number defaults to: 0.2 | |||||||||||
| RotationForce | Number defaults to: 3.0 | |||||||||||
| SpeedRotationFactor | (Nullable) Either Number defaults to: 2.0 or String that matches the pattern: ^(-?Infinity|NaN)$ | |||||||||||
| SwimmingDampingFactor | Number defaults to: 1.0 | |||||||||||
| AllowRolling | Boolean defaults to: false | |||||||||||
| RollingFrictionFactor | Number defaults to: 0.99 | |||||||||||
| RollingSpeed | (Nullable) Either Number defaults to: 0.10000000149011612 or String that matches the pattern: ^(-?Infinity|NaN)$ |
Model
Type information: String
Reference to a ModelAsset asset
UseModelScale
Whether the projectile's scale is derived from the model asset's MinScale/MaxScale range. When false (the default), the projectile always spawns at scale 1.0 regardless of the model's configured range.
Type information: Boolean defaults to: false
LaunchForce
Type information: Number defaults to: 1.0
DirectionalHitBox
Piercing projectiles only: a hit shape that rotates with the travel direction. Entity contacts outside it do not count. The model HitBox never rotates, so author it square and large enough to contain this shape in every direction.
Type information:
(Nullable) The hit shape of a piercing projectile, rotated with its travel direction. Author the model HitBox square and large enough to contain this shape in every direction; it stays the axis-aligned first pass. Horizontal only: the model HitBox bounds the vertical.
DirectionalHitBoxConfig with the following properties:
| Key | Type | Description |
|---|---|---|
| Width | Number | The size of the hit shape across the travel direction. |
| Depth | Number | The size of the hit shape along the travel direction. |
SpawnOffset
Type information:
Vector3f with the following properties:
| Key | Type | Description |
|---|---|---|
| X | Either Number defaults to: 0.0 or String that matches the pattern: ^(-?Infinity|NaN)$ | |
| Y | Either Number defaults to: 0.0 or String that matches the pattern: ^(-?Infinity|NaN)$ | |
| Z | Either Number defaults to: 0.0 or String that matches the pattern: ^(-?Infinity|NaN)$ |
SpawnRotationOffset
Type information:
Direction with the following properties:
| Key | Type | Description |
|---|---|---|
| Yaw | (Nullable) Either Number defaults to: 0.0 or String that matches the pattern: ^(-?Infinity|NaN)$ | |
| Pitch | (Nullable) Either Number defaults to: 0.0 or String that matches the pattern: ^(-?Infinity|NaN)$ | |
| Roll | (Nullable) Either Number defaults to: 0.0 or String that matches the pattern: ^(-?Infinity|NaN)$ |
RotateSpawnOffsetByPitch
Whether SpawnOffset should be rotated by the entity's pitch.
Type information: Boolean defaults to: true
RotateSpawnOffsetByYaw
Whether SpawnOffset should be rotated by the entity's yaw.
Type information: Boolean defaults to: true
Interactions
Type information:
Map of the following:
| Key | Type | Description |
|---|---|---|
| Primary | Either String or RootInteraction | |
| Secondary | Either String or RootInteraction | |
| Ability1 | Either String or RootInteraction | |
| Ability2 | Either String or RootInteraction | |
| Ability3 | Either String or RootInteraction | |
| Ability4 | Either String or RootInteraction | |
| Use | Either String or RootInteraction | |
| Pick | Either String or RootInteraction | |
| Pickup | Either String or RootInteraction | |
| CollisionEnter | Either String or RootInteraction | |
| CollisionLeave | Either String or RootInteraction | |
| Collision | Either String or RootInteraction | |
| EntityStatEffect | Either String or RootInteraction | |
| SwapTo | Either String or RootInteraction | |
| SwapFrom | Either String or RootInteraction | |
| Death | Either String or RootInteraction | |
| Wielding | Either String or RootInteraction | |
| ProjectileSpawn | Either String or RootInteraction | |
| ProjectileHit | Either String or RootInteraction | |
| ProjectileMiss | Either String or RootInteraction | |
| ProjectileBounce | Either String or RootInteraction | |
| Held | Either String or RootInteraction | |
| HeldOffhand | Either String or RootInteraction | |
| Equipped | Either String or RootInteraction | |
| Dodge | Either String or RootInteraction | |
| GameModeSwap | Either String or RootInteraction | |
| OnBreak | Either String or RootInteraction | |
| OnBreakImpact | Either String or RootInteraction |
LaunchLocalSoundEventId
The sound event played to the throwing player when the projectile is spawned/launched
Type information: (Nullable) String
LaunchWorldSoundEventId
The positioned sound event played to surrounding players when the projectile is spawned/launched
Type information: (Nullable) String
ProjectileSoundEventId
The looping sound event to attach to the projectile.
Type information: (Nullable) String
