Utility Abilities

Utility abilities handle phase transitions, summoning, respawning, UI elements, and atmospheric effects for bosses. Each ability is configured as a behavior entry in the entity JSON with a code and attributes object.

💡 Most abilities use a stages array, allowing different configurations at different health thresholds. The boss activates the first stage whose whenHealthRelBelow condition is met.

Common Properties

These properties are shared by most boss abilities and can be included in any stage configuration:

PropertyTypeDescription
whenHealthRelBelowfloatHealth fraction threshold (0.0—1.0) to activate this stage
cooldownSecondsfloatCooldown between ability uses
windupMsintWindup delay in milliseconds before ability executes
animationstringAnimation to play during ability
soundstringSound asset path (without sounds/ prefix)
soundRangefloatSound audible range (default: 24)
soundStartMsintDelay before sound plays
soundVolumefloatSound volume multiplier (default: 1.0)
loopSoundstringLooping sound during ability
loopSoundIntervalMsintInterval for loop sound (default: 900ms)

bossrebirth2

EntityBehaviorBossRebirth2 — Boss transforms into another entity upon death.

PropertyTypeDefaultDescription
nextEntityCodestringnullEntity code to transform into
isFinalStageboolfalseIs this the final phase?
spawnDelayMsint2000Delay before spawning next form
spawnLightningbooltrueSpawn lightning effect
soundstringnullSound on death
soundRangefloat24Sound range
soundStartMsint0Sound delay
spawnSoundstringnullSound on spawn
spawnSoundRangefloat24Spawn sound range
spawnSoundStartMsint0Spawn sound delay
loopSoundstringnullLooping sound during transition
loopSoundRangefloat24Loop sound range
loopSoundIntervalMsint900Loop sound interval
{
  "code": "bossrebirth2",
  "attributes": {
    "nextEntityCode": "boss_phase2",
    "isFinalStage": false,
    "spawnDelayMs": 3000,
    "spawnLightning": true,
    "sound": "game:entity/bell-idle"
  }
}

bossformswap

EntityBehaviorBossFormSwap — Boss swaps into a different entity form.

PropertyTypeDefaultDescription
whenHealthRelBelowfloat1.0Health threshold
alternateEntityCodestringnullEntity code to swap to
swapChancefloat1.0Chance to swap (0—1)
keepHealthFractionbooltruePreserve health percentage
{
  "code": "bossformswap",
  "attributes": {
    "whenHealthRelBelow": 0.5,
    "alternateEntityCode": "boss_enraged",
    "swapChance": 1.0,
    "keepHealthFraction": true
  }
}

bossformswaplist

EntityBehaviorBossFormSwapList — Boss swaps into one of several predefined forms from stages.

PropertyTypeDefaultDescription
whenHealthRelBelowfloat1.0Health threshold
entityCodestringnullEntity code for this stage
keepHealthFractionbooltruePreserve health percentage
{
  "code": "bossformswaplist",
  "attributes": {
    "stages": [
      { "whenHealthRelBelow": 0.7, "entityCode": "boss_form_fire", "keepHealthFraction": true },
      { "whenHealthRelBelow": 0.4, "entityCode": "boss_form_ice", "keepHealthFraction": true }
    ]
  }
}

bossintermissiondispel

EntityBehaviorBossIntermissionDispel — Boss enters an intermission phase: takes reduced damage, freezes, and spawns adds and dispel objects.

PropertyTypeDefaultDescription
whenHealthRelBelowfloat1.0Health threshold
intermissionMaxMsint10000Max intermission duration
freezeBossbooltrueBoss is immobile
lockYawboolfalseLock boss rotation
incomingDamageMultiplierfloat0Incoming damage multiplier (0 = invulnerable)
addsarray[]Spawned adds configurations
dispelEntityCodestringnullEntity code for dispel objects
dispelCountint1Number of dispel objects to spawn
{
  "code": "bossintermissiondispel",
  "attributes": {
    "whenHealthRelBelow": 0.5,
    "intermissionMaxMs": 15000,
    "freezeBoss": true,
    "incomingDamageMultiplier": 0,
    "dispelEntityCode": "dispel_crystal",
    "dispelCount": 3,
    "adds": [
      { "entityCode": "game:drifter-normal", "count": 4 }
    ]
  }
}

bossplayerclone

EntityBehaviorBossPlayerClone — Boss creates clones of nearby players.

PropertyTypeDefaultDescription
whenHealthRelBelowfloat1.0Health threshold
cloneEntityCodestringnullClone entity code
cloneRangefloat20Range to detect players for cloning
{
  "code": "bossplayerclone",
  "attributes": {
    "whenHealthRelBelow": 0.4,
    "cloneEntityCode": "player_clone",
    "cloneRange": 25
  }
}

bossrespawn

EntityBehaviorBossRespawn — Boss corpse remains and respawns into a new entity after a set time.

PropertyTypeDefaultDescription
respawnInGameHoursdouble24Time before respawn (in-game hours)
spawnNewBossboolfalseSpawn new boss or just despawn corpse
respawnEntityCodestringnullEntity code for respawn
{
  "code": "bossrespawn",
  "attributes": {
    "respawnInGameHours": 48,
    "spawnNewBoss": true,
    "respawnEntityCode": "boss_revived"
  }
}

bossmodelswap

EntityBehaviorBossModelSwap — Boss temporarily changes its visual model. Uses stages with a forms array.

PropertyTypeDefaultDescription
whenHealthRelBelowfloat1.0Health threshold
cooldownSecondsfloat0Cooldown
swapSoundstring"albase:dark-magic-charge-up"Sound on swap
soundRangefloat32Sound range
formsarray[]List of possible forms

Forms item properties:

PropertyTypeDefaultDescription
shapestring—Shape path
texturestring—Texture path
durationMsint15000Duration of this form
{
  "code": "bossmodelswap",
  "attributes": {
    "stages": [
      {
"whenHealthRelBelow": 0.6,
"cooldownSeconds": 30,
"swapSound": "albase:dark-magic-charge-up",
"forms": [
  { "shape": "entity/boss_shadow", "texture": "entity/boss_shadow", "durationMs": 12000 },
  { "shape": "entity/boss_flame", "texture": "entity/boss_flame", "durationMs": 10000 }
]
      }
    ]
  }
}

bosssummonritual

EntityBehaviorBossSummonRitual — Boss performs a ritual to summon minions.

PropertyTypeDefaultDescription
whenHealthRelBelowfloat1.0Health threshold
entityCodestringnullEntity to summon
minCountint1Minimum summons
maxCountint1Maximum summons
maxNearbyint0Max nearby before stopping
nearbyRangefloat0Range to check for nearby
ritualMsint4000Ritual duration
spawnRangefloat6Spawn range from boss
cooldownSecondsfloat0Cooldown
healPerSecondfloat0Heal during ritual
healRelPerSecondfloat0Relative heal per second
circleRadiusfloat0Circle movement radius
circleMoveSpeedfloat0Circle movement speed
spawnsarray[]Multiple entity types to spawn

Spawns item properties: entityCode, minCount, maxCount, chance, spawnDelayMs

{
  "code": "bosssummonritual",
  "attributes": {
    "stages": [
      {
"whenHealthRelBelow": 0.7,
"cooldownSeconds": 30,
"ritualMs": 5000,
"spawnRange": 8,
"maxNearby": 6,
"nearbyRange": 20,
"spawns": [
  { "entityCode": "game:drifter-normal", "minCount": 2, "maxCount": 4 },
  { "entityCode": "game:drifter-bow", "minCount": 1, "maxCount": 2 }
],
"sound": "game:effect/intromusic"
      }
    ]
  }
}

bosscloning

EntityBehaviorBossCloning — Boss creates permanent clones of itself.

PropertyTypeDefaultDescription
whenHealthRelBelowfloat1.0Health threshold
cloneCountint2Number of clones
spawnRangefloat8Spawn radius
cloneDamageMultfloat1.0Clone damage multiplier
cloneWalkSpeedMultfloat1.0Clone walk speed multiplier
cloneInvulnerableboolfalseClones are invulnerable
cloneFollowOwnerboolfalseClones follow owner
{
  "code": "bosscloning",
  "attributes": {
    "whenHealthRelBelow": 0.6,
    "cloneCount": 3,
    "spawnRange": 10,
    "cloneDamageMult": 0.5,
    "cloneWalkSpeedMult": 1.2,
    "cloneFollowOwner": true
  }
}

bossperiodicspawn

EntityBehaviorBossPeriodicSpawn — Boss periodically spawns entities at intervals.

PropertyTypeDefaultDescription
whenHealthRelBelowfloat1.0Health threshold
entityCodestringnullEntity code to spawn
minCountint1Min per spawn
maxCountint1Max per spawn
chancefloat1.0Spawn chance (0—1)
maxNearbyint5Max nearby entities
spawnRangefloat8Spawn radius
requireHasTargetboolfalseOnly spawn if boss has a target
{
  "code": "bossperiodicspawn",
  "attributes": {
    "whenHealthRelBelow": 1.0,
    "entityCode": "game:drifter-normal",
    "minCount": 1,
    "maxCount": 3,
    "chance": 0.8,
    "maxNearby": 8,
    "spawnRange": 10,
    "requireHasTarget": true
  }
}

bossanticheese

EntityBehaviorBossAntiCheese — Prevents players from cheesing the boss by teleporting to them when they exploit terrain or distance.

PropertyTypeDefaultDescription
whenHealthRelBelowfloat1.0Health threshold
checkIntervalMsint250Check interval
cooldownSecondsfloat12Cooldown between teleports
searchRangefloat40Search range for players
farRangefloat18Distance considered "far"
farSecondsfloat2.5Seconds before teleport when far
noLosSecondsfloat2.0Seconds before teleport when no line of sight
minRadiusfloat3Min teleport radius
maxRadiusfloat7Max teleport radius
triesint10Tries to find valid position
requireSolidGroundbooltrueRequire solid ground
{
  "code": "bossanticheese",
  "attributes": {
    "whenHealthRelBelow": 1.0,
    "cooldownSeconds": 10,
    "searchRange": 50,
    "farRange": 20,
    "farSeconds": 3.0,
    "noLosSeconds": 2.5,
    "minRadius": 2,
    "maxRadius": 5
  }
}

bosshastargetsync

EntityBehaviorBossHasTargetSync — Syncs the "has target" state to clients for visual effects. No configurable properties.

{
  "code": "bosshastargetsync"
}

bosshealthbaroverride

EntityBehaviorBossHealthbarOverride — Overrides the boss healthbar display.

PropertyTypeDefaultDescription
showHealthbarbooltrueShow healthbar
displayNamestringnullCustom display name
{
  "code": "bosshealthbaroverride",
  "attributes": {
    "showHealthbar": true,
    "displayName": "Ancient Guardian"
  }
}

bosshuntcombatmarker

EntityBehaviorBossHuntCombatMarker — Marks boss as part of the Boss Hunt system. Tracks attackers and damage. No configurable properties.

{
  "code": "bosshuntcombatmarker"
}

bossmusiccontroller

EntityBehaviorBossMusicController — Plays custom music during boss fight.

PropertyTypeDefaultDescription
musicTrackstringnullMusic track path
fadeOutMsint2000Fade out duration
{
  "code": "bossmusiccontroller",
  "attributes": {
    "musicTrack": "music/boss_battle",
    "fadeOutMs": 3000
  }
}

bossmusicurlcontroller

EntityBehaviorBossMusicUrlController — Plays music from URL during boss fight.

PropertyTypeDefaultDescription
musicUrlstringnullMusic URL
volumefloat1.0Volume
{
  "code": "bossmusicurlcontroller",
  "attributes": {
    "musicUrl": "https://example.com/boss_music.ogg",
    "volume": 0.8
  }
}

bossnametag

EntityBehaviorBossNameTag — Customizes boss nametag display.

PropertyTypeDefaultDescription
displayNamestringnullCustom name
showHealthbooltrueShow health in nametag
colorstring"#FF0000"Nametag color
{
  "code": "bossnametag",
  "attributes": {
    "displayName": "Dread Lord",
    "showHealth": true,
    "color": "#8B0000"
  }
}

bossbloodprice

EntityBehaviorBossBloodPrice — Reactive ability. When the boss deals damage, it heals for a percentage of damage dealt. After healing past a threshold, triggers a vulnerability window.

PropertyTypeDefaultDescription
whenHealthRelBelowfloat1.0Health threshold
cooldownSecondsfloat0Cooldown
maxTargetRangefloat30Target range
healPercentfloat0.3Heal = damageDealt * this
minVulnMsfloat1500Min vulnerability window
maxVulnMsfloat4000Max vulnerability window
healThresholdfloat5Heal amount to trigger vulnerability

💡 Requires bossvulnerabilitywindow behavior on the same entity. The vulnerability window is triggered by calling OnAbilityCompleted("bossbloodprice").

{
  "code": "bossbloodprice",
  "attributes": {
    "whenHealthRelBelow": 0.6,
    "cooldownSeconds": 15,
    "maxTargetRange": 25,
    "healPercent": 0.4,
    "healThreshold": 8
  }
}

bossenrage

EntityBehaviorBossEnrage — After a configurable timer from first damage, boss gains +50% damage and +50% move speed permanently until death/soft reset. Warning pulse at 10 seconds before enrage.

PropertyTypeDefaultDescription
enrageTimerSecondsfloat240Seconds until enrage

💡 Enrage timer is overridden by Hollow Trials tier data (alegacyvsquest:trial:enrageTimerSeconds).

{
  "code": "bossenrage",
  "attributes": {
    "enrageTimerSeconds": 180
  }
}

bossghostflight

EntityBehaviorBossGhostFlight — Entity floats above ground and periodically becomes invisible. While invisible: moves faster, doesn't attack. Reappears behind the player for a surprise attack.

PropertyTypeDefaultDescription
hoverHeightfloat1.5Hover height above ground
invisDurationSecfloat3Invisibility duration
invisCooldownSecfloat12Cooldown between invisibility
invisMoveSpeedfloat0.08Move speed while invisible
reappearBehindDistancefloat3Distance behind player on reappear
{
  "code": "bossghostflight",
  "attributes": {
    "hoverHeight": 2.0,
    "invisDurationSec": 4,
    "invisCooldownSec": 15,
    "reappearBehindDistance": 4
  }
}

bossmirrorimage

EntityBehaviorBossMirrorImage — Boss creates illusion entities and teleports. Illusions have 1 HP and auto-despawn after lifetime.

PropertyTypeDefaultDescription
whenHealthRelBelowfloat1.0Health threshold
cooldownSecondsfloat0Cooldown
maxTargetRangefloat30Target range
imageCountint2Number of illusions
imageLifetimeSecfloat6Illusion lifetime
teleportOnCastbooltrueTeleport real boss on cast
teleportRadiusfloat6Teleport radius
soundstringeffect/translocate-activeSound
soundRangefloat32Sound range
{
  "code": "bossmirrorimage",
  "attributes": {
    "whenHealthRelBelow": 0.5,
    "cooldownSeconds": 30,
    "maxTargetRange": 25,
    "imageCount": 3,
    "imageLifetimeSec": 8,
    "teleportOnCast": true,
    "teleportRadius": 8
  }
}

bossmovementstyle

EntityBehaviorBossMovementStyle — Souls-like movement patterns. Bosses strafe, dash, retreat, and pause instead of just walking straight at the player.

PropertyTypeDefaultDescription
stylestringdefaultStyle: assassin, tank, kiter, berserker, controller
strafeSpeedfloat0.03Strafe speed
dashSpeedfloat0.12Dash speed
retreatSpeedfloat0.05Retreat speed
engageDistancefloat4Distance to engage
strafeDistancefloat6Ideal strafe distance
retreatDistancefloat10Retreat distance
dashCooldownSecfloat5Dash cooldown
strafeDurationSecfloat2Strafe duration
retreatDurationSecfloat1.5Retreat duration
pauseDurationSecfloat1Pause duration

💡 Style presets override individual values: - assassin — fast, short range, frequent dashes - tank — slow, long range, no retreat - kiter — fast, long range, long retreats - berserker — very fast, short range, frequent everything - controller — medium, very long range, long cooldowns

{
  "code": "bossmovementstyle",
  "attributes": {
    "style": "assassin",
    "strafeSpeed": 0.04,
    "dashSpeed": 0.15,
    "engageDistance": 3
  }
}

bossphaseshift

EntityBehaviorBossPhaseShift — Boss teleports to a random position within shiftRadius. Visual: dissolve particles at old position, reappear particles at new position.

PropertyTypeDefaultDescription
whenHealthRelBelowfloat1.0Health threshold
cooldownSecondsfloat0Cooldown
maxTargetRangefloat30Target range
shiftRadiusfloat8Teleport radius
durationMsfloat1500Dissolve/reappear duration
soundstringblock/meteoricironSound
soundRangefloat16Sound range
{
  "code": "bossphaseshift",
  "attributes": {
    "whenHealthRelBelow": 0.5,
    "cooldownSeconds": 12,
    "maxTargetRange": 25,
    "shiftRadius": 10,
    "durationMs": 2000
  }
}

bossshieldphase

EntityBehaviorBossShieldPhase — At configured HP threshold, boss becomes invulnerable and spawns mobs. Kill all mobs to break the shield. Boss doesn't attack during shield phase. Max duration failsafe.

PropertyTypeDefaultDescription
shieldHealthThresholdfloat0.5HP fraction to trigger
mobCodestringgame:drifter-deepMob entity code
mobCountint4Number of mobs
spawnRadiusfloat5Spawn radius
maxShieldDurationSecfloat60Max shield duration
{
  "code": "bossshieldphase",
  "attributes": {
    "shieldHealthThreshold": 0.5,
    "mobCode": "game:drifter-deep",
    "mobCount": 6,
    "spawnRadius": 6,
    "maxShieldDurationSec": 90
  }
}

bosssplit

EntityBehaviorBossSplit — At configured HP threshold, boss despawns and spawns 2 mini-copies. Each copy has 25% of original max HP. Both must be killed.

PropertyTypeDefaultDescription
splitHealthThresholdfloat0.5HP fraction to trigger

💡 One-time trigger. Only works once per boss. Tier 2/3 only in Hollow Trials.

{
  "code": "bosssplit",
  "attributes": {
    "splitHealthThreshold": 0.4
  }
}

bosstelegraph

EntityBehaviorBossTelegraph — Displays a particle zone on the ground before a powerful attack. The attack is delayed by windup time, giving players time to dodge. Supports circle, line, and cone shapes.

PropertyTypeDefaultDescription
windupMsfloat1000Windup time before attack lands
shapestringcircleZone shape: circle, line, cone
radiusfloat5Radius for circle/cone
lengthfloat10Length for line shape
widthfloat2Width for line shape
anglefloat45Angle for cone shape (degrees)

💡 This is a helper behavior. Other abilities call StartTelegraph() and IsPositionInZone() to implement telegraphed attacks. See bossgroundslam for an example.

{
  "code": "bosstelegraph",
  "attributes": {
    "windupMs": 1500,
    "shape": "circle",
    "radius": 6
  }
}

Press ESC to close