• Do not use Discord to host any images you post, these links expire quickly! You can learn how to add images to your posts here.
  • Reminder: AI-generated content is not allowed on the forums per the Rules and Regulations. Please contact us if you have any questions!
Resource icon

Resource Advanced AI System 1.1

Nononever

Dev from Pokémon Illusion, Pokémon Arcadia
Member
Joined
Dec 11, 2018
Posts
224
NoNoNever submitted a new resource:

Advanced AI System - Transform Your Battles with Master-Tier AI (or Master buggy-Tier lol)

[Plugin] Advanced AI System - Master-Tier Intelligence​


Advanced AI System is a comprehensive overhaul for the Pokémon Essentials AI, heavily inspired by the famous Pokémon Reborn AI. It replaces the standard decision-making process with a smart, state-aware system that understands roles, field effects, and long-term strategy.

This plugin transforms your trainers from predictable opponents into tactical masterminds that predict switches, abuse field...

Read more about this resource...
 
Something funny is happening, the opponent (with 100 skill level or whatever it was called) keeps switching between cloyster and lapras

┌─────────────────────────────────────┐
│ SWITCH SCORE CALCULATION │
└─────────────────────────────────────┘
→ Analyzing vs Gyarados [WATER/FLYING]
[1/8] Type Disadvantage: +10
[AAI Switch] Beste Option: Cloyster (Matchup +35)
[4/8] Better Options: +35
─────────────────────────────────────
TOTAL SWITCH SCORE: 45
Threshold (pro): 35
Decision: ✅ SWITCH
-> [Switch] Switch score for The opposing Lapras: 45
✅ RESULT: SHOULD SWITCH!
==============================
================================================================================
=== AI REPLACEMENT POKEMON DEBUG ===
Battler Index: 1
Terrible Moves?: false
Trainer Skill: 100
Has ReserveLastPokemon?: true
Party Size: 6 (Start: 0, End: 6)
--- PARTY ANALYSIS ---
[0] Cloyster: CAN_SWITCH
[1] Ninetales: CAN_SWITCH
[2] Sandslash: CAN_SWITCH
[3] Vanilluxe: CAN_SWITCH
[4] Mamoswine: CAN_SWITCH
[5] Lapras: ACTIVE, LAST_POKEMON
========================================
=== CHOOSING REPLACEMENT POKEMON ===
Current: Lapras (1)
Trainer Skill: 100
Forced Switch: false
Qualifies for Advanced AI? true
Switch Intelligence enabled? true
>> Using send() to bypass visibility
>> Using Advanced AI selection...

┌─────────────────────────────────────┐
│ FINDING BEST REPLACEMENT │
└─────────────────────────────────────┘
• Cloyster: Matchup = 45
• Ninetales: Matchup = 0
• Sandslash: Matchup = -10
• Vanilluxe: Matchup = 0
• Mamoswine: Matchup = -85
─────────────────────────────────────
✅ BEST OPTION: Cloyster
Matchup Score: 45

✅ SELECTED: Cloyster (Party Index: 0)
==============================
─────────────────────────────────────
RESULT: Party Index 0 (Cloyster)
================================================================================

I only just enabled this plugin, so I don't know much about it, but maybe if the pokemon it switched to had the same score as the best switch, it shouldn't switch maybe? Because both lapras and cloyster seem to have the same score, but they're switching endlessly
 
Something funny is happening, the opponent (with 100 skill level or whatever it was called) keeps switching between cloyster and lapras

┌─────────────────────────────────────┐
│ SWITCH SCORE CALCULATION │
└─────────────────────────────────────┘
→ Analyzing vs Gyarados [WATER/FLYING]
[1/8] Type Disadvantage: +10
[AAI Switch] Beste Option: Cloyster (Matchup +35)
[4/8] Better Options: +35
─────────────────────────────────────
TOTAL SWITCH SCORE: 45
Threshold (pro): 35
Decision: ✅ SWITCH
-> [Switch] Switch score for The opposing Lapras: 45
✅ RESULT: SHOULD SWITCH!
==============================
================================================================================
=== AI REPLACEMENT POKEMON DEBUG ===
Battler Index: 1
Terrible Moves?: false
Trainer Skill: 100
Has ReserveLastPokemon?: true
Party Size: 6 (Start: 0, End: 6)
--- PARTY ANALYSIS ---
[0] Cloyster: CAN_SWITCH
[1] Ninetales: CAN_SWITCH
[2] Sandslash: CAN_SWITCH
[3] Vanilluxe: CAN_SWITCH
[4] Mamoswine: CAN_SWITCH
[5] Lapras: ACTIVE, LAST_POKEMON
========================================
=== CHOOSING REPLACEMENT POKEMON ===
Current: Lapras (1)
Trainer Skill: 100
Forced Switch: false
Qualifies for Advanced AI? true
Switch Intelligence enabled? true


┌─────────────────────────────────────┐
│ FINDING BEST REPLACEMENT │
└─────────────────────────────────────┘
• Cloyster: Matchup = 45
• Ninetales: Matchup = 0
• Sandslash: Matchup = -10
• Vanilluxe: Matchup = 0
• Mamoswine: Matchup = -85
─────────────────────────────────────
✅ BEST OPTION: Cloyster
Matchup Score: 45

✅ SELECTED: Cloyster (Party Index: 0)
==============================
─────────────────────────────────────
RESULT: Party Index 0 (Cloyster)
================================================================================

I only just enabled this plugin, so I don't know much about it, but maybe if the pokemon it switched to had the same score as the best switch, it shouldn't switch maybe? Because both lapras and cloyster seem to have the same score, but they're switching endlessly
Luckily, I uploaded the plugin while I'm on vacation😄 I'll check it out later.Whoops😄
 
when in a double battle, this error message pops up at the beginning of every turn, multiple times

Code:
Expand Collapse Copy
[Pokémon Essentials version 21.1]

[v21.1 Hotfixes 1.0.9]



Exception: NoMethodError

Message: undefined method `ai_skill_level' for #<Battle::AI::AIBattler>



Backtrace:

[Advanced AI System] [009] Doubles_Coordination.rb:196:in `apply_doubles_coordination'

[Advanced AI System] [002] Core.rb:62:in `apply_advanced_modifiers'

[Advanced AI System] [002] Core.rb:49:in `pbGetMoveScore'

[Deluxe Battle Kit] [003] Command Menu Refactor.rb:522:in `block (3 levels) in pbGetMoveScores'

PBDebug:6:in `logonerr'

[Deluxe Battle Kit] [003] Command Menu Refactor.rb:522:in `block (2 levels) in pbGetMoveScores'

[Deluxe Battle Kit] [003] Command Menu Refactor.rb:517:in `each'

[Deluxe Battle Kit] [003] Command Menu Refactor.rb:517:in `block in pbGetMoveScores'

[Deluxe Battle Kit] [003] Command Menu Refactor.rb:481:in `each'

[Deluxe Battle Kit] [003] Command Menu Refactor.rb:481:in `each_with_index'

EDIT: this also shows up in the console in singles, but the game still goes on with no error outside of that. it does seem to be making odd moves though, like keeping in a crocalor against a water type when it probably had much better things to switch into

Ruby:
Expand Collapse Copy
  Qualifies for Advanced AI? true
  Switch Intelligence enabled? true
  >>> Checking switch logic...

  ┌─────────────────────────────────────┐
  │ SWITCH SCORE CALCULATION            │
  └─────────────────────────────────────┘
    → Analyzing vs Wartortle [WATER]
Exception `NoMethodError' at [Advanced AI System] [012] Switch_Intelligence.rb:197 - undefined method `pbCalcTypeMod' for #<Battle::AI>
[AAI Core ERROR] NoMethodError: undefined method `pbCalcTypeMod' for #<Battle::AI>
[Advanced AI System] [012] Switch_Intelligence.rb:197:in `block (2 levels) in evaluate_survival_concerns'
[Advanced AI System] [012] Switch_Intelligence.rb:195:in `each'
[Advanced AI System] [012] Switch_Intelligence.rb:195:in `block in evaluate_survival_concerns'
==============================
Exception `ArgumentError' at Section015:29 - Invalid argument passed to method.
Expected nil to be one of [Symbol, GameData::Type, String], but got NilClass.
[Advanced AI] Effectiveness calculation error: Invalid argument passed to method.
Expected nil to be one of [Symbol, GameData::Type, String], but got NilClass.
Exception `ArgumentError' at Section015:29 - Invalid argument passed to method.
Expected nil to be one of [Symbol, GameData::Type, String], but got NilClass.
[Advanced AI] Effectiveness calculation error: Invalid argument passed to method.
Expected nil to be one of [Symbol, GameData::Type, String], but got NilClass.
Exception `ArgumentError' at Section015:29 - Invalid argument passed to method.
Expected nil to be one of [Symbol, GameData::Type, String], but got NilClass.
[Advanced AI] Effectiveness calculation error: Invalid argument passed to method.
Expected nil to be one of [Symbol, GameData::Type, String], but got NilClass.
Exception `ArgumentError' at Section015:29 - Invalid argument passed to method.
Expected nil to be one of [Symbol, GameData::Type, String], but got NilClass.
[Advanced AI] Effectiveness calculation error: Invalid argument passed to method.
Expected nil to be one of [Symbol, GameData::Type, String], but got NilClass.
 
Last edited:
Nononever updated Advanced AI System with a new update entry:

Bugfixes

Added
Global Effectiveness Guard: Added a robust wrapper in Hotfixes.rb to prevent ArgumentError crashes when nil types are passed to Effectiveness.calculate.
Matchup Improvement Logic**: AI now compares the candidate Pokemon's score against the current Pokemon's score. This avoids switching for marginal gains or equal stats.

Fixed
Infinite Switch Loop: Resolved the issue where the opponent would endlessly switch between two...

Read the rest of this update entry...
 
Back
Top