• 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 BW Style Pokédex - Unofficial v21.1 Port 2025-04-11

Eco

Novice
Member
Joined
Feb 22, 2024
Posts
25
Eco submitted a new resource:

BW Style Pokédex - Unofficial v21.1 Port - Updated Port of Deepblue PacificWaves's Plugin and SkyHarvester's Revision

BW Style Pokédex - Unofficial v21.1 Port
Based on Deepblue PacificWave's Plugin (https://eeveeexpo.com/resources/510/) and SkyHarvester's Revision (https://eeveeexpo.com/resources/1542/)

I was enamored by the plugin initially and really wanted to make this work since I've been tweaking all the other BW-Style plugins to work in 21.1. With SkyHarvester's initial update, I had a great baseline to work with. I've gone ahead and tweaked everything to work and...

Read more about this resource...
 
By design, the original plugins were not compatible with his modular UI plugins. I have not tested it.
 
By design, the original plugins were not compatible with his modular UI plugins. I have not tested it.
They wont be unless they are specifically built to be compatible. Which imo, they should be. The goal of the Modular UI plugin is to make everybody's Summary/Pokedex plugins all compatible with one another. The one hiccup is that means all the authors of those plugins need to make theirs compatible with Modular UI.
 
This doesn't work for me. As soon as I try to open the Pokedex, I get this error:

[2025-07-02 21:44:39 -1000]
[Pokémon Essentials version 21.1]
[v21.1 Hotfixes 1.0.9]

Exception: NoMethodError
Message: undefined method `pokedex' for nil:NilClass

Backtrace:
[Pokedex BW Style] BW PokedexMenu.rb:104:in `pbStartScreen'
UI_PauseMenu:158:in `block (2 levels) in <main>'
MessageConfig:576:in `pbFadeOutIn'
UI_PauseMenu:155:in `block in <main>'
UI_PauseMenu:124:in `block in pbStartPokemonMenu'
UI_PauseMenu:117:in `loop'
UI_PauseMenu:117:in `pbStartPokemonMenu'
Scene_Map:110:in `call_menu'
[Following Pokemon EX] Refresh.rb:122:in `call_menu'
Scene_Map:207:in `update'
 
Small Hotfixes:

  • Fixed the 'pokedex' error when trying to open the Pokedex.
  • Cause: the Player class was not properly updated.

Replace the BW PokedexMenu.rb content with this one


Ruby:
Expand Collapse Copy
#===============================================================================
# Pokédex Regional Dexes list menu screen
# * For choosing which region list to view. Only appears when there is more
#   than one accessible region list to choose from, and if
#   Settings::USE_CURRENT_REGION_DEX is false.
#   WillowLee: the 'pokedex' error has been fixed, replace the original file with this one
#===============================================================================

class Window_DexesList < Window_CommandPokemon
  def initialize(commands, commands2, width)
    @commands2 = commands2
    super(commands, width)
    @selarrow = AnimatedBitmap.new("Graphics/UI/Pokedex/selarrow_white")
# Changes the color of the text, to the one used in BW
    self.baseColor   = Color.new(255, 255, 255)
    self.shadowColor = Color.new(165, 165, 173)
    self.windowskin  = nil
  end

  def drawItem(index, count, rect)
    super(index, count, rect)
    if index >= 0 && index < @commands2.length
      pbDrawShadowText(self.contents, rect.x + 254,rect.y, 64, rect.height,
         sprintf("%d", @commands2[index][0]), self.baseColor, self.shadowColor, 1)
      pbDrawShadowText(self.contents, rect.x + 350, rect.y, 64, rect.height,
         sprintf("%d", @commands2[index][1]), self.baseColor, self.shadowColor, 1)
      allseen = (@commands2[index][0] >= @commands2[index][2])
      allown  = (@commands2[index][1] >= @commands2[index][2])
      pbDrawImagePositions(self.contents, [
        ["Graphics/UI/Pokedex/icon_menuseenown", rect.x + 236, rect.y + 2, (allseen) ? 26 : 0, 0, 26, 26],
        ["Graphics/UI/Pokedex/icon_menuseenown", rect.x + 332, rect.y + 2, (allown) ? 26 : 0, 26, 26, 26]
      ])
    end
  end
end

#===============================================================================
#
#===============================================================================

class PokemonPokedexMenu_Scene
  def pbUpdate
    pbUpdateSpriteHash(@sprites)
  end

  def pbStartScene(commands, commands2)
    @commands = commands
    @viewport = Viewport.new(0, 0, Graphics.width, Graphics.height)
    @viewport.z = 99999
    @sprites = {}
    @sprites["background"] = IconSprite.new(0, 0, @viewport)
# Defines the Scrolling Background, as well as the overlay on top of it
    @sprites["background"] = ScrollingSprite.new(@viewport) 
    @sprites["background"].setBitmap(_INTL("Graphics/UI/Pokedex/bg_menu"))
    @sprites["background"].speed = 1
    @sprites["menuoverlay"] = IconSprite.new(0, 0, @viewport)
    @sprites["menuoverlay"].setBitmap(_INTL("Graphics/UI/Pokedex/menu_overlay"))
    @sprites["headings"]=Window_AdvancedTextPokemon.newWithSize(
       _INTL("<c3=FFFFFF,A5A5AD>SEEN<r>OBTAINED</c3>"), 286, 136, 208, 64, @viewport)
    @sprites["headings"].windowskin  = nil
    @sprites["commands"] = Window_DexesList.new(commands, commands2, Graphics.width-84)
    @sprites["commands"].x      = 40
    @sprites["commands"].y      = 192
    @sprites["commands"].height = 192
    @sprites["commands"].viewport = @viewport
    pbFadeInAndShow(@sprites) { pbUpdate }
  end

  def pbScene
    ret = -1
    loop do
      Graphics.update
      Input.update
      pbUpdate
      if Input.trigger?(Input::BACK)
        pbPlayCloseMenuSE
        break
      elsif Input.trigger?(Input::USE)
        ret = @sprites["commands"].index
        (ret == @commands.length-1) ? pbPlayCloseMenuSE : pbPlayDecisionSE
        break
      end
    end
    return ret
  end

  def pbEndScene
    pbFadeOutAndHide(@sprites) { pbUpdate }
    pbDisposeSpriteHash(@sprites)
    @viewport.dispose
  end
end

#===============================================================================
#
#===============================================================================
class PokemonPokedexMenuScreen
  def initialize(scene)
    @scene = scene
  end
  def pbStartScreen
    commands  = []
    commands2 = []
    dexnames = Settings.pokedex_names
    $player.pokedex.accessible_dexes.each do |dex|
      if dexnames[dex].nil?
        commands.push(_INTL("Pokédex"))
      elsif dexnames[dex].is_a?(Array)
        commands.push(dexnames[dex][0])
      else
        commands.push(dexnames[dex])
      end
      commands2.push([$player.pokedex.seen_count(dex),
                      $player.pokedex.owned_count(dex),
                      pbGetRegionalDexLength(dex)])
    end
    commands.push(_INTL("Exit"))
    @scene.pbStartScene(commands,commands2)
    loop do
      cmd = @scene.pbScene
      break if cmd < 0 || cmd >= commands2.length   # Cancel/Exit
      $PokemonGlobal.pokedexDex = $player.pokedex.accessible_dexes[cmd]
      pbFadeOutIn {
        scene = PokemonPokedex_Scene.new
        screen = PokemonPokedexScreen.new(scene)
        screen.pbStartScreen
      }
    end
    @scene.pbEndScene
  end
end
 
Back
Top