Fandom

Pokémon Essentials Wiki

Known bugs/Old bugs

< Known bugs

228pages on
this wiki
Add New Page
Talk0 Share

This page lists all the bugs that have since been fixed in Essentials. It is for archive purposes only - if the same (or a similar) bug shows up again, treat it separately.

Game lag

Essentials lags, although it has been reported that the 2009 versions had almost no lag, and that the lag only started getting worse in April 2010 and onwards.

The day/night system was overhauled around that time, and I do know it reshades the screen every minute, so this could be (one of) the causes.

There is also the fact that maps with more events have more lag, and two connected maps each with lots of events will lag even more. The solution to this is to make the maps smaller and cut down on the number of events if at all possible.

There are clearly several factors that contribute to lag. Let's try to sort out once and for all exactly which factors these are, and how much lag each one produces. ~ Maruno 03:07, March 6, 2011 (UTC)

I THINKS that put the "ENABLESHADING = false" fix this thing. Other strange thing is in the April 2010 versions and onward, if you put a map with more that Anythingx200 or 200xAnything the FPS down considerably (press F2 in test mode) but in olders versions no.-FL- 12:02, March 6, 2011 (UTC)
Yes, disabling the day/night system is easy to do, but it'd be nice to have an alternate system that still does day/night without so much lag. But that can be a tutorial rather than a bug fix - lag in itself isn't much of a bug, but if we can make it better that's always useful. Can you provide statistics on how much better the game runs when you disable the day/night system? I can't tell myself because my computer is too good (my FPS is always about 37).
What do you mean by "Anythingx200" and "200xAnything"? Do you mean the number of events in a map? ~ Maruno 16:06, March 6, 2011 (UTC)
The major problem isn't the FPS drop but the 0.3 ms pauses. I need to research a little more this bug.
The "Anythingx200" and "200xAnything" is the SIZE of the map, even without events on it! In this case, the problem IS the FPS.-FL- 17:26, March 6, 2011 (UTC)
I have two maps, both without events, one is 100x300 and another is 400x400. In April 2010 version, when I go to the bottom of the 100x300 the game FPS drops to 10 but in the 400x400 the FPS won't drop! When I am testing the SAME 100x300 map in November 2009 the FPS have no drops! -FL- 20:26, March 12, 2011 (UTC)

I think's that I mix the things a little, now I gonna separate the two problems that I get: The ms pauses and FPS drop. Maybe they have some type of relation. I tests on my PC with Windows XP.

-Ms pauses

I had http://tinypic.com/player.php?v=2wq5yl2&s=7 ms pauses, but I don't have even half of this video pauses. It's hard to measure theses pauses and when increase/decrease, I don't detect any big diferences in the following tests.

In the test maps, I thinks that the one with several monitors had more ms pauses that the Pokécenter one. I testing now disable and enable the day/night system and won't see diferences, but also I getting in both the "Vista" error and can't go father. I think's that the ms pauses occurs less in play testing but I can be wrong.

-FPS drop

This bug I discover when I try to compare two maps on two diferents versions. I test two indentical inner maps (Ctrl+C and Ctrl+V with draw select) without events. I made tests on one 2009 november version and one 2010 april version.

One size is 100x300. in 2010 april version when I go to the bottom of the 100x300 the game FPS drops to 8 (press F2 in test mode) while I walk, but in 2009 november version this won't occurs (the FPS normally is 37).

I test also a 400x400 and in both versions this won't occurs. Is hard to think why this won't happened in a map more large. The only reason that I can think is that in the 100x300 map I put more tiles in second layer.-FL- 02:44, June 26, 2011 (UTC)

Due to there not being any reports of lag for ages in the newer versions of Essentials, it is assumed lag no longer exists. ~ Maruno 19:59, May 2, 2012 (UTC)

Only one battler can move in double battles

In any kind of double battle, the player can only choose an action (attack/switch Pokémon/use item/run) for their first Pokémon. The opponent cannot do anything.

This bug is caused by a flaw in the script that determines whether the opponent should switch out their first Pokémon or not. Because of this flaw, no action is registered for the first opposing Pokémon, and therefore no other actions are determined from then on in the current round. The only action that has been registered is for the player's first Pokémon.

To fix this, go to the script section PokeBattle_AI and find the def pbEnemyShouldWithdrawEx?. At the top of this def, delete the lines highlighted in red, and replace them with the lines highlighted in yellow:

def pbEnemyShouldWithdrawEx?(index,alwaysSwitch)
 return false if !@opponent
 shouldswitch=alwaysSwitch
 typecheck=false
 batonpass=-1
 movetype=-1
 opp=@opponent.is_a?(Array) ? @opponent[(index-1)/2] : @opponent
 money=opp ? opp.moneyEarned : 0
 money=@savedMoneyEarned
 if !money
  money=@opponent ? @opponent.moneyEarned : 0
  @savedMoneyEarned=money
 end
 if @opponent && !shouldswitch && @battlers[index].turncount>0
  if money>=70 # Experienced trainers only
   opponent=@battlers[index].pbOppositeOpposing

Please give credit to Maruno if this fix is used.

Non-battlers don't gain enough experience and don't learn moves

When an enemy Pokémon is defeated, only Pokémon currently in battle gain all the experience they should and are able to learn moves upon level up. If a non-battler would gain experience (e.g. a Pokémon holding an Exp Share, or a previous battler that was switched out), then it may not gain as much experience as it should, and will not be able to learn moves upon level up.

This bug is caused by a flaw in the script that makes a Pokémon happier when it levels up if is currently out in battle. If the Pokémon levels up during battle but is not currently out in battle (e.g. it is using an Exp Share), then the flaw causes the rest of the experience calculations to end, resulting in the Pokémon gaining only enough experience to reach the next level (but with no message to say so); any remaining experience that should have been gained is lost, and there is no opportunity for it to learn moves.

To fix this, go to the script section PokeBattle_Battle and find the def pbGainEXP. Find the following bit of code in there and add in the two highlighted lines:

thispoke.calcStats
battler.pbUpdate if battler
@scene.pbRefresh
if battler
 if battler.pokemon && @internalbattle
  battler.pokemon.happiness+=2
  battler.pokemon.happiness=255 if battler.pokemon.happiness>255
 end
end
pbDisplayPaused(_INTL("{1} grew to Level {2}!",thispoke.name,curlevel))
@scene.pbLevelUp(thispoke,battler,oldtotalhp,oldattack,
    olddefense,oldspeed,oldspatk,oldspdef)

Please give credit to Maruno if this fix is used.

Eggs cannot be generated via breeding

There are two bugs in the breeding scripts, which causes the egg to fail to be generated. They can both be fixed easily by editing parts of the script section PokemonDayCare.

Firstly, in the def pbIsDitto?, remove the highlighted part:

def pbIsDitto?(pokemon)
 dexdata=pbOpenDexData
 pbDexDataOffset(dexdata,pokemon1.species,31)
 compat10=dexdata.fgetb
 compat11=dexdata.fgetb
 dexdata.close
 return (compat10==13 || compat11==13)
end

Secondly, in the def pbDayCareGenerateEgg, add the following highlighted lines towards the end of that def:

 egg.calcStats
 egg.name=_INTL("EGG")
 dexdata=pbOpenDexData
 pbDexDataOffset(dexdata,babyspecies,21)
 eggsteps=dexdata.fgetw
 dexdata.close
 egg.eggsteps=eggsteps
 $Trainer.party[$Trainer.party.length]=egg
end

Please give credit to Maruno if this fix is used.

"Obtained item" message doesn't display correctly for TMs/HMs

When the player picks up or is given a TM/HM, a message like "Ash found TM13! It contained Ice Beam!" is displayed. However, the move name isn't displayed properly.

To fix this, in the script section PokemonField, find the following two defs and change the highlighted numbers to 3:

def Kernel.pbItemBall(item)
 itemname=PBItems.getName(item)
 if $PokemonBag.pbStoreItem(item)
  if $ItemData[item][ITEMUSE]==3 || $ItemData[item][ITEMUSE]==4
   Kernel.pbMessage(_INTL("\\se[]{1} found {2}!\\se[itemlevel]\\nIt contained {3}.\\wtnp[30]",$Trainer.name,itemname,PBMoves.getName($ItemData[item][ITEMMACHINE])))
  else
def Kernel.pbReceiveItem(item)
 itemname=PBItems.getName(item)
  if $ItemData[item][ITEMUSE]==3 || $ItemData[item][ITEMUSE]==4
   Kernel.pbMessage(_INTL("\\se[]Obtained {2}!\\se[itemlevel]\\nIt contained {3}.\\wtnp[30]",$Trainer.name,itemname,PBMoves.getName($ItemData[item][ITEMMACHINE])))
  else

"Regional Pokédex number cannot be 0"

If you set a Pokémon's regional Pokédex number to 0, the game will not compile and the error message "Regional Pokédex number cannot be 0" will be shown. There is no reason this should count as an error. Fortunately it is easy to fix.

In the script section Compiler, find the following code at around line 2240 (you can search for the text "Regional Pokédex"). Delete the highlighted line:

elsif key=="RegionalNumbers"
 raise _INTL("Regional Pokédex number cannot be 0 (section {2}, PBS/pokemon.txt)",currentmap) if value==0
 regionals[valueindex]=[] if !regionals[valueindex]
 regionals[valueindex][currentmap]=value

Please give credit to Maruno if this fix is used.

All regions' nest locations are shown on one region's map

When viewing the nest locations for a species, the current region's map will be shown. However, the glowing red squares that highlight the nest locations do not depend on the region, so the nest locations for every region will be shown on the same map (e.g. Pidgey's Kanto nest locations are shown on the Johto map, etc.).

The display of the nest locations must be modified such that only the current region's nest locations of that species will be shown.

In the script section PokemonArea in the def pbStartScene, add in the following highlighted parts:

encdata=load_data("Data/encounters.dat")
points=[]
region=mappos[0]
for enc in encdata.keys
 enctypes=encdata[enc][1]
 if pbFindEncounter(enctypes,species)
  mappos=pbGetMetadata(enc,MetadataMapPosition)
  points.push(mappos) if mappos && mappos[0]==region[0]
 end
end

This fix assumes that all game maps (that have encounters on them) are assigned to a particular region (i.e. they have the "MapPosition" metadata). They should do anyway, though.

This fix also only works if the region map being displayed depends on the region the player is currently standing in. As mentioned above, you may have created a way to manually change which regional Dex to look at (e.g. depending on Global Variable 42); in which case, this fix will not work. Instead of the above, simply add in the following:

encdata=load_data("Data/encounters.dat")
points=[]
for enc in encdata.keys
 enctypes=encdata[enc][1]
 if pbFindEncounter(enctypes,species)
  mappos=pbGetMetadata(enc,MetadataMapPosition)
  points.push(mappos) if mappos && mappos[0]==$game_variables[42]
 end
end

Even so, this new fix will not work if two or more regional Dexes show the same region (e.g. Old and New Johto Dex). You will need to further alter it to make it work. Since this situation is so rare, it will not be explained here.

Please give credit to Maruno if this fix is used.

Players can access the storage screen Debug menu

When the $DEBUG flag is not set (i.e. during a regular game), and the player selects "Cancel" from the list of commands that appear when selecting a Pokémon (via the "Move Pokémon" option), the Debug menu will appear instead of closing the interact menu. The problem is in the def pbStartScreen beginning on line 549. To correct this, insert the following highlighted lines of code:

when 5 # Release
 pbRelease(selected,@heldpkmn)
when 6
 if $DEBUG
  pkmn=@heldpkmn ? @heldpkmn : pokemon
  command=@scene.pbShowCommands(_INTL("{1} is selected.",pkmn.name),[
     _INTL("SHOW VALUES"),
.
.
.
  when 8
   move=pbChooseMoveList
   if move!=0
     pbLearnMove(pkmn,move)
   end
  end
 else
  break
 end
end

Please give credit to Maruno if this fix is used.

Marking Pokémon causes the game to crash

When choosing the "Mark Pokémon" option for a Pokémon, the game crashes with a runtime error. This is due to a few errors in the scripts, which cause three separate errors.

To fix these bugs, look in the script section SpriteWindow and search for the version of the def drawItem shown below (which starts on line 3481). Add in the yellow highlighted parts, change the blue highlighted part from a comma to a full stop, and remove the red highlighted part:

def drawItem(index,count,rect)
 pbSetSystemFont(self.contents)
 rect=drawCursor(index,rect)
  if toUnformattedText(@commands[index]).gsub(/\n/,"")==@commands[index]
   # Use faster alternative for unformatted text without line breaks
   pbDrawShadowText(self.contents,rect.x,rect.y,rect.width,rect.height,@commands[index],
     self.baseColor,self.shadowColor)
  else
   chars=getFormattedText(
     self.contents,rect.x,rect.y,rect.width,rect.height,
     preamble+@commands[index],rect.height,true,true)
   drawFormattedChars(self.contents,chars)
  end
end

Please give credit to Maruno if this fix is used.

Selecting an empty party slot in battle

There is a minor bug in the Party screen that occurs when it is accessed during battle. If the player has just 1 Pokémon and presses right, they will end up selecting an empty party slot. If they press the Use button while selecting this slot, the game freezes for a second or so and then the screen resets.

To fix this, go to the script section PokemonScreen and find the def pbChangeSelection. Add in the following highlighted code:

when Input::RIGHT
 if currentsel==0 && @party.length>1 && @party[@rightcolumn]
  currentsel=@rightcolumn
 end

Please give credit to Maruno if this fix is used.

Experience bar is not shown on Pokémon summary screen page 2

On page 2 of the summary screens, the bar at the bottom right giving a visual representation of how far a Pokémon has progressed through its current level is not filled in. The experience bar has simply not been included in the scripts.

To add it in, go to the script section PokemonSummary and find the end of the def drawPageTwo. Add in the following highlighted lines:

 pbDrawTextPositions(overlay,textpos)
 drawMarkings(overlay,80,40,72,20,pokemon.markings)
 overlay.fill_rect(336,292,(pokemon.exp-startexp)*128/(endexp-startexp),2,Color.new(80,160,232)) if pokemon.level<PBExperience::MAXLEVEL
 overlay.fill_rect(336,294,(pokemon.exp-startexp)*128/(endexp-startexp),4,Color.new(136,200,248)) if pokemon.level<PBExperience::MAXLEVEL
end

Cards aren't added to the player's Triple Triad library

When the player buys a Triad card, or gains one from a battle, the card isn't added to their library. The money they pay for a card is still lost, however.

This bug is caused by the storage system for Triad cards starting itself from scratch each time it is accessed, thus erasing any cards previously added to it.

To fix this, find the following code in the script section PokemonTriad and add the highlighted part:

class PokemonGlobalMetadata
 attr_accessor :triads
 def triads
  @triads=TriadStorage.new if !@triads
  return @triads
 end
end

Please give credit to Killer_Nacho if this fix is used.

Using Surf requires the Cut badge

The CanUseMove handler for Surf checks whether the player owns the badge that allows the use of Cut outside battle. This is only noticeable when choosing to use Surf from the party screen, which players don't usually do as they can simply interact with water instead.

To fix this, simply change BADGEFORCUT to BADGEFORSURF in the above handler.

Using Waterfall crashes the game

When using the move Waterfall, either by interacting with the waterfall at its base or by surfing onto its crest, an error saying "wrong number of arguments(2 for 0)" appears and the game crashes. This is caused by two identical errors in the scripts.

In the script section PokemonHiddenMoves, in each of the defs pbAscendWaterfall and pbDescendWaterfall, find the following line and delete the highlighted part:

oldmovespeed=event.move_speed
terrain=Kernel.pbFacingTerrainTag(nil,event)
return if terrain!=PBTerrain::Waterfall && terrain!=PBTerrain::WaterfallCrest

Please give credit to Maruno if this fix is used.

Double battles don't work properly

All forms of double battle (i.e. using pbDoubleTrainerBattle and when two separate trainers spot you at the same time) don't appear to work, in that some of the battlers don't get the ability to choose an action.

This can be fixed by replacing some (which?) of the scripts with the equivalent from older versions of Essentials where they do work, but a proper solution needs to be found. ~ Maruno 03:07, March 6, 2011 (UTC)

I have come up with the fix for this. It is shown in the Battles page. ~ Maruno

Debug option Fill Box glitch

Versions: April 2010

How activate: Use "Fill Box" in Debug

Effect: Error message and close game:

Script 'PokemonDebug' line 361: NameError occurred.
uninitialized constant PokemonBox::MAXPOKEMON

How to fix:

I have the April 3rd not the April 13th version of Essentials so I hope there aren't any big changes between the two.

The error seems to originate from the section PokemonDebug in the definition pbDebugMenu under the part of an "else if" statement that says:

elsif cmd=="fillboxes"

After you find that. A couple lines down should be:

$PokemonStorage[(i-1)/PokemonBox::MAXPOKEMON,(i-1)%PokemonBox::MAXPOKEMON]=pkmn

However, PokemonBox::MAXPOKEMON is no longer a valid constant. Looking at other places that the constant was replaced yielded this line of code:

$PokemonStorage[(i-1)/$PokemonStorage.maxPokemon($PokemonStorage.currentBox),(i-1)%$PokemonStorage.maxPokemon($PokemonStorage.currentBox)]=pkmn

This seemed to make fillboxes work for me. However, I'm not that experienced at ruby coding would someone see if this is a possible fix.


It works fine now, however; on MultipleForms you have to comment out Shellos and Gastrodon. I'm not sure if it's because I haven't identified any maps for the two Pokémon to evolve at or FillBoxes can't process the getting of the game map. It's probably the first one though.

Move learning bug

Only the last pokemon to be used in a battle will learn new moves upon leveling up.

If a pokemon levels up from shared exp, either from swapping during a battle or by using the exp share item, it will not learn new moves.

This bug has been fixed. See the Battles page for the solution. ~ Maruno 17:57, May 1, 2011 (UTC)

Speech frame uses a different frame

http://www.pokecommunity.com/showpost.php?p=6619183&postcount=8828

The frame used for speech text boxes is different to the one chosen for use in the Options screen. This is because it (incorrectly) depends on the regular text box frame instead (note: is not the same as it, just depends on which regular text box frame is chosen).

The fix is on the PokeCommunity forum; see the link. This fix should be put in the Options screen article once it is created.

Even if you short the height the text goes too right, in some cases its goes above the windows border. To fix this in SpriteWindow, around line 2150 change the line "@trim=[@skinrect.x,@skinrect.y,@skinrect.x,@skinrect.y]" to "@trim=[@skinrect.x,@skinrect.y,@skinrect.x-16,@skinrect.y]".
This fix the message windows but mess with all others... I think that solution is put a "if" for SpeechFrames and TextFrames, but I don't know how to check this in this script, maybe "if @skinrect[0]==32". -FL- 19:45, July 9, 2011 (UTC)

Parlyz Heal has the wrong effect

How activate: Use Parlyz Heal in battle to cure Paralysis.

Effect: Parlyz Heal won't work in battle, you get back to the menu screen.

How fix: In PokemonDefaultItems, around line 750 change

ItemHandlers::BattleUseOnPokemon.copy(:CHESTOBERRY,:PARLYZHEAL)

to

ItemHandlers::BattleUseOnPokemon.copy(:CHERIBERRY,:PARLYZHEAL)

-FL- 01:06, June 5, 2011 (UTC)

Burn cuts both ATK and SPATK

How activate: Use a Special move witch burn status.

Effect: The burn cut the ATK AND SATK in half when its only cut the ATK.

How fix: In PokeBattle_Move, around line 430 delete

# Burns
 if attacker.status == PBStatuses::BURN && 
    !isConst?(attacker.ability,PBAbilities,:GUTS) && !isConst?(@id,PBMoves,:FACADE)
  damage=(damage/2).floor
 end

And around 340, below

 if isConst?(attacker.ability,PBAbilities,:FLASHFIRE) && attacker.effects[PBEffects::FlashFire] && isConst?(type,PBTypes,:FIRE)
  basedmg=(basedmg*1.5).floor
 end

Insert:

 # Burns Correction
 if attacker.status == PBStatuses::BURN && 
    !isConst?(attacker.ability,PBAbilities,:GUTS) && !isConst?(@id,PBMoves,:FACADE)
  atk=(atk*0.5).floor
 end

-FL- 01:06, June 5, 2011 (UTC)

Move cursor glitch when trying to select a non-existent move in battle

How activate: Have a pokémon with 3/4 moves, press up when selecting a move in top.

Effect: The cursor goes down, but the move selected doesn't change.

How fix: In PokeBattle_ActualScene, around line 1950 change

  nextindex=pbNextIndex(cw.index)
  if cw.index!=nextindex # Move cursor
   pbPlayCursorSE()
   cw.setIndex(nextindex)
  end
 end
end

to

nextindex=pbNextIndexFight(cw.index)
  if cw.index!=nextindex # Move cursor
   pbPlayCursorSE()
   cw.setIndex(nextindex)
  end
 end
end
def pbNextIndexFight(curindex)
 if Input.trigger?(Input::LEFT)
  curindex-=1
 elsif Input.trigger?(Input::RIGHT)
  curindex+=1
 elsif Input.trigger?(Input::UP)
  curindex-=2
 elsif Input.trigger?(Input::DOWN)
  curindex+=2
 end
 curindex+=4 if curindex<0
 curindex-=4 if curindex>3
 return curindex
end

-FL- 01:06, June 5, 2011 (UTC)

Sunny/rainy weather damage multipliers are wrong

How activate: Use a Fire/Water move on Rain Dance/Sunny Day.

Effect: The Fire moves on Sunny Day and Water moves on Rain dance have 200% damage when the right is 150%.

How fix: In PokeBattle_Move, around line 386 change

#Weather
weather=@battle.pbWeather
if weather==PBWeather::SUNNYDAY
  if isConst?(type,PBTypes,:FIRE)
   damage*=2
  elsif isConst?(type,PBTypes,:WATER)
   damage>>=1
  end
end
if weather==PBWeather::RAINDANCE
  if isConst?(type,PBTypes,:FIRE)
   damage>>=1
  elsif isConst?(type,PBTypes,:WATER)
   damage=(damage*2)
  end
end

to

#Weather
weather=@battle.pbWeather
if weather==PBWeather::SUNNYDAY
  if isConst?(type,PBTypes,:FIRE)
   damage=(damage*1.5).floor
  elsif isConst?(type,PBTypes,:WATER)
   damage=(damage*0.5).floor
  end
end
if weather==PBWeather::RAINDANCE
  if isConst?(type,PBTypes,:FIRE)
   damage=(damage*0.5).floor
  elsif isConst?(type,PBTypes,:WATER)
   damage=(damage*1.5).floor
  end
end

-FL- 01:06, June 5, 2011 (UTC)

Barrier moves apply to both ATK and SPATK

How activate: Use Reflect/Light Screen.

Effect: Both moves cuts half ATK AND SATK insteady of just one.

How fix: In PokeBattle_Move, around line 430 change

 #Reflect
 oppside=opponent.pbOwnSide
 if oppside.effects[PBEffects::Reflect] > 0
  if opponent.pbPartner.hp>0 # if opponent has a partner [TODO: should apply even if partner faints during an attack]
   damage=(damage*2/3).floor
  else
   damage=(damage/2).floor
  end
 end
 #Light Screen
 if oppside.effects[PBEffects::LightScreen] > 0
  if opponent.pbPartner.hp>0 # if opponent has a partner [TODO: should apply even if partner faints during an attack]
   damage=(damage*2/3).floor
  else
   damage=(damage/2).floor
  end
 end

to

 #Reflect fix
 oppside=opponent.pbOwnSide
 if oppside.effects[PBEffects::Reflect] > 0
  if opponent.pbPartner.hp>0 # if opponent has a partner [TODO: should apply even if partner faints during an attack]
   atk=(atk*2/3).floor
  else
   atk=(atk/2).floor
  end
 end
 #Light Screen fix
 if oppside.effects[PBEffects::LightScreen] > 0
  if opponent.pbPartner.hp>0 # if opponent has a partner [TODO: should apply even if partner faints during an attack]
   spatk=(spatk*2/3).floor
  else
   spatk=(spatk/2).floor
  end
 end

-FL- 01:06, June 5, 2011 (UTC)

SolarBeam double message glitch

How activate: Use SolarBeam.

Effect: BThe move message has displayed twice.

How fix: In PokeBattle_Move, around line 2350 delete the last three lines in:

class PokeBattle_Move_97 < PokeBattle_Move
def pbTwoTurnAttack(attacker)
 return attacker.effects[PBEffects::TwoTurnAttack]==0
end
def pbEffect(attacker,opponent)
 if attacker.effects[PBEffects::TwoTurnAttack]>0 && @battle.pbWeather!=PBWeather::SUNNYDAY
  @battle.pbAnimation(@id,attacker,nil)
  @battle.pbDisplay(_INTL("{1} took in sunlight!",attacker.pbThis))
  return 0
 else
  @battle.pbDisplayBrief(_INTL("{1} used {2}!",attacker.pbThis,
  self.name))

-FL- 01:06, June 5, 2011 (UTC)

SolarBeam double message, and isn't a one-turn move in sunny weather

How activate: Use SolarBeam.

Effect: The move message has displayed incorrectly and the move is used twice in Sunny Day.

How fix: In PokeBattle_Move, around line 2350 change

class PokeBattle_Move_97 < PokeBattle_Move
def pbTwoTurnAttack(attacker)
 return attacker.effects[PBEffects::TwoTurnAttack]==0
end
def pbEffect(attacker,opponent)
 if attacker.effects[PBEffects::TwoTurnAttack]>0 && @battle.pbWeather!=PBWeather::SUNNYDAY
  @battle.pbAnimation(@id,attacker,nil)
  @battle.pbDisplay(_INTL("{1} took in sunlight!",attacker.pbThis))
  return 0
 else
  @battle.pbDisplayBrief(_INTL("{1} used {2}!",attacker.pbThis,
  self.name))

to

class PokeBattle_Move_97 < PokeBattle_Move
def pbTwoTurnAttack(attacker)
 return false if @battle.pbWeather==PBWeather::SUNNYDAY
 return attacker.effects[PBEffects::TwoTurnAttack]==0
end
def pbEffect(attacker,opponent)
 if attacker.effects[PBEffects::TwoTurnAttack]>0 && @battle.pbWeather!=PBWeather::SUNNYDAY
  @battle.pbAnimation(@id,attacker,nil)
  @battle.pbDisplay(_INTL("{1} took in sunlight!",attacker.pbThis))
  return 0

-FL- 01:34, July 31, 2011 (UTC)

Item icon doesn't refresh after change in Bag

How activate: Sort, toss, sell an item or use the PC item.

Effect: The item graphics and description won't update if an item will be removed.

How fix: In PokemonBag, around line 420 change

def pbChooseItem
 @sprites["helpwindow"].visible=false
 itemwindow=@sprites["itemwindow"]
 itemwindow.refresh
 sorting=false

to

def pbChooseItem
 pbRefresh
 @sprites["helpwindow"].visible=false
 itemwindow=@sprites["itemwindow"]
 itemwindow.refresh
 sorting=false

And around line 480 in the same script change

    if sorting
     sorting=false
     tmp=thispocket[itemwindow.index]
     thispocket[itemwindow.index]=thispocket[sortindex]
     thispocket[sortindex]=tmp
     @sprites["itemwindow"].sortIndex=-1
     next
    else
     pbRefresh

to

    if sorting
     sorting=false
     tmp=thispocket[itemwindow.index]
     thispocket[itemwindow.index]=thispocket[sortindex]
     thispocket[sortindex]=tmp
     @sprites["itemwindow"].sortIndex=-1
     pbRefresh
     next
    else
     pbRefresh

And around line 590 in the same script change

def pbChooseItem
 @sprites["helpwindow"].visible=false
 itemwindow=@sprites["itemwindow"]
 itemwindow.refresh
 pbActivateWindow(@sprites,"itemwindow"){
 loop do

to

def pbChooseItem
 pbRefresh
 @sprites["helpwindow"].visible=false
 itemwindow=@sprites["itemwindow"]
 itemwindow.refresh
 pbActivateWindow(@sprites,"itemwindow"){
 loop do

-FL- 01:06, June 5, 2011 (UTC)

Double battle party screen doesn't show double battlers

How activate: Use an item like potion in double battle.

Effect: The selection screen is like single battle with only one active pokémon insteady of two.

How fix: In PokeBattle_ActualScene, around line 1970, change "pkmnlist.pbStartScene(@battle.party1,_INTL("Use on which Pokémon?"))" to "pkmnlist.pbStartScene(@battle.party1,_INTL("Use on which Pokémon?"),@battle.doublebattle)".

-FL- 01:06, June 5, 2011 (UTC)

Pokédex "List top" doesn't go to top of list

How activate: Press "z" and "List top" in the Pokédex.

Effect: The cursor goes to the second pokémon, not the first.

How fix: in PokemonPokedex, around line 750 change the 1 to 0 in this line :

@sprites["pokedex"].index=1

-FL- 01:06, June 5, 2011 (UTC)

Pokédex "List top/bottom" doesn't make Pokémon image refresh

How activate: Press Z and List Top or List Bottom in pokédex.

Effect: The pokémon graphics won't update.

How fix: In PokemonPokedex, around line 750 change

    pbDexSearch
   elsif Input.trigger?(Input::A)
    retval=pbMenu
    case retval
    when 1 # List Top
     @sprites["pokedex"].index=1
    when 2 # List Bottom
     @sprites["pokedex"].index=@sprites["pokedex"].count-1

to

    pbDexSearch
   elsif Input.trigger?(Input::A)
    retval=pbMenu
    case retval
    when 1 # List Top
     $PokemonGlobal.pokedexIndex=0
     pbRefreshDexList
    when 2 # List Bottom
     $PokemonGlobal.pokedexIndex=@sprites["pokedex"].count-1
     pbRefreshDexList($PokemonGlobal.pokedexIndex)

This also fix the List Top Glitch -FL- 01:06, June 5, 2011 (UTC)

Pokédex search options index bug

How activate: Change to other list (Alphabetical, Heaviest, etc...) when the index are in a high pokémon (like 300) and the list is shorter down (like 200) because of limitation of owned and seen.

Effect: Error message and close game:

Exception: NoMethodError
Message: undefined method `[]' for nil:NilClass
PokemonPokedex:18:in `species'
PokemonPokedex:322:in `pbRefreshDexList'
PokemonPokedex:197:in `pbStartScene'
PokemonPokedex:809:in `pbStartScreen'
PokemonMenu:148:in `pbStartPokemonMenu'
PokemonMenu:145:in `pbFadeOutIn'
PokemonMenu:145:in `pbStartPokemonMenu'
PokemonMenu:142:in `loop'
PokemonMenu:241:in `pbStartPokemonMenu'
Scene_Map:180:in `call_menu'

How fix: In PokemonPokedex, around line 680, after the line "$PokemonGlobal.pokedexMode=params[5]" add the line "$PokemonGlobal.pokedexIndex=0"

-FL- 01:06, June 5, 2011 (UTC)

Pokédex searches show unseen/unowned Pokémon

How activate: Use a Heaviest, Lightest, Tallest or Smallest mode on search while had numeric order.

Effect: The selection sorts pokémon that you don't owned and even pokémon taht you don't see!

How fix: I only discover the "seen" fix. In PokemonPokedex, around line 250 change

def pbGetDexList()
 dexlist=[]
 dexdata=pbOpenDexData
 region=pbGetPokedexRegion()
 regionalSpecies=pbAllRegionalSpecies(region)
 if regionalSpecies.length==1
  # No regional species defined,
  # use national Pokédex order
  for i in 1..PBSpecies.maxValue
   regionalSpecies.push(i)
  end
 end
 for i in 1...regionalSpecies.length
  nationalSpecies=regionalSpecies[i]
  if pbCanAddForModeList?($PokemonGlobal.pokedexMode,nationalSpecies)
   pbDexDataOffset(dexdata,nationalSpecies,33)
   height=dexdata.fgetw

to

def pbGetDexList(search=false)
 dexlist=[]
 dexdata=pbOpenDexData
 region=pbGetPokedexRegion()
 regionalSpecies=pbAllRegionalSpecies(region)
 if regionalSpecies.length==1
  # No regional species defined,
  # use national Pokédex order
  for i in 1..PBSpecies.maxValue
   regionalSpecies.push(i)
  end
 end
 for i in 1...regionalSpecies.length
  nationalSpecies=regionalSpecies[i]
  if (
    pbCanAddForModeList?($PokemonGlobal.pokedexMode,nationalSpecies)&&!search)||
   (pbCanAddForModeSearch?($PokemonGlobal.pokedexMode,nationalSpecies)&&search)
   pbDexDataOffset(dexdata,nationalSpecies,33)
   height=dexdata.fgetw

And around line 330 in the same script change

def pbSearchDexList(params)
 dexlist=pbGetDexList
 dexdata=pbOpenDexData()
 if params[0]!=0 # Filter by name
  nameCommands=[

to

def pbSearchDexList(params)
 dexlist=pbGetDexList(true)
 dexdata=pbOpenDexData()
 if params[0]!=0 # Filter by name
  nameCommands=[

-FL- 01:06, June 5, 2011 (UTC)

A full solution has now been implemented in Essentials. ~ Maruno 16:22, August 16, 2011 (UTC)

Pokemon cries will unnecessarily repeat in the summary menu

When holding the UP key when at the first Pokemon's summary, or holding DOWN when at the last Pokemon's summary, that Pokemon's cry will repreately play until you release the key. To fix, find:

if Input.trigger?(Input::UP)
        pbGoToPrevious

and

if Input.trigger?(Input::DOWN)
        pbGoToNext

in PokemonSummary, and change them to:

if Input.trigger?(Input::UP) && @partyindex>0
        pbGoToPrevious

and

if Input.trigger?(Input::DOWN) && @partyindex<@party.length-1
        pbGoToNext

respectively.

KitsuneKouta 05:09, July 28, 2011 (UTC)KitsuneKouta

Videos played with the Scene_Movie script don't correctly close when the B button is pressed

To fix it, add:

movie.call("close FILE",0,0,0)

right below:

if Input.trigger?(Input::B)

KitsuneKouta 05:10, July 28, 2011 (UTC)KitsuneKouta

Shell Bell doubles happiness gain from walking, not Soothe Bell

How activate: Equip Shell Bell and do 256 steps.

Effect: Shell Bell doubles the happiness gain for walk.

How fix: In the PokemonField Script, delete the lines:

      if isConst?(pkmn.item,PBItems,:SHELLBELL)
       pkmn.happiness+=1
      end

-FL- 01:34, July 31, 2011 (UTC)

"Reposition Sprites" crash in External Editor

Versions: 3rd April 2010

How activate: In external editor choose "Reposition Sprites"

Effect: Error message and close game:

Exception: NoMethodError
Message: undefined method `form' for #<PokeBattle_Pokemon:0x3999488>
PokemonUtilities:1168:in `pbLoadPokemonBitmapSpecies'
PokemonUtilities:1154:in `pbLoadPokemonBitmap'
PokemonSprite:22:in `setPokemonBitmap'
PokemonSpritePos:151:in `pbChangeSpecies'
PokemonSpritePos:187:in `pbSpecies'
PokemonSpritePos:181:in `loop'
PokemonSpritePos:201:in `pbSpecies'
PokemonSpritePos:307:in `pbStart'
PokemonSpritePos:306:in `loop'
PokemonSpritePos:314:in `pbStart'

How to fix: Unknown, but you can use the later version and copy/past the "pokemon.txt", since this command only edit the "pokemon.txt".

This bug is no longer present in the newer versions. ~ Maruno 23:30, October 7, 2011 (UTC)

Crash when descending waterfall

The following error pops up when attempting to descend a waterfall (in the demo, at least):

----
Pokemon Essentials
----
Exception: ArgumentError
Message: wrong number of arguments(2 for 0)
PokemonHiddenMoves:355:in `pbFacingTerrainTag'
PokemonHiddenMoves:355:in `pbDescendWaterfall
PokemonField:1136
PokemonField:1129:in `call'
PBEvent:54:in `trigger'
PBEvent:49:in `each'
PBEvent:49:in `trigger'
Game_Character_2:67:in `update_move'
Game_Character_2:6:in `update_old2'
Walk_Run:95:in `update'

I don't know what causes the error, therefore I have no idea how to fix it.

Naridar 15:42, September 1, 2011 (UTC)

Fixed. ~ Maruno 23:30, October 7, 2011 (UTC)

Game crashes when changing from a long Dex list to a shorter one

The Pokédex stores the index of the last species you look at, so that when you open the Pokédex again you will start off at the same point in the list you closed it at.

This causes a game-crashing error when you close the Pokédex while looking at a high-numbered species, and then change to another Dex list that isn't long enough to incorporate that high number (e.g. after looking at Unown in the National Dex (number 201), you change to the Kanto Regional Dex (which can only be 151 entries long at most)).

The error is caused because the game only remembers one number for the "last species looked at", and tries to apply it regardless of which Dex list you are opening. If the index number is invalid (i.e. larger than the length of the list), the game will crash.

To fix this, you will need to use a Global Variable (e.g. 42) to store a number depending on which Dex list you want to look at (not necessarily the same as the region ID numbers), e.g.

  • 0 - National Dex
  • 1 - Kanto Regional Dex
  • 2 - Johto Regional Dex

This Global Variable should be set when the game chooses which Dex list to look at (i.e. in the script section PokemonPokedex in the def pbGetPokedexRegion). You may already have a Global Variable set up that does this (e.g. if you have added in a way to manually change between different Dex lists).

In the script section PokemonPokedex, there are four instances of $PokemonGlobal.pokedexIndex. This stores a single number (the index), but we want to have it store an array of numbers instead (one for each Dex list). To do this, edit each instance of this code to:

$PokemonGlobal.pokedexIndex[$game_variables[42]]

This will have the Pokédex load and save the index number to an array depending on which Dex list is currently being browsed.

Please give credit to Maruno if this fix is used.

Registering in the phone without having the Pokégear

When a trainer that can be rebattled is defeated, they will be registered in the phone regardless of whether or not the player has obtained the Pokégear. A message saying that the player has registered them in the Pokégear will appear even if they don't have one.

To correct this, in the script section Compiler find the def pbConvertToTrainerEvent. Find the following code (search for "pbPhoneRegisterBattle") and add in the highlighted lines/change the highlighted numbers:

pbPushBranch(firstpage.list,
   sprintf("pbTrainerBattle(%s,_I(\"%s\"),%s,%d)",safetrcombo,safequote2(espeech),doublebattle ? "true" : "false",battleid)
)
if battles.length>1
  pbPushBranch(firstpage.list,sprintf("$Trainer.pokegear && !pbFindPhoneTrainer(%s)",safetrcombo"),1)
  if regspeech
    pbPushText(firstpage.list,regspeech,2)
  end
  pbPushScript(firstpage.list,sprintf("pbPhoneRegisterBattle(get_character(0),%s,%d)",safetrcombo,battles.length),2)
  pbPushBranchEnd(firstpage.list,2)
end
espeech=(endspeeches[0]) ? endspeeches[0] : "..."

Then, a little further down, find the following code (search for "...") and add in the highlighted lines:

  pbPushExit(thirdpage.list,1)
  pbPushBranchEnd(thirdpage.list,1)
end
ebattle=(endbattles[0]) ? endbattles[0] : "..."
if battles.length>1
  pbPushBranch(secondpage.list,sprintf("$Trainer.pokegear && !pbFindPhoneTrainer(%s)",safetrcombo))
  if regspeech
    pbPushText(secondpage.list,regspeech,1)
  end
  pbPushScript(secondpage.list,sprintf("pbPhoneRegisterBattle(get_character(0),%s,%d)",safetrcombo,battles.length),1)
  pbPushBranchEnd(secondpage.list,1)
end
pbPushText(secondpage.list,ebattle)
pbPushExit(secondpage.list,1)
pbPushEnd(thirdpage.list)

This will change the way events are compiled, so that the trainer will only be registered if the player has a Pokégear. If they don't, then the first battle ends as normal. After that, if the trainer is talked to again, the player will register them if they now have the Pokégear, or say the usual phrase if they don't (or if they're already registered).

There is still no way for the player to choose whether to register the trainer or not - if the player has a Pokégear, the trainer will definitely be registered in the phone. To add in the option, you can edit the trainer events to include the choice, around both places in the events that register the trainer (remember to remove the comments if you do so).


Please give credit to Maruno if this fix is used.

"VanishIfSwitch" comment for trainers doesn't erase the sprite

Trainer Battle "VanishIfSwitch:" doesn't work

It creates a new page on the event but the page still has the trainer graphic instead of no graphic at all

Desbrina 23:48, September 7, 2011 (UTC)

"Edit Trainer" in External Editor crash

In the last editor version, the "edit trainer" option is buged, when you try to save he following error show up.

Exception: NoMethodError
Message: undefined method `pbSaveTrainerNames' for nil:NilClass
PokemonTrainers:66:in `pbConvertTrainerData'
PokemonTrainers:99:in `pbNewTrainer'
PokemonEditor:3411:in `pbTrainerBattleEditor'
PokemonEditor:3368:in `pbListScreenBlock'
PokemonEditor:1522:in `loop'
PokemonEditor:1547:in `pbListScreenBlock'
PokemonEditor:3368:in `pbTrainerBattleEditor'
EditorMain:252:in `pbEditorMenu'
EditorMain:252:in `pbFadeOutIn'
EditorMain:252:in `pbEditorMenu'
This is a known bug, and will be fixed in the next version of Essentials. A fix is available in the Essentials thread on PokéCommunity. Alternatively, create your new trainers using the debug menu within the game, or by typing them manually into the PBS file trainertypes.txt. ~ Maruno 23:47, December 10, 2011 (UTC)

Evolving Mantyke causes the game to crash

How activate: Evolve Mantyke using it evolution method.

Effect: Error message and close game:

Exception: NoMethodError
Message: undefined method `each' for 5:Fixnum

PokemonEvolution:527:in `pbMiniCheckEvolution'
PokemonEvolution:587:in `pbCheckEvolution'
PokemonEvolution:586:in `pbCheckEvolutionEx'
PokemonEvolution:577:in `each'
PokemonEvolution:577:in `pbCheckEvolutionEx'
PokemonEvolution:586:in `pbCheckEvolution'
PokemonDefaultItems:483:in `pbChangeLevel'
PokemonDefaultItems:500
PokemonDefaultItems:495:in `call'
PBEvent:146:in `trigger'

This exception was logged in ./errorlog.txt.Press Ctrl+C to copy this message to the clipboard.

How fix: In PokemonEvolution Script, around line 530 change the line "for i in $Trainer.party.length" to "for i in 0...$Trainer.party.length"

-FL- 15:31, January 8, 2012 (UTC)

Manaphy can't generate a Phione Egg

How activate: Make a Phione Egg using Manaphy.

Effect: The egg hatch in Manaphy

How fix: In PokemonDayCare Script, around line 175, after "getConst(PBSpecies,:ILLUMISE)][rand(2)]" put:

elsif isConst?(babyspecies,PBSpecies,:MANAPHY)    
 babyspecies=getConst(PBSpecies,:PHIONE)

-FL- 15:31, January 8, 2012 (UTC)

This "fix" is already in Essentials, and is about 20 lines above where you said to add your new code. ~ Maruno 01:09, January 13, 2012 (UTC)

Shadow Tag effect remains after the user is defeated in double battles

How activate: In double battle, fight versus a pokémon with Shadow Tag and defeat it.

Effect: Even if this pokémon with Shadow Tag is defeated, the ability effect remains on pokémon in field

How fix: Unknown

-FL- 15:31, January 8, 2012 (UTC)

The fix is to find the two lines about Shadow Tag, and add in the yellow parts:
opp=opp1 if isConst?(opp1.ability,PBAbilities,:SHADOWTAG) && opp1.hp>0
opp=opp2 if isConst?(opp2.ability,PBAbilities,:SHADOWTAG) && opp2.hp>0
Do the same for Magnet Pull and Arena Trap. The problem is that, if a fainted Pokémon isn't replaced in battle (which can only happen in double battles), that fainted Pokémon remains on the field, just with no HP and no turn. Its ability, therefore, is still in effect unless you add this fix. ~ Maruno 01:09, January 13, 2012 (UTC)

Compiling trainer events causes a crash if information is missing

---------------------------
Pokemon dark ruby
---------------------------
Exception: NoMethodError
 
Message: private method `gsub' called for nil:NilClass

Compiler:2669:in `safequote'
Compiler:3799:in `pbConvertToTrainerEvent'
Compiler:2926:in `pbCompileTrainerEvents'
Compiler:2921:in `each'
Compiler:2921:in `pbCompileTrainerEvents'
Compiler:2916:in `each'
Compiler:2916:in `pbCompileTrainerEvents'
Compiler:4025:in `pbCompileAllData'
Compiler:4120

This exception was logged in 
C:\Users\me\Saved Games/Pokemon dark ruby/errorlog.txt.
Press Ctrl+C to copy this message to the clipboard.
---------------------------

can someone please fix this

(94.171.120.90 21:17, January 25, 2012 (UTC))

You've made a trainer event using comments, but you haven't included a comment which defines what the trainer's name is. You need to include all the required information if you want things to work. ~ Maruno 22:05, January 25, 2012 (UTC)

Editor puts quote marks around BattleBack value

When a map's "BattleBack" metadata is set via the Editor (e.g. to Mystic), this will be saved to the PBS file "metadata.txt" as follows:

BattleBack="Mystic"

These quote marks are counted as part of the filename, meaning it would use background pictures called battlebg"Mystic".png and so forth. This is incorrect, as the quote marks should not be there.

Currently, the only way around this problem is to go into the PBS file "metadata.txt" afterwards and remove the quote marks manually (or simply type in the line directly).

This still happens, but the way it is used has changed as of version 6. It now ignores the quote marks, so this is no longer a problem. ~ Maruno 21:02, April 23, 2012 (UTC)

Double battles: Throwing out Pokémon at the start

When in a double battle against two separate trainers, messages such as "Dave sent out Pikachu!" appear (one for each enemy trainer). However, these messages pause for a couple of seconds to allow time for the throwing animation to play, but no throwing animation is shown - there is just a pause there instead. It's only when the second message (for enemy trainer 2) is shown that both enemy trainers then throw out their Pokémon. What should happen is that enemy trainer 1 shows their message and throws out their Pokémon, then enemy trainer 2 shows their message and throws out theirs.

I've tried to fix this myself, but to no avail. The script that handles this is in PokeBattle_Battle, around line 605 ("Initialize opponents in double battles"). The main problem I'm coming up against is that both enemy trainers slide off-screen at the same time, not one after the other when they throw their Pokémon out. This is due to the class "TrainerFadeAnimation" (in PokeBattle_ActualScene), which does them both at the same time (along with the enemy ball icons that show how many Pokémon they have). That will need to be edited somehow to account for which enemy trainer needs moving, and only animate that trainer. ~ Maruno 16:31, March 6, 2011 (UTC)

Fixed as of version 6. ~ Maruno 19:59, May 2, 2012 (UTC)

Credits stop scrolling at 240x160 resolution

How activate: Show the credits script with the 240x160 resolution

Effect: Only few lines of credits are show because the credits stop scrolling when the @credit_sprite.oy is 0.

How fix: Unknown

-FL- 01:34, July 31, 2011 (UTC)

The way credits scroll was overhauled in version 6. ~ Maruno 19:59, May 2, 2012 (UTC)

Saving changes to pokemon.txt in the Editor deletes the regional numbers

How activate: Put regional numbers and edits something using the Editor or even reposition sprites

Effect: Editor delete all the regional numbers.

How fix: Open the editor scripts (to do this temporarily rename the EditorScripts.rxdata to Scripts.rxdata). In PokemonEditor, after the line 'eggEmerald=File.open("Data/eggEmerald.dat","rb")' add:

regionaldata=File.open("Data/regionals.dat","rb")
numRegions=regionaldata.fgetw
numDexDatas=regionaldata.fgetw

and BEFORE 'if metrics' add:

regionallist=[]
for region in 0...numRegions
 regionaldata.pos=4+region*numDexDatas*2+(i*2)
 regionallist.push(regionaldata.fgetw)
end
numb = regionallist.size-1
while (numb>=0) # remove every 0 at end of array 
 (regionallist[numb] == 0) ? regionallist.pop : break
 numb-=1
end
if !regionallist.empty?
 pokedata.write("RegionalNumbers="+regionallist[0].to_s)
 for numb in 1...regionallist.size
  pokedata.write(","+regionallist[numb].to_s)
 end
 pokedata.write("\r\n")
end

And after 'atkdata.close' put 'regionaldata.close'

-FL- 14:35, March 18, 2012 (UTC)

Heavy Ball can't be used in battle

How activate: Use Heavy Ball in battle.

Effect: The Ball wasn't used and you return to the action selection.

How fix: In PokemonBalls change 'pbDexDataOffset(dexdata,battler,35)' to 'pbDexDataOffset(dexdata,battler.species ,35)'.

-FL- 19:49, April 14, 2012 (UTC)

Fast Ball uses the Pokémon's current speed rather than its species' base speed

How activate: Use Fast Ball in battle.

Effect: The ball uses pokémon speed instead of base speed to define its effect.

How fix: In PokemonBalls change 'catchRate*=4 if battler.speed>=100' to

dexdata=pbOpenDexData
pbDexDataOffset(dexdata,battler.species,13)
basespeed=dexdata.fgetb
dexdata.close
catchRate*=4 if basespeed>=100

-FL- 19:49, April 14, 2012 (UTC)

Battle music continues playing from where it broke off in previous battle

Versions: April 2010

How activate: Enter in a battle (wild or trainer)

Effect: The battle music Starts in middle and when battle ends, the next battle continues playing the music in point that the last battle stopped.

How to fix:

Try deleting the "Audio.dll" file (it messes with the MIDIs, which is what a lot of the music in the kit is). If that doesn't fix it (it may leave the intro MIDI playing into the battle until finished), then find:

trainer=pbLoadTrainer(trainerid,trainername,trainerparty)

and change it to:

Audio.me_fade(2500)
trainer=pbLoadTrainer(trainerid,trainername,trainerparty)
pbWait(20)
Audio.me_stop
Audio.bgm_stop

Battle music continues playing from where it broke off in previous battle

Versions: April 2010

How activate: Enter in a battle (wild or trainer)

Effect: The battle music Starts in middle and when battle ends, the next battle continues playing the music in point that the last battle stopped.

How to fix:

Try deleting the "Audio.dll" file (it messes with the MIDIs, which is what a lot of the music in the kit is). If that doesn't fix it (it may leave the intro MIDI playing into the battle until finished), then find:

trainer=pbLoadTrainer(trainerid,trainername,trainerparty)

and change it to:

Audio.me_fade(2500)
trainer=pbLoadTrainer(trainerid,trainername,trainerparty)
pbWait(20)
Audio.me_stop
Audio.bgm_stop

Not all battle participants gain Exp after a draw

How activate: You need to put two or more pokémon to participate in battle (to gain exp). Have a pokémon that defeat the opponent and goes faint in the same turn (like when using Explosion).

Effect: The other pokémon don't gain exp.

How fix: Unknown

-FL- 01:06, June 5, 2011 (UTC)

I think this bug has been fixed. ~ Maruno 00:36, May 23, 2012 (UTC)

Battle Tower opponents can't attack

How activate: Attack on Battle Tower.

Effect: Your opponent can't attack on Battle Tower.

How fix: In PokeBattle_AI change the line "pbRegisterMove(index,i,false)" to "pbRegisterMove(index,i)"

-FL- 01:06, June 5, 2011 (UTC)

Battle Tower, can keep rental Pokémon

How activate: Finish a challenge at Battle Tower.

Effect: You abruptly exit for tower, but you party remain the same (the pokémon that aren't in the challenge disappeared) and you streak aren't saved.

How fix: In PokemonOrgBattle, change "return pbInProgress? && (challenge<0 || @currentChallenge==challenge)" to "return pbInProgress? && (challenge>0 || @currentChallenge==challenge)". In PokemonOrgBattleRules, after the first "def pbCancel" put "$Trainer.party=@oldParty if @oldParty!=nil".

-FL- 01:06, June 5, 2011 (UTC)

Battle Tower Lv50 challenge has Lv100 opponents

How activate: Go to the Level 50 challenge at Battle Tower.

Effect: The opponent are in level 100.

How fix: In PokemonOrgBattleRules change the line "adj1=getTheirAdjustment(team2,team1)" to "adj2=getTheirAdjustment(team2,team1)"

-FL- 01:06, June 5, 2011 (UTC)

The modified levels of your Pokémon in Battle Tower aren't changed back at the end

How activate: Go to level 50 challenge at battle tower and exit.

Effect: The pokémon levels that are above 50 will be 50 and won't turn back.

How fix: In PokemonOrgBattleRules, after "if exp && team1[i].exp!=exp" put the line "team1[i].exp=exp", and after "if exp && team2[i].exp!=exp" put the line "team2[i].exp=exp".

-FL- 17:39, February 18, 2012 (UTC)

The first Battle Tower event cancel won't work

How activate: In Battle Tower event choose cancel.

Effect: The cancel won't work.

How fix: In Show choices in Battle Tower event, put after the "Cancel" lines the "Exit Event Processing".

-FL- 17:39, February 18, 2012 (UTC)

The Battle Tower results event won't display results

How activate: Talk with results events.

Effect: The results aways will be "0".

How fix: This error occurs because of battle tower split for "Level 50" and "Open level", put this event isn't updated. Change the '(0)' on event script to '("towersingle")' to display single level 50 results or to '("towersingleopen")' to display single open level results. To double records change '(1)' on event script to '("towerdouble")' to display double level 50 results or to '("towerdoubleopen")' to display double open level results.

-FL- 17:39, February 18, 2012 (UTC)

The Battle Tower streak count doesn't work

How activate: Wins 7 battles in Battle Tower.

Effect: You start with 0 wins.

How fix: In PokemonOrgBattle, change "if challenge.wins==1" to "if challenge.decision==1"

-FL- 17:39, February 18, 2012 (UTC)

Cancelling from the party screen while choosing the Battle Tower order causes the game to crash

How activate: In Battle Tower choose order screen press cancel.

Effect: After take one step the Daycare check for eggs crash the game because the player party vanishes. Error message:

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

PokemonDayCare:437
PokemonDayCare:385:in `call'
PBEvent:58:in `trigger'
PBEvent:52:in `each'
PBEvent:52:in `trigger'
PokemonField:1105:in `pbOnStepTaken'
Game_Player_:438:in `update_old'
Walk_Run:77:in `update'
Scene_Map:97:in `update'
Scene_Map:94:in `loop'

How fix: In PokemonOrgBattle change line "pbBattleChallenge.setParty(ret)" to "pbBattleChallenge.setParty(ret) if ret!=nil"

-FL- 17:39, February 18, 2012 (UTC)

Confirm less that number of pokémon required at Battle Tower choose order screen causes game to crash

How activate: In Battle Tower choose less that number of pokémon required and confirm.

Effect: The game crashes and show the error message:

Exception: Exception: RuntimeError
Message: Script error within event 2, map 16 (Battle Tower):
Exception: NoMethodError
Message: Section091:1132:in `pbPokemonMultipleEntryScreenEx'
undefined method `name' for nil:NilClass***

Full script:!pbEntryScreen(3,100)
Interpreter:239:in `pbExecuteScript'
PokemonScreen:1081:in `loop'
PokemonScreen:1148:in `pbPokemonMultipleEntryScreenEx'
PokemonOrgBattle:718:in `pbEntryScreen'
PokemonOrgBattle:715:in `pbFadeOutIn'
PokemonOrgBattle:715:in `pbEntryScreen'

(eval):1:in `pbExecuteScript'
Interpreter:785:in `eval'
Interpreter:239:in `pbExecuteScript'
Interpreter:785:in `command_111'
Interpreter:274:in `pbExecuteScript'
Interpreter:785:in `command_111'
Interpreter:318:in `execute_command'
Interpreter:191:in `update'
Interpreter:104:in `loop'
Interpreter:196:in `update'
Scene_Map:96:in `update'
Scene_Map:94:in `loop'
Scene_Map:107:in `update'
Scene_Map:63:in `main'

How fix: In PokemonScreen change line "command=@scene.pbShowCommands(_INTL("Do what with {1}?",pkmn.name),commands)" (the first one) to "command=@scene.pbShowCommands(_INTL("Do what with {1}?",pkmn.name),commands) if pkmn!=nil"

-FL- 17:39, February 18, 2012 (UTC)

Some battle transitions don't look right at custom resolutions

How activate: When you have a resolution other that 480x320 enter in a battle

Effect: Animation of the screen getting black and change to battle is incorrectly centered.

How fix: Unknown

-FL- 01:34, July 31, 2011 (UTC)

Compiling causes problems with the text boxes

After compiling a game, the text in the text boxes moved down and leaves a gap at the top. This image shows it better

Desbrina 12:36, December 10, 2011 (UTC)

"You don't have permission to access /SS/issue.png on this server." I've not experienced anything like this problem, and I've recompiled the game plenty during my updates. It might be something you've done in your game. ~ Maruno 22:38, December 10, 2011 (UTC)
The link works ok for me now, don't know what happened there. i don't seem to be the only one with this issue. Evil Arms at PC seems to have the same problem. It happens after compliling and encrypting the game to an exe. I'll try it on a new project just in case, but i seem to remember it'd been there from the start
Desbrina 23:15, December 10, 2011 (UTC)
Oh, I don't know about encrypting the game. I've never done that, and I don't even know what's involved. Raptor EX was encrypted, and that's fine (of course, it's a very old version of Essentials). Let me know if encrypting causes the problem.
I can see the image now. What's happened is that the text hasn't moved; the text box has just gotten taller. Tell me: do you still have your graphics folder with the encrypted game? If not, does adding it fix the problem? Just a hunch. ~ Maruno 23:47, December 10, 2011 (UTC)
I can't check the encryting at the moment but i will when i get the chance
Once its encryted the graphics folder is contained within this encrypted file. I'll try adding it back afterwards
Desbrina 13:30, December 11, 2011 (UTC)
Edit: Looks like the issue is due to the text files in the windowskins folder being missing, without them the issue is there, with them its fine
Desbrina 14:44, December 11, 2011 (UTC)
Evil Arms confirmed that is the issue as well
Desbrina 15:19, December 11, 2011 (UTC)
See "Speech frame uses a different frame" at Known bugs/Old bugs, I don't know why this is moved for this page. A quick pseudo-fix is to use the third/fourth as the default one. -FL- 16:57, December 11, 2011 (UTC)
Yes, the text files somehow being missing was what I thought the problem was. Since the files aren't included in the compression, they don't provide custom margins, so Essentials uses default values which happen to be wrong for the text skins it uses. The question is, why do they go missing?
Ideally we would just fix the missing files problem, but if we can't, perhaps instead we could change the default margins and redraw all skin files appropriately. Someone will need to play with various values and see if they can come up with something that will allow all skins to be shown without needing the txt files, and with the text in the right place. At a quick guess, how about making the trim/body margins 32,16,16,16 instead, and extending the text area for text in system frames (i.e. uses $PokemonSystem.frame) 16 pixels to the left? I don't know much about this; there might be some other issues with text placement too. ~ Maruno 19:45, December 11, 2011 (UTC)
I finally manage to fix the Windows issue! You only need to define the skins in script rather that the txt files on Graphics folder. Search for "def loadSkinFile(file)" on SpriteWindow Script. Change the
def loadSkinFile(file)
 begin
   data=load_data(file).split("\n")
   # Body = X, Y, width, height of body rectangle within windowskin
   bodyRE=/[Bb]ody\s*=\s*(\-?\d+)\s*,\s*(\-?\d+)\s*,\s*(\-?\d+)\s*,\s*(\-?\d+)\s*/
   # Trim = X, Y, width, height of trim rectangle within windowskin
   trimRE=/[Tt]rim\s*=\s*(\-?\d+)\s*,\s*(\-?\d+)\s*,\s*(\-?\d+)\s*,\s*(\-?\d+)\s*/
   for line in data
     if line[bodyRE]
      @skinrect.set($~[1].to_i,$~[2].to_i,$~[3].to_i,$~[4].to_i)
     end
     if line[trimRE]
      @trim=[$~[1].to_i,$~[2].to_i,$~[3].to_i,$~[4].to_i]
     end
   end
   privRefresh(true)
 rescue Errno::ENOENT, Errno::EINVAL
   # ignore
 rescue
   raise
 end
end

to

def loadSkinFile(file)
 if(file.to_s.size>29)
  name=(file.to_s[0,file.size-4])[25,20]
  if(name[0,7]=="textbox")
   # Body = X, Y, width, height of body rectangle within windowskin
   @skinrect.set(32,16,16,16)
   # Trim = X, Y, width, height of trim rectangle within windowskin
   @trim=[32,16,16,16]
  else  
   case name
   when "rstextskin"
    @skinrect.set(32,32,16,16)
    @trim=[32,16,16,48]
   when "rstextskin2"
    @skinrect.set(32,16,16,16)
    @trim=[32,16,16,16]
   when "frlgtextskin"
    @skinrect.set(32,32,16,16)
    @trim=[32,16,16,48]
   when "emtextskin"
    @skinrect.set(32,16,16,16)
    @trim=[32,16,16,16]
   end
  end  
 end
end

or

def loadSkinFile(file)
 if(file.to_s.size>29)
  name=(file.to_s[0,file.size-4])[25,20]
  case name
  when "rstextskin"
   # Body = X, Y, width, height of body rectangle within windowskin
   @skinrect.set(32,32,16,16)
   # Trim = X, Y, width, height of trim rectangle within windowskin
   @trim=[32,16,16,48]
  when "rstextskin2"
   @skinrect.set(32,16,16,16)
   @trim=[32,16,16,16]
  when "frlgtextskin"
   @skinrect.set(32,32,16,16)
   @trim=[32,16,16,48]
  when "emtextskin"
   @skinrect.set(32,16,16,16)
   @trim=[32,16,16,16]
  when "textbox0"
   @skinrect.set(32,16,16,16)
   @trim=[32,16,16,16]
  when "textbox1"
   @skinrect.set(32,16,16,16)
   @trim=[32,16,16,16]
  when "textbox2"
   @skinrect.set(32,16,16,16)
   @trim=[32,16,16,16]
  when "textbox3"
   @skinrect.set(32,16,16,16)
   @trim=[32,16,16,16]
  when "textbox4"
   @skinrect.set(32,16,16,16)
   @trim=[32,16,16,16]
  when "textbox5"
   @skinrect.set(32,16,16,16)
   @trim=[32,16,16,16]
  when "textbox6"
   @skinrect.set(32,16,16,16)
   @trim=[32,16,16,16]
  when "textbox7"
   @skinrect.set(32,16,16,16)
   @trim=[32,16,16,16]
  when "textbox8"
   @skinrect.set(32,16,16,16)
   @trim=[32,16,16,16]
  when "textbox9"
   @skinrect.set(32,16,16,16)
   @trim=[32,16,16,16]
  when "textbox10"
   @skinrect.set(32,16,16,16)
   @trim=[32,16,16,16]
  when "textbox11"
   @skinrect.set(32,16,16,16)
   @trim=[32,16,16,16]
  when "textbox12"
   @skinrect.set(32,16,16,16)
   @trim=[32,16,16,16]
  when "textbox13"
   @skinrect.set(32,16,16,16)
   @trim=[32,16,16,16]
  when "textbox14"
   @skinrect.set(32,16,16,16)
   @trim=[32,16,16,16]
  when "textbox15"
   @skinrect.set(32,16,16,16)
   @trim=[32,16,16,16]
  when "textbox16"
   @skinrect.set(32,16,16,16)
   @trim=[32,16,16,16]
  when "textbox17"
   @skinrect.set(32,16,16,16)
   @trim=[32,16,16,16]
  when "textbox18"
   @skinrect.set(32,16,16,16)
   @trim=[32,16,16,16]
  when "textbox19"
   @skinrect.set(32,16,16,16)
   @trim=[32,16,16,16]
  end
 end
end

-FL- 18:57, January 28, 2012 (UTC)

Fixed in version 7. The trim and rectangle now depends on the skin's dimensions rather than on text files. ~ Maruno 00:36, May 23, 2012 (UTC)

Trainer have an 1 in 8192 to use a shiny pokémon

How activate: Have lots of luck when battle a trainer that doesn't use a Shiny Pokémon.

Effect: The trainer pokémon has 1/8192 chance to be Shiny.

How fix: In PokemonTrainers, after line 'pokemon.makeShiny rescue nil' put line 'else; pokemon.makeNoShiny rescue nil'. On PokeBattle_Pokemon, before line 'def calcHP(base,level,iv,ev)' put:

def makeNoShiny #mod
 while isShiny?
  rnd=rand(65536)
  rnd|=(rnd<<15)
  rnd&=0xFFFFFFF8
  rnd|=rand(8)
  self.personalID=rnd^@trainerID
  calcStats
 end
end

-FL- 22:28, May 1, 2012 (UTC)

There is no gap between inflicting a move's damage and various end-of-round HP losses

How activate: Use Leech Seed. In the next turn be the last to attack and uses a damage move.

Effect: You can't visually notices when the attack damage is over and the leech seed damage start.

How fix: In PokeBattle_Battle, after the line "if i.effects[PBEffects::LeechSeed]>=0" add "pbWait(16)"

-FL- 18:57, January 28, 2012 (UTC)

Move route command allows running

How activate: Have conditions to run. Keep the run button pressed util one move route event start.

Effect: You goes running in this move route event. In certain samples maps move routes events the game crashes and show the error message:

Exception: NoMethodError
Message: undefined method `skippable' for nil:NilClass
Game_Character_2:169:in `move_type_custom'
Game_Character_2:23:in `update_old2'
Walk_Run:95:in `update'
Game_Player_:408:in `update_old'
Walk_Run:74:in `update'
Scene_Map:85:in `miniupdate'
Scene_Map:83:in `loop'
Scene_Map:95:in `miniupdate'
PokemonMessages:147:in `pbUpdateSceneMap'
PokemonMessages:1735:in `pbWait'

How fix: In Walk_Run remove all '!pbMapInterpreterRunning? &&' and add one before '$PokemonGlobal.runningShoes &&'.

-FL- 23:17, April 7, 2012 (UTC)

Battery Low save option can mess with some events options

How activate: Have a notebook with low battery while running events, menu or script, for example the one in Sample Map that can't allow your pass without a Pokémon. When the save message pops up, save.

Effect: When the game resumes, the event or script won't continues. In the above example you can even pass for this event without a pokémon.

How fix: There is no easy fix, the best and easy thing that I can think is to disable the save option and only shows a alert. Maybe is even better to show a picture on screen with "Battery Low" text. To shows only a default message without the save option, in PokemonField change

if Kernel.pbConfirmMessage(_INTL("The game has detected that the battery is low.  Would you like to save the game now?"))
 pbSaveScreen
elsif Kernel.pbConfirmMessage(_INTL("You may lose your progress if you don't save.  Would you like to save now?"))
 pbSaveScreen
end

to 'Kernel.pbMessage(_INTL("The game has detected that the battery is low."))'

-FL- 13:10, February 26, 2012 (UTC)

Crash when planting berry

The following error happens when trying to plant a berry in Version 6 (2012-04-23), in the demo.

---------------------------
Pokemon Essentials
---------------------------
Exception: RuntimeError
Message: Script error within event 27, map 11 (Test Map):
Exception: NameError
Message: Section086:249:in `pbBerryPlant'uninitialized constant BERRYVALUES
***Full script:
pbBerryPlant

Interpreter:243:in `pbExecuteScript'
(eval):1:in `pbExecuteScript'
Interpreter:1593:in `eval'
Interpreter:243:in `pbExecuteScript'
Interpreter:1593:in `command_355'
Interpreter:494:in `execute_command'
Interpreter:193:in `update'
Interpreter:106:in `loop'
Interpreter:198:in `update'
Scene_Map:103:in `update'

Interpreter:276:in `pbExecuteScript'
Interpreter:1593:in `command_355'
Interpreter:494:in `execute_command'
Interpreter:193:in `update'
Interpreter:106:in `loop'
Interpreter:198:in `update'
Scene_Map:103:in `update'
Scene_Map:101:in `loop'
Scene_Map:114:in `update'
Scene_Map:68:in `main'

Naridar 19:08, April 23, 2012 (UTC)

In the script section PokemonBerryPlants, go to line 249 and add in the highlighted part:
berryvalues=BerryPlantSprite::BERRYVALUES[0] if !berryvalues
~ Maruno 19:41, April 23, 2012 (UTC)

Using Revive with only one pokémon in double battles mess the game

How activate: Use Revive/Max Revive/Revival Herb in double battle when you have only one unfainted pokémon.

Effect: If you revive your partner, the battle is messed, if you revive other pokémon on party it only is send when the turn ends.

How fix: In PokemonDefaultItems change every line 'battler.pbInitialize(pokemon,pkmnindex,false) if battler' to

for i in 0...$Trainer.party.length
  if $Trainer.party[i]==pokemon
    battler.pbInitialize(pokemon,i,false) if battler
    break
  end  
end

In PokeBattle_ActualScene, before line 'endscene=true' add:

checker=-1
pkmnid=-1

After line 'pkmnid=pkmnlist.pbChoosePokemon' add

checker=0 if @battle.doublebattle && @battle.battlers[0].hp<=0
checker=2 if @battle.doublebattle && @battle.battlers[2].hp<=0

After line 'pbFadeInAndShow(@sprites,oldsprites)' put

if(checker>-1 && @battle.battlers[checker].hp>0) #doublerevive
  @battle.pbSendOut(checker,$Trainer.party[pkmnid]) 
end
@battle.pbSwitch

-FL- 22:28, May 1, 2012 (UTC)

Using a Ball in double battle mess the game

How activate: Use a Ball in double battle (wild or trainer)

Effect: The battle is messed.

How fix: In PokemonDefaultItems change line 'if !pbIsSnagBall?' to 'if !pbIsSnagBall?(item)'

-FL- 22:28, May 1, 2012 (UTC)

Error in speed formula

How activate: Start a double battle using a second pokémon with more speed that the first, both opponent need to have less speend that you both pokémon. Maybe there others ways to activate this.

Effect: Your first pokémon attack first.

How fix: In PokeBattle_Battle change line 'for i in m+1..n-1' to 'for i in 1..n-1'.

-FL- 22:28, May 1, 2012 (UTC)

Changing pocket while sort the items select the wrong items

How activate: After press "Z" in changing items screen change the pocket.

Effect: The item selected (in red) change to the one with same index in the current pocket.

How fix: In PokemonBag, after every line '@bag.lastpocket=itemwindow.pocket' add

if sorting
  sorting=false
  @sprites["itemwindow"].sortIndex=-1
end

-FL- 22:28, May 1, 2012 (UTC)

Credits won't flow good in 256x192 resolution

How activate: Change the credit speed and test in 256x192 resolution.

Effect: If you put a high number, the credits looks like "jumping". If you put a number lower that 1, the credits won't scrolls.

How fix: In Scene_Credits, change the:

if @pixels_banked>=@zoom_adjustment*@TextSpeed
  @credit_sprite.oy += @zoom_adjustment*@TextSpeed
  @pixels_banked -= @zoom_adjustment*@TextSpeed

to:

if @pixels_banked>=@zoom_adjustment
  @credit_sprite.oy += @pixels_banked - @pixels_banked%@zoom_adjustment
  @pixels_banked = @pixels_banked%@zoom_adjustment

-FL- 13:31, May 2, 2012 (UTC)

Purify Chamber crashes when trying to purify a Pokémon

I have found these problems with the purify chamber

Message: Script error within event 1, map 28 (purify chamber):
Exception: NoMethodError
Message: Section113:566:in `pbOpenSetDetail'undefined method `pbDoPurify' for #<PurifyChamberScene:0x9997f10>
***Full script:
pbPurifyChamber()

Interpreter:243:in `pbExecuteScript'
PokemonPurifyChamber:640:in `pbStartPurify'
PokemonPurifyChamber:628:in `loop'
PokemonPurifyChamber:651:in `pbStartPurify'
PokemonPurifyChamber:1109:in `pbPurifyChamber'
PokemonPurifyChamber:1106:in `pbFadeOutIn'
PokemonPurifyChamber:1106:in `pbPurifyChamber'
(eval):1:in `pbExecuteScript'
Interpreter:1593:in `eval'
Interpreter:243:in `pbExecuteScript'

94.171.71.22 22:30, May 4, 2012 (UTC)

In the script section PokemonPurifyChamber, go to line 566 and change it to simply say pbDoPurify(). ~ Maruno 00:53, May 5, 2012 (UTC)

Box icon won't refresh after an item is given

How activate: Give a item that change the pokémon icon like the Griseous Orb to Giratina in storage box.

Effect: The pokémon icon won't refresh.

How fix: In PokemonStorage add line '@scene.pbHardRefresh' after:

  pbDisplay(_INTL("{1} is now being held.",itemname))
 end
end

-FL- 01:39, May 9, 2012 (UTC)

Snag Ball won't give the player a non-Shadow caught pokémon

How activate: Capture a regular Pokémon with a Snag Ball (requires changing the scripts).

Effect: The pokémon won't be added to player party or pokémon storage (PC).

How fix: In PokeBattle_Battle, change the second line 'if pbIsSnagBall?(ball)' to 'if pbIsSnagBall?(ball) && @opponent'

-FL- 01:39, May 9, 2012 (UTC)

Move Relearner won't show the appropriate move pool for an alternate form Pokémon

Use Move Relearner with a pokémon with different form movepool (like speed Deoxys). The pokémon movepool is from the first form.

Solution: In PokemonMoveRelearner change line 'pbEachNaturalMove(pokemon.species){|move,level|' to 'pbEachNaturalMove(pokemon){|move,level|'. Change

def pbEachNaturalMove(species)
  atkdata=pbRgssOpen("Data/attacksRS.dat","rb")
  offset=atkdata.getOffset(species-1)
  length=atkdata.getLength(species-1)>>1
  atkdata.pos=offset
  for k in 0...length
    level=atkdata.fgetw
    move=atkdata.fgetw
    yield move,level
  end
  atkdata.close
end

to

def pbEachNaturalMove(pokemon)
  movelist=pokemon.getMoveList
  for k in movelist
    yield k[1],k[0]
  end
end

-FL- 14:01, June 19, 2012 (UTC)

Sliding on ice causes the screen to track too far

Sliding on ice terrain may won't center the players on screen.

Solution: In Scene_Map, before line 'def transfer_player(cancelVehicles=true)' put:

def updateSprites 
  for i in @spritesets.keys
    @spritesets[i].updateSprites
  end  
end

In Spriteset_Map, before line 'def in_range?(object)' put:

def updateSprites
  for sprite in @character_sprites
    sprite.update
  end
end

In PokemonField, after line 'end while pbGetTerrainTag(event)==PBTerrain::Ice' put:

$game_player.center($game_player.x, $game_player.y)
$scene.updateSprites

-FL- 14:01, June 19, 2012 (UTC)

One-hit KO moves have 1% less accuracy than they should

Solution: In PokeBattle_MoveEffects change line 'return 1+@battle.pbRandom(100)<accuracy' to 'return 1+@battle.pbRandom(100)<=accuracy'

-FL- 20:23, June 23, 2012 (UTC)

Move flags i, j, k and l do not do anything

The PBS file "moves.txt" does not contain any of the mentioned move flags, and they will have no effect in the game anyway.

This bug is due to the way Essentials saves move data. It currently simply cannot save flag information after flag h. "moves.txt" was affected a couple of versions ago, when it was rewritten from the compiled move data (which didn't include the mentioned move flags).

The solution is to make the move flags be saved into a 2-byte space rather than a 1-byte space, which will allow flags up to/including "p".

In the script section Compiler, find the two instances of the following phrase and replace them with the new version:
"vCCCCCCvCCC"                           # Old version
"vCCCCCCvCvC"                           # New version
In the script section PBMove, replace the following two lines in the def "initialize":
movedata.pos=moveid*13                  # Old version
movedata.pos=moveid*14                  # New version
@flags=movedata.fgetb                   # Old version
@flags=movedata.fgetw                   # New version

~ Maruno 14:24, July 12, 2012 (UTC)

Fixed as of version 9. ~ Maruno (talk) 20:44, August 13, 2012 (UTC)

Midnight Sun bug

In some times between 11:00 PM and 0:00 AM (like in 01/01/00). The Day/Midnight tone system displays day tones.

Solution: In PokemonTime change line 'realHourNow=realHour+((realNextHour-realHour)*(minute/60.0))' to:

realHourDifference=realNextHour-realHour
realHourDifference=0 if realHourDifference<0
realHourNow=realHour+(realHourDifference*(minute/60.0))

-FL- (talk) 14:19, August 2, 2012 (UTC)

Fixed as of version 9. ~ Maruno (talk) 20:44, August 13, 2012 (UTC)

Pay Day gives the wrong amount of money

Pay Day doubles the money picks after an opponent trainer is defeated and crashes the game in the end of wild battles.

Solution: In PokeBattle_Battle change the line 'self.pbPlayer.money+=moneygained' to 'self.pbPlayer.money+=@moneygained'.

-FL- (talk) 20:25, August 25, 2012 (UTC)

Fixed as of version 10. ~ Maruno (talk) 23:04, October 31, 2012 (UTC)

Enemy trainers can use the same item multiple times in a battle round

This can be seen in double battles. If both the enemy trainer's Pokémon have their HP fall into the red in the same round, and the trainer has a healing item, then in the next round the same healing item will be used on both Pokémon.

-FL- 01:06, June 5, 2011 (UTC)

Solution: In 'PokeBattle_Battle', after both lines 'for i in items' put line 'next if sameItem?(index,i,items)'. Before 'def pbEnemyShouldUseItem?(index)' add:

def sameItem?(index,item,items) #test
  if(index==3 && @choices[1][1] && @choices[1][0]==3 && @choices[1][1]==item)
    qtd=0
    for i in items
      qtd+=1 if i==item
    end
    return true if qtd<2
  end
  return false
end

-FL- 20:23, June 23, 2012 (UTC)

Fixed as of version 11. ~ Maruno (talk) 22:49, December 23, 2012 (UTC)

Trade doesn't work

Trades doesn't work, your Pokémon was not replaced by the other Pokémon.

Solution (by Maruno): I'm amazed I actually did that. I accidentally deleted a line (highlighted below) which needs to be added back into def pbStartTrade in script section PokemonTrading.

  pbSeenForm(yourPokemon)
  pbFadeOutInWithMusic(99999){
    evo=PokemonTradeScene.new
    evo.pbStartScreen(myPokemon,yourPokemon,$Trainer.name,opponent.name)
    evo.pbTrade
    evo.pbEndScreen
  }
  $Trainer.party[pokemonIndex]=yourPokemon
end

-FL- (talk) 17:43, April 14, 2013 (UTC)

Fixed as of version 12. ~ Maruno (talk) 14:15, June 22, 2013 (UTC)

Editor crashes when adding a new trainer

After selecting a new trainer's first Pokémon and its level, the editor crashes with this message:

Exception: NoMethodError
Message: undefined method `[]' for nil:NilClass
PokeBattle_Pokemon:729:in `initialize'
PokemonTrainers:102:in `new'
PokemonTrainers:102:in `pbNewTrainer'
PokemonTrainers:88:in `loop'
PokemonTrainers:111:in `pbNewTrainer'
PokemonTrainers:80:in `each'
PokemonTrainers:80:in `pbNewTrainer'
PokemonEditor:3696:in `pbTrainerBattleEditor'
PokemonEditor:3653:in `pbListScreenBlock'
PokemonEditor:1572:in `loop'

This error does not occur when modifying existing trainers, only when creating new ones.

Fixed as of version 12. ~ Maruno (talk) 14:15, June 22, 2013 (UTC)

Extract/Compile Text ignores Common Events

As the title says, the text in Common Events cannot be extracted alongside the rest of the text in the game.

-FL- 18:57, January 28, 2012 (UTC)

Fixed as of version 13. ~ Maruno (talk) 23:45, December 3, 2013 (UTC)

Double Battles Item Usage Bug

This bug occurs in both Double Wild Battles and Double Trainer Battles.

When the player turn starts, and the first Pokémon uses an item, so the second Pokémon can use it's turn, the item usage can be canceled. But even the used item disappears or lowers it's quantity, the battle system will keep the effects in play and returns to the first Pokémon turn every time the player do this action.

This bug can be very dangerous because the player can use a lot of items in the same turn without advancing to the opponent's turn, and it will make so much advantage to anyone that plays like this.

Fixed as of version 13. ~ Maruno (talk) 23:45, December 3, 2013 (UTC)

Player's feet disappear while stepping into tall grass

When stepping into tall grass, the bottom part of the player's sprite immediately disappears as though already in tall grass, even though they are still stepping into it. This is especially noticeable when stepping upwards into the grass.

Fixed as of version 14. ~ Maruno (talk) 00:21, October 3, 2014 (UTC)

No sounds in battle with Battle Intro ME

If you put some Battle Intro ME in the trainer, when enter battle the sound stop and don't play Battle BGM.

Solution(by Vod): I'm surprise this was never fixed, I guess I'll contribute.

Find this section in the script "PokemonTrainers"

trainer=pbLoadTrainer(trainerid,trainername,trainerparty)
if !trainer
  pbMissingTrainer(trainerid,trainername,trainerparty)
  return false
end

add Audio.me_stop so it looks like below

trainer=pbLoadTrainer(trainerid,trainername,trainerparty)
Audio.me_stop
if !trainer
  pbMissingTrainer(trainerid,trainername,trainerparty)
  return false
end
Fixed as of version 14. ~ Maruno (talk) 00:21, October 3, 2014 (UTC)

Ad blocker interference detected!


Wikia is a free-to-use site that makes money from advertising. We have a modified experience for viewers using ad blockers

Wikia is not accessible if you’ve made further modifications. Remove the custom ad blocker rule(s) and the page will load as expected.