HytaleDocs

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:

KeyType
any StringArray 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:

KeyTypeDescription
TypeConstant value: GroundFollow

This field controls the type, it must be set to the constant value "GroundFollow" to function as this type.

DensityNumber defaults to: 700.0
GravityNumber defaults to: 0.0
BouncinessNumber defaults to: 0.0
BounceLimitNumber defaults to: 0.4
BounceCountInteger defaults to: -1
SticksVerticallyBoolean defaults to: false
ComputeYawBoolean defaults to: true
ComputePitchBoolean defaults to: true
RotationMode(Nullable) Any one of the following String (defaults to VelocityDamped):
RotationMode
NameDescription
"None"
"Velocity"
"VelocityDamped"
"VelocityRoll"
MoveOutOfSolidSpeedNumber defaults to: 0.0
TerminalVelocityAirNumber defaults to: 1.0
DensityAirNumber defaults to: 1.2
TerminalVelocityWaterNumber defaults to: 1.0
DensityWaterNumber defaults to: 998.0
HitWaterImpulseLossNumber defaults to: 0.2
RotationForceNumber defaults to: 3.0
SpeedRotationFactor(Nullable) Either Number defaults to: 2.0 or String that matches the pattern: ^(-?Infinity|NaN)$
SwimmingDampingFactorNumber defaults to: 1.0
AllowRollingBoolean defaults to: false
RollingFrictionFactorNumber defaults to: 0.99
RollingSpeed(Nullable) Either Number defaults to: 0.10000000149011612 or String that matches the pattern: ^(-?Infinity|NaN)$
MaxClimbInteger defaults to: 1

How many blocks up the projectile can step in one move. A taller wall ends its course.

MaxDropInteger 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:

KeyTypeDescription
TypeConstant value: Standard

This field controls the type, it must be set to the constant value "Standard" to function as this type.

DensityNumber defaults to: 700.0
GravityNumber defaults to: 0.0
BouncinessNumber defaults to: 0.0
BounceLimitNumber defaults to: 0.4
BounceCountInteger defaults to: -1
SticksVerticallyBoolean defaults to: false
ComputeYawBoolean defaults to: true
ComputePitchBoolean defaults to: true
RotationMode(Nullable) Any one of the following String (defaults to VelocityDamped):
RotationMode
NameDescription
"None"
"Velocity"
"VelocityDamped"
"VelocityRoll"
MoveOutOfSolidSpeedNumber defaults to: 0.0
TerminalVelocityAirNumber defaults to: 1.0
DensityAirNumber defaults to: 1.2
TerminalVelocityWaterNumber defaults to: 1.0
DensityWaterNumber defaults to: 998.0
HitWaterImpulseLossNumber defaults to: 0.2
RotationForceNumber defaults to: 3.0
SpeedRotationFactor(Nullable) Either Number defaults to: 2.0 or String that matches the pattern: ^(-?Infinity|NaN)$
SwimmingDampingFactorNumber defaults to: 1.0
AllowRollingBoolean defaults to: false
RollingFrictionFactorNumber 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:

KeyTypeDescription
WidthNumber

The size of the hit shape across the travel direction.

DepthNumber

The size of the hit shape along the travel direction.

SpawnOffset

Type information:

Vector3f with the following properties:

KeyTypeDescription
XEither Number defaults to: 0.0 or String that matches the pattern: ^(-?Infinity|NaN)$
YEither Number defaults to: 0.0 or String that matches the pattern: ^(-?Infinity|NaN)$
ZEither Number defaults to: 0.0 or String that matches the pattern: ^(-?Infinity|NaN)$

SpawnRotationOffset

Type information:

Direction with the following properties:

KeyTypeDescription
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:

KeyTypeDescription
PrimaryEither String or RootInteraction

Reference to a RootInteraction asset

SecondaryEither String or RootInteraction

Reference to a RootInteraction asset

Ability1Either String or RootInteraction

Reference to a RootInteraction asset

Ability2Either String or RootInteraction

Reference to a RootInteraction asset

Ability3Either String or RootInteraction

Reference to a RootInteraction asset

Ability4Either String or RootInteraction

Reference to a RootInteraction asset

UseEither String or RootInteraction

Reference to a RootInteraction asset

PickEither String or RootInteraction

Reference to a RootInteraction asset

PickupEither String or RootInteraction

Reference to a RootInteraction asset

CollisionEnterEither String or RootInteraction

Reference to a RootInteraction asset

CollisionLeaveEither String or RootInteraction

Reference to a RootInteraction asset

CollisionEither String or RootInteraction

Reference to a RootInteraction asset

EntityStatEffectEither String or RootInteraction

Reference to a RootInteraction asset

SwapToEither String or RootInteraction

Reference to a RootInteraction asset

SwapFromEither String or RootInteraction

Reference to a RootInteraction asset

DeathEither String or RootInteraction

Reference to a RootInteraction asset

WieldingEither String or RootInteraction

Reference to a RootInteraction asset

ProjectileSpawnEither String or RootInteraction

Reference to a RootInteraction asset

ProjectileHitEither String or RootInteraction

Reference to a RootInteraction asset

ProjectileMissEither String or RootInteraction

Reference to a RootInteraction asset

ProjectileBounceEither String or RootInteraction

Reference to a RootInteraction asset

HeldEither String or RootInteraction

Reference to a RootInteraction asset

HeldOffhandEither String or RootInteraction

Reference to a RootInteraction asset

EquippedEither String or RootInteraction

Reference to a RootInteraction asset

DodgeEither String or RootInteraction

Reference to a RootInteraction asset

GameModeSwapEither String or RootInteraction

Reference to a RootInteraction asset

OnBreakEither String or RootInteraction

Reference to a RootInteraction asset

OnBreakImpactEither String or RootInteraction

Reference to a RootInteraction asset

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

On this page