Skip to content

Vulnerability System

The vulnerability system creates counterplay windows where titans take increased damage after using powerful attacks. This rewards players for dodging attacks and punishing titans during recovery.

Damage Multiplier: 1.0x (normal damage) Visual: No special effects Duration: Permanent until state changes

All titans start in NORMAL state and return to it after vulnerability ends.

Damage Multiplier: 1.3x damage taken Visual: Slight particle effects, animation stagger Duration: 2-4 seconds (configurable)

When to Use:

  • After medium-power attacks
  • After successful dodges
  • Between attack phases
  • As phase transition punishment
{
"type": "set_vulnerable",
"vulnerabilityState": "RECOVERING",
"duration": "3000" // 3 seconds
}

Damage Multiplier: 1.8x damage taken Visual: Heavy breathing, hunched posture, exhaustion particles Duration: 4-8 seconds (configurable)

When to Use:

  • After ultimate attacks
  • After missing high-commitment attacks
  • After enrage phases
  • As punishment for greedy behavior
{
"type": "set_vulnerable",
"vulnerabilityState": "EXHAUSTED",
"duration": "6000" // 6 seconds
}

Most Common: Set vulnerability after damage application:

{
"timeline": [
{"type": "add_holds", "holds": ["effects"]},
{"type": "define_obb", "name": "explosion", ...},
{"type": "telegraph_obb", "name": "explosion", "telegraphType": "DANGER"},
{"type": "damage_obb", "name": "explosion", "damage": "25.0"},
{"type": "set_vulnerable", "vulnerabilityState": "RECOVERING", "duration": "3000"},
{"type": "remove_holds", "holds": ["effects"]},
{"type": "pause", "pause": 1.5}
]
}

Execution:

  1. Titan uses attack
  2. Damage applies
  3. Vulnerability starts immediately
  4. Players can punish during recovery

Option 1: Immediate Vulnerability

{"type": "damage_obb", "name": "attack", "damage": "20.0"},
{"type": "set_vulnerable", "vulnerabilityState": "RECOVERING", "duration": "3000"}
// Vulnerable as soon as damage applies

Option 2: Delayed Vulnerability

{"type": "damage_obb", "name": "attack", "damage": "20.0"},
{"type": "pause", "pause": 1.0},
{"type": "set_vulnerable", "vulnerabilityState": "RECOVERING", "duration": "3000"}
// Vulnerable 1 second after damage

Option 3: Vulnerability During Attack

{"type": "set_vulnerable", "vulnerabilityState": "RECOVERING", "duration": "5000"},
{"type": "pause", "pause": 2.0},
{"type": "damage_obb", "name": "attack", "damage": "20.0"}
// Vulnerable during windup AND recovery

Short Window (2-3s):

  • Fast attacks (2-4s cooldown)
  • Low-medium damage (8-15 damage)
  • Frequent attacks
{"type": "set_vulnerable", "vulnerabilityState": "RECOVERING", "duration": "2500"}

Medium Window (3-4s):

  • Medium attacks (6-10s cooldown)
  • Medium-high damage (15-25 damage)
  • Moderate frequency
{"type": "set_vulnerable", "vulnerabilityState": "RECOVERING", "duration": "3500"}

Long Window (4-5s):

  • Rare attacks (10-15s cooldown)
  • High damage (25-35 damage)
  • Infrequent but not ultimate
{"type": "set_vulnerable", "vulnerabilityState": "RECOVERING", "duration": "4500"}

Short Exhaustion (4-5s):

  • Powerful but not ultimate attacks
  • Phase 1-2 major moves
  • Moderate commitment
{"type": "set_vulnerable", "vulnerabilityState": "EXHAUSTED", "duration": "4500"}

Medium Exhaustion (5-7s):

  • Ultimate attacks in early phases
  • High-risk high-reward moves
  • Significant commitment
{"type": "set_vulnerable", "vulnerabilityState": "EXHAUSTED", "duration": "6000"}

Long Exhaustion (7-10s):

  • Phase 3 ultimates
  • One-shot attempts
  • Maximum punishment
{"type": "set_vulnerable", "vulnerabilityState": "EXHAUSTED", "duration": "8000"}

High Damage + Long Vulnerability:

{
"timeline": [
// ... attack setup ...
{"type": "damage_obb", "name": "ultimate", "damage": "45.0"},
{"type": "set_vulnerable", "vulnerabilityState": "EXHAUSTED", "duration": "7000"},
// 45 damage, but 7s of 1.8x vulnerability
]
}

Medium Damage + Short Vulnerability:

{
"timeline": [
// ... attack setup ...
{"type": "damage_obb", "name": "jab", "damage": "12.0"},
{"type": "set_vulnerable", "vulnerabilityState": "RECOVERING", "duration": "2000"},
// 12 damage, only 2s of 1.3x vulnerability
]
}

Low Damage + No Vulnerability:

{
"timeline": [
// ... attack setup ...
{"type": "damage_obb", "name": "chip", "damage": "6.0"},
// No vulnerability - spam-safe
]
}

RECOVERING (1.3x multiplier):

  • Player deals 10 damage normally
  • During RECOVERING: 10 × 1.3 = 13 damage
  • Bonus: +3 damage per hit

EXHAUSTED (1.8x multiplier):

  • Player deals 10 damage normally
  • During EXHAUSTED: 10 × 1.8 = 18 damage
  • Bonus: +8 damage per hit

EXHAUSTED Burst Window:

  • Player has 6 seconds
  • Deals 4 hits of 15 damage each
  • Normal: 15 × 4 = 60 damage
  • EXHAUSTED: (15 × 1.8) × 4 = 108 damage
  • Bonus: +48 damage total

Titan Animation:

  • Slight stagger
  • Breathing heavily (subtle)
  • Slower movement momentarily

Particle Effects:

  • Light yellow particles around titan
  • ~5-10 particles/second
  • Subtle glow effect

Status Indicator:

  • Yellow outline/aura
  • Pulse effect (slow)

Titan Animation:

  • Heavy stagger/stumble
  • Hunched posture
  • Labored breathing (obvious)
  • Reduced movement speed

Particle Effects:

  • Heavy yellow/orange particles
  • ~20-30 particles/second
  • Sweat droplets
  • Steam/exhaustion clouds

Status Indicator:

  • Orange outline/aura
  • Pulse effect (fast)
  • Screen shake (slight) when entering state

Actionable Feedback:

  • Clear visual distinction between RECOVERING and EXHAUSTED
  • Duration timer visible (optional UI mod)
  • Audio cue when entering vulnerable state
  • Chat message: “Titan is vulnerable!” (optional)

Vulnerability Frequency: Low

  • 30% of attacks cause RECOVERING
  • 5% of attacks cause EXHAUSTED
  • Teach mechanic without overwhelming

Example:

"basic_slash": {
// No vulnerability
},
"charged_blast": {
// Set RECOVERING (3s)
},
"phase_1_ultimate": {
// Set EXHAUSTED (5s)
}

Vulnerability Frequency: Medium

  • 50% of attacks cause RECOVERING
  • 15% of attacks cause EXHAUSTED
  • Reward skilled dodging

Example:

"combo_attack": {
// Set RECOVERING (3.5s)
},
"beam_attack": {
// Set RECOVERING (4s)
},
"explosion_ultimate": {
// Set EXHAUSTED (6s)
}

Vulnerability Frequency: High

  • 60% of attacks cause RECOVERING
  • 25% of attacks cause EXHAUSTED
  • High-risk high-reward gameplay

Example:

"enrage_slash": {
// Set RECOVERING (2.5s) - shorter but frequent
},
"desperate_explosion": {
// Set EXHAUSTED (7s)
},
"final_ultimate": {
// Set EXHAUSTED (8s) - if survived
}

No vulnerability, low damage, short cooldown:

{
"timeline": [
{"type": "define_obb", "name": "jab", ...},
{"type": "telegraph_obb", "name": "jab", "telegraphType": "WARNING"},
{"type": "damage_obb", "name": "jab", "damage": "8.0"}
// No set_vulnerable - titan can spam safely
]
}

Use Case: Pressure tool, chip damage, gap closer

Short RECOVERING, medium damage:

{
"timeline": [
{"type": "define_obb", "name": "slash", ...},
{"type": "telegraph_obb", "name": "slash", "telegraphType": "WARNING"},
{"type": "damage_obb", "name": "slash", "damage": "15.0"},
{"type": "set_vulnerable", "vulnerabilityState": "RECOVERING", "duration": "3000"}
]
}

Use Case: Main damage tool, balanced risk

Long EXHAUSTED, massive damage:

{
"timeline": [
{"type": "pause", "pause": 2.0}, // Windup
{"type": "define_obb", "name": "ultimate", ...},
{"type": "telegraph_obb", "name": "ultimate", "telegraphType": "CRITICAL"},
{"type": "damage_obb", "name": "ultimate", "damage": "50.0"},
{"type": "set_vulnerable", "vulnerabilityState": "EXHAUSTED", "duration": "8000"}
]
}

Use Case: High-stakes moment, massive punishment if dodged

Vulnerability even if attack misses:

{
"timeline": [
{"type": "set_vulnerable", "vulnerabilityState": "RECOVERING", "duration": "5000"},
// Vulnerability starts BEFORE damage
{"type": "pause", "pause": 1.0},
{"type": "define_obb", "name": "charge", ...},
{"type": "telegraph_obb", "name": "charge", "telegraphType": "DANGER"},
{"type": "damage_obb", "name": "charge", "damage": "30.0", "condition": "q.target_distance <= 6.0"}
// If target too far, damage doesn't apply but titan still vulnerable
]
}

Use Case: Punish whiffs, reward baiting

Enter Defensive State When EXHAUSTED:

{
"stateMachine": {
"states": {
"aggressive": {
"transitions": [
{
"targetState": "defensive",
"condition": "q.is_vulnerable('EXHAUSTED')"
}
]
},
"defensive": {
"movementController": "titan:retreat",
"speedMultiplier": 1.4, // Retreat faster
"aggressionMultiplier": 0.3
}
}
}
}

Design: Titan retreats when exhausted, creating chase opportunities

Use Different Moves When Vulnerable:

"escape_dash": {
"condition": "q.is_vulnerable()", // Any vulnerability
"weight": 3.0,
"damage": "0.0" // No damage, just escape
}

Design: Titan prioritizes escape moves when vulnerable

RECOVERING (1.3x, 2-4s):

  • 1-2 quick attacks
  • Use fast weapons
  • Don’t overcommit
  • Prepare for next dodge

EXHAUSTED (1.8x, 4-8s):

  • Full burst rotation
  • Use big abilities
  • Maximize damage
  • Coordinate team focus

Should I Punish?

Yes:

  • Vulnerability duration >3s remaining
  • My abilities off cooldown
  • Safe positioning
  • Team ready to heal if needed

No:

  • Vulnerability ending soon
  • Next attack incoming
  • Low HP/resources
  • Better to reset

Callouts:

  • “Titan exhausted!” - Focus fire
  • “Recovering!” - Get 1-2 hits
  • “Normal!” - Defensive positioning

Damage Windows:

  • Synchronize burst during EXHAUSTED
  • Save ultimates for long windows
  • Stagger attacks during RECOVERING

For Each Attack:

  • Damage amount feels fair
  • Vulnerability duration matches power
  • Players can capitalize on window
  • Titan can’t chain attacks during vulnerability
  • Visual feedback is clear

Problem: Windows Too Short

  • Players can’t react in time
  • Increase duration by 1-2 seconds
  • Add earlier visual cue

Problem: Windows Too Long

  • Titan feels helpless
  • Reduce duration
  • Add escape moves during vulnerability
  • Allow defensive actions

Problem: Damage Multiplier Too High

  • Titan dies too fast
  • Reduce EXHAUSTED frequency
  • Shorten durations
  • Increase titan HP pool

Problem: No Incentive to Dodge

  • Attacks don’t cause vulnerability
  • Add RECOVERING to medium attacks
  • Add EXHAUSTED to ultimates

Not Allowed by Default:

// Titan already RECOVERING
{"type": "set_vulnerable", "vulnerabilityState": "RECOVERING", "duration": "3000"}
// Refreshes duration, doesn't stack

Upgrade Vulnerability:

// Titan already RECOVERING
{"type": "set_vulnerable", "vulnerabilityState": "EXHAUSTED", "duration": "5000"}
// Upgrades to EXHAUSTED

Only Vulnerable If Attack Hits:

{
"type": "set_vulnerable",
"vulnerabilityState": "RECOVERING",
"duration": "3000",
"condition": "q.hit_entity_count > 0" // Only if hit someone
}

Only Vulnerable If Attack Misses:

{
"type": "set_vulnerable",
"vulnerabilityState": "EXHAUSTED",
"duration": "6000",
"condition": "q.hit_entity_count == 0" // Only if whiffed
}

Longer Vulnerability at Low HP:

{
"type": "set_vulnerable",
"vulnerabilityState": "EXHAUSTED",
"duration": "math.lerp(4000, 8000, 1.0 - (q.user_health / q.user_max_health))"
// 4s at 100% HP, 8s at 0% HP
}

Master vulnerability windows to create fair, skill-expressive boss fights! ⚔️