Skip to content

Changelog

Existing custom battle_ai configs continue to load and behave normally. If you extracted bundled configs into your own datapack, merge or regenerate them to pick up the new high-skill opponent knowledge defaults.

  • Added opponent knowledge flags: know_opponent_team, know_opponent_moves, and know_opponent_abilities.
  • High-skill bundled AI configs now know unrevealed opponent moves and abilities, so they can avoid obvious ability immunities and priority blockers before the opponent reveals them.
  • Status moves no longer count as STAB. q.move.is_stab is only true for damaging moves.
  • No-target and field-side moves now stay in scoring instead of being dropped for lacking a direct target.
  • Choice item lock checks now retain the selected move, so Choice Band, Choice Specs, and Choice Scarf behavior can be queried reliably.
  • Live Cobblemon hazard contexts are considered alongside memory when reading hazards on each side.
  • Added/fixed Choice item queries: q.pokemon.is_choice, q.pokemon.is_choice_locked, and q.pokemon.choice_locked_move.
  • Added target volatile queries, including q.target.volatiles and q.target.has_volatile(name).
  • Added aspect queries on active Pokemon, targets, allies, and switch candidates with aspect(name) and has_aspect(name).
  • Added team and opponent-team move/ability checks under q.team.* and q.opponent_team.*.
  • Added move checks for known ability immunities and priority blockers: q.move.ability_immunity, q.move.priority_blocked_by_target_ability, and q.move.blocked_by_target_ability.
  • Added aggregate hazard helpers: .any and .total_layers on q.battle.hazards_on_our_side and q.battle.hazards_on_enemy_side.