Skip to content

Fight Config Builder

Build complete titan fight configurations with visual node graphs for phases and state machines.

Open Fight Config Builder (Full Screen) →

The Fight Config Builder provides a visual node graph editor for creating titan fight configurations with phases, moves, and state machines.

The default view shows your phase progression as a horizontal flowchart.

  • Pokemon Name: Species to apply config to (e.g., “charizard”)
  • Titan Display Name: Name shown to players
  • Selection Strategy: How moves are chosen (Weighted Random recommended)
  • Click ”+ Add Phase” to create new phases
  • Click a phase node to select it and show details panel
  • Edit properties in the details panel:
    • Health Threshold (when phase triggers)
    • Speed/Damage/Scale modifiers
    • Aggression level
    • On Enter Script (MoLang for phase transition effects)
  • Click “Edit State Machine” on any phase node
  • Opens state machine graph editor for that phase

Edit AI behavior for the selected phase.

  • Click ”+ Add State” to create new AI states
  • States define movement patterns and behavior
  • The green-bordered state is the initial state (where the phase starts)
  • Drag from one state’s edge to another to create transitions
  • Transitions define when the titan switches behaviors
  • Red dashed lines are global transitions (work from any state)

Each state controls:

  • Movement Controller: How the titan moves (patrol, rush, circler, etc.)
  • Speed Multiplier: Movement speed in this state
  • Aggression Multiplier: How aggressively titan pursues target
  • Duration: Min/max time in state before forced transition
  • Click ”← Back to Phases” to return to phase timeline
  • Your state machine changes are saved
  1. Click “Generate JSON” after configuring everything
  2. Copy to Clipboard to paste into your config file
  3. Save to config/titan/fights/pokemon_name.json
  4. Run /titan reload in-game to load changes

Phases trigger when titan health drops below threshold:

  • Phase 1: 1.0 (100% HP - starts here)
  • Phase 2: 0.66 (66% HP)
  • Phase 3: 0.33 (33% HP)
  • Enrage: 0.1 (10% HP - optional)

Phases must be in descending order!

Typical difficulty curve:

PhaseSpeedDamageAggression
11.0-1.11.01.0-1.1
21.2-1.31.2-1.31.3-1.5
31.4-1.51.5-1.71.6-2.0

Common phase transition effects:

// Particle burst
q.particle_effect('minecraft:soul_fire_flame', q.position(0), 100, 2.5)
// Apply buffs
q.apply_potion('minecraft:speed', 999999, 1); q.apply_potion('minecraft:strength', 999999, 1)
// Combined effect
q.particle_effect('minecraft:explosion', q.position(0), 50, 3.0); q.play_sound('minecraft:entity.ender_dragon.growl', 1.0, 0.5)

Available controllers (from Titan):

  • titan:ground_patrol - Standard ground movement
  • titan:ground_berserker - Aggressive ground rush
  • titan:aerial_circler - Circle in air around target
  • titan:aerial_bomber - Dive bomb attacks
  • titan:aerial_rush - Fast aerial charges

Common MoLang conditions:

// Time-based
q.titan_time_in_state > 2000
// Distance-based
q.titan_distance_to_target < 8.0
// Health-based
q.titan_health_percent < 0.5
// Combined
q.titan_distance_to_target < 5.0 && q.titan_time_in_state > 1500
// Random chance
q.titan_random < 0.3
aggressive_state (high aggro, 2-5s)
→ defensive_state (low aggro, 1-3s)
→ aggressive_state
ranged_state (far from target)
→ melee_state (close to target)
→ retreat_state (after damage taken)
→ ranged_state
circling (aerial_circler, medium aggro)
→ dive_bomb (aerial_bomber, high aggro)
→ retreat (aerial_rush, low aggro)
→ circling

Use global transitions for emergency behaviors:

// Retreat when damaged
condition: q.titan_health_percent < 0.3 && q.titan_time_since_damage < 1000
target: retreat_state
// Enrage at low HP
condition: q.titan_health_percent < 0.15
target: enrage_state

Global transitions work from ANY state, useful for:

  • Low-HP panic modes
  • Retreat when damaged
  • Special triggers
  1. Set pokemon name: “charizard”
  2. Set titan name: “Inferno Titan Charizard”
  3. Keep default 3 phases
  1. Select Phase 1 node
  2. Set modifiers: Speed 1.1, Damage 1.0, Aggro 1.0
  3. Add on enter script: q.particle_effect('minecraft:flame', q.position(0), 50, 2.0)
  4. Click “Edit State Machine”
  1. Keep default_state
  2. Add new state: “aggressive_rush”
  3. Connect: default_state → aggressive_rush
  4. Set transition condition: q.titan_distance_to_target < 6.0 && q.titan_time_in_state > 2000
  5. Connect: aggressive_rush → default_state
  6. Set condition: q.titan_time_in_state > 3000
  7. Back to phases
  1. Select Phase 2 node
  2. Set modifiers: Speed 1.25, Damage 1.3, Aggro 1.4
  3. Add buffs: q.apply_potion('minecraft:speed', 999999, 0)
  4. Repeat state machine setup
  1. Select Phase 3 node
  2. Set modifiers: Speed 1.4, Damage 1.6, Aggro 1.8
  3. Add buffs: q.apply_potion('minecraft:speed', 999999, 1); q.apply_potion('minecraft:strength', 999999, 1)
  4. Create aggressive state machine
  1. Click “Generate JSON”
  2. Copy to clipboard
  3. Save to config/titan/fights/charizard.json
  4. Run /titan reload
  5. Test: /pokespawn charizard then /titan create @e[type=cobblemon:pokemon,limit=1,sort=nearest]
  • Check health thresholds are in descending order
  • Ensure titan health actually drops below threshold
  • Verify phases array is properly formatted in JSON
  • Check initial state exists in states object
  • Verify movement controller IDs are valid
  • Check transition conditions use valid MoLang
  • Ensure states are connected with transitions
  • All phases must have required fields
  • State machine states need valid movement controllers
  • Check MoLang syntax in conditions and scripts

Build complex boss AI visually! 🎮🧠