Just a reminder that providing specifics on, sharing links to, or naming websites where ROMs can be accessed is against the rules. If your post has any of this information it will be removed.
Ever thought it'd be cool to have your art, writing, or challenge runs featured on PokéCommunity? Click here for info - we'd love to spotlight your work!
Our weekly protagonist poll is now up! Vote for your favorite Conquest protagonist in the poll by clicking here.
Welcome to PokéCommunity! Register now and join one of the best fan communities on the 'net to talk Pokémon and more! We are not affiliated with The Pokémon Company or Nintendo.
Following on from my last post, I think the stack overflow thing I was getting was fixed with a simple reinstall. This time I come with a slight oversight you may not have thought of: cave encounters. From what I'm seeing, they can spawn on impassable tiles (such as the black tile used to surround maps)
In caves, the overworld encounter script allready checks for impassable rock tiles. These have the tile-ID 4. If you want to use the black tile or your own selfmade tiles in a cave map which are impassable, then you can give them the tile-ID 4 to make sure that no pokemon can spawn there.
It works no matter what restrictions there are when it comes to Kantonian Rattata, but it never works for Alolan Rattata (even if I make it available on that route for both day and night).
The error message is not enough to help you. Which Pokemon Essentials Version do you use: v16.2, v17.2 or a completely different version? I would guess that you don't have the latestversion of Pokemon essentials. And which version of the overworld encounter script have you installed: Version 1.9.1 for PE v17.2 or Version 1.6 for PEv16.2? And when did the error message occure?
It seems that your Pokemon Essentials version does not support waterfalls completely.
Please go to module "PBTerrain" in the script "PBTerrain" and post the whole code of that module here. In your next post, please write "[ C O D E ]" above that code and "[ / C O D E ]" below that code to garanty that the code is written in a code environement such as
Code:
module PBTerrain
def PBTerrain.isWaterfall?(tag)
you don't have this method yet :(
end
end
Thank you for your testing and your informations. I found some errors in the code. It should work the suggested way now. This means that, first of all, you don't have to chain a specific form. It suffices to chain arbitrary forms of pokemon of the same pokemon family. Furthermore, if the rescuechain is active then the evolved pokemon can get any form which is allowed by the spawning conditions. For example alolan Raticate can only spawn at night.
I have tested it and it worked with the following modifications. (Alternatively, you can simply copy the updated version 1.9.2 of this visible overworld wild encounter script in the first post of this thread.) At first, replace the old code of method "Events.onWildBattleEnd+=proc{|sender,e|" at the end of the overworld encounter script by the following code:
Spoiler:
Code:
Events.onWildBattleEnd+=proc {|sender,e|
next if EVOMAPSBLACKLIST.include?($game_map.map_id)
next if EVOMAPSWHITELIST.length>0 && !EVOMAPSWHITELIST.include?($game_map.map_id)
next if EVODISABLESWITCH>0 && $game_switches[EVODISABLESWITCH]
next if EVOPKRADERDISABLE && !$PokemonTemp.pokeradar.nil?
next if !$PokemonTemp.rescuechain
species=e[0]
result=e[2]
family=pbGetBabySpecies(species)
if (result==1 || result == 4) && family==$PokemonTemp.rescuechain[1]
$PokemonTemp.rescuechain[0]+=1
end
}
And after that replace the old code of the method "pbChooseEncounter(x,y,repel=false)" by the following new code:
Spoiler:
Code:
def pbChooseEncounter(x,y,repel=false)
return if $Trainer.ablePokemonCount==0 #check if trainer has pokemon
encounterType = $PokemonEncounters.pbEncounterTypeOnTile(x,y)
$PokemonTemp.encounterType = encounterType
return if encounterType<0 #check if there are encounters
return if !$PokemonEncounters.isEncounterPossibleHereOnTile?(x,y)
for event in $game_map.events.values
if event.x==x && event.y==y
return
end
end
encounter = $PokemonEncounters.pbGenerateEncounter(encounterType)
encounter = EncounterModifier.trigger(encounter)
if !$PokemonEncounters.pbCanEncounter?(encounter,repel)
$PokemonTemp.forceSingleBattle = false
EncounterModifier.triggerEncounterEnd()
return
end
#----------------------------------------
# added to include rescue chain, forms and gender by derFischae
form = nil
gender = nil
if USEALTFORMS == true or USEFEMALESPRITES == true or USERESCUECHAIN == true
pokemon = pbGenerateWildPokemon(encounter[0],encounter[1])
gender = pokemon.gender if USEFEMALESPRITES==true
form = pokemon.form if USEALTFORMS == true
if USERESCUECHAIN == true
unless EVOMAPSBLACKLIST.include?($game_map.map_id) and
EVOMAPSWHITELIST.length>0 && !EVOMAPSWHITELIST.include?($game_map.map_id) and
EVODISABLESWITCH>0 && $game_switches[EVODISABLESWITCH] and
EVOPKRADERDISABLE && !$PokemonTemp.pokeradar.nil? and
!$PokemonGlobal.roamEncounter.nil?
unless pokemon.nil?
if !$PokemonTemp.rescuechain
$PokemonTemp.rescuechain=[0,nil]
end
family =pbGetBabySpecies(pokemon.species)
if family != $PokemonTemp.rescuechain[1]
$PokemonTemp.rescuechain=[0,family]
end
if $PokemonTemp.rescuechain[0]>=EVOCHAINLENGTH
for i in 0..($PokemonTemp.rescuechain[0]/EVOCHAINLENGTH).floor()
evodata=pbGetEvolvedFormData(pokemon.species)
if evodata.length>0 && rand(EVORANDCHANCE)==0
fspecies=evodata[rand(evodata.length)][2]
newspecies,newform=pbGetSpeciesFromFSpecies(fspecies)
level=pbGetMinimumLevel(fspecies)
level=[level,pokemon.level].max
level+=rand(EVOLEVELWOBBLE)
encounter = [newspecies,level]
end
end
end
end
end
pokemon = pbGenerateWildPokemon(encounter[0],encounter[1])
gender = pokemon.gender if USEFEMALESPRITES==true
form = pokemon.form if USEALTFORMS == true
end
end
return encounter,gender,form
end
Hey, how do i add encounter types as they appear only on their area?
Example, i tried to manually add the Shallow Water new encounter method i added before this script, but either nothing appear or the Shallow Water encounters appear on the whole map instead of the terrain with the shallow water.
It seems that your Pokemon Essentials version does not support waterfalls completely.
To remove this compatibility error you have to add the following code:
Code:
module PBTerrain
Waterfall = 8
WaterfallCrest = 9
def PBTerrain.isWaterfall?(tag)
return tag==PBTerrain::WaterfallCrest ||
tag==PBTerrain::Waterfall
end
end
It's recommanded to include the tags "Waterfall = 8" and "WaterfallCrest = 9" and the whole method "PBTerrain.isWaterfall?(tag)" in the already existing module "PBTerrain", which you can find in the script section "PBTerrain". But anyway, it's also fine to simply copy the code above and paste it at the end of the visible overworld encounter script.
Hey, how do i add encounter types as they appear only on their area?
Example, i tried to manually add the Shallow Water new encounter method i added before this script, but either nothing appear or the Shallow Water encounters appear on the whole map instead of the terrain with the shallow water.
It is allready implemented for surfing encounters and grass encounters. Both types spawn only on their tiles. You can try to use this way to include it for your shallow water encounter method. But without knowing how you coded your shallow water encounter method no concrete tips can be given. Do you have a link to your script code, here on Pokecommunity, or can you post your code?
It is allready implemented for surfing encounters and grass encounters. Both types spawn only on their tiles. You can try to use this way to include it for your shallow water encounter method. But without knowing how you coded your shallow water encounter method no concrete tips can be given. Do you have a link to your script code, here on Pokecommunity, or can you post your code?
however it doesn't work as surf, it is like BW/BW2 as you step on the shallow water normally and encounters happen. I tried to see if i could put you script with this as, grass = land encounter (Land Pokemon spawn on grass) and shallowwater = water pokemon on land, but only on the ShallowWater tagged tiles and having both Land and SW on the same map. However either didn't worked with no encounter at all or Shallow Water encounter appeared all over the map.
however it doesn't work as surf, it is like BW/BW2 as you step on the shallow water normally and encounters happen. I tried to see if i could put you script with this as, grass = land encounter (Land Pokemon spawn on grass) and shallowwater = water pokemon on land, but only on the ShallowWater tagged tiles and having both Land and SW on the same map. However either didn't worked with no encounter at all or Shallow Water encounter appeared all over the map.
Okay I understand. By the way, thank you for pointing at Thundaga's Tutorial. I didn't know that there is a standard way of implementing new encounter types. However, there is a way to implement your ShallowWater:
If you want to have new encounter types and want that some special pokemon only spawn at special tiles, such as a Gurdurr spawns only at the building site, or a special water pokemon in shallow water or groudon only in the dessert..., then you have to follow 2 steps:
1) Follow Thundaga's Tutorial on adding new encounter types. See https://www.youtube.com/watch?v=kdtofAPuyxA
This includes all nessessary changes for ordinary encountering. Note that Thundaga added a Desert tile for the new encounter type for his tutorial. We will also use this notation here. If you want to use ShallowWater instead, then make sure to use ShallowWater instead of Desert in the code snippets.
2) To activate these changes also for overworld spawning you have to search for the method "pbEncounterTypeOnTile(x,y)" and add
right below "return EncounterTypes::Water".
In the following Spoiler sections you can compare the code of "pbEncounterTypeOnTile(x,y)" before and after adding.
Spoiler:
original version of pbEncounterTypeOnTile(x,y) in visible overworld eild encounter script version 1.9.2
Code:
def pbEncounterTypeOnTile(x,y)
if PBTerrain.isJustWater?($game_map.terrain_tag(x,y))
return EncounterTypes::Water
elsif self.isCave?
return EncounterTypes::Cave
elsif self.isGrass?
time = pbGetTimeNow
enctype = EncounterTypes::Land
enctype = EncounterTypes::LandNight if self.hasEncounter?(EncounterTypes::LandNight) && PBDayNight.isNight?(time)
enctype = EncounterTypes::LandDay if self.hasEncounter?(EncounterTypes::LandDay) && PBDayNight.isDay?(time)
enctype = EncounterTypes::LandMorning if self.hasEncounter?(EncounterTypes::LandMorning) && PBDayNight.isMorning?(time)
if pbInBugContest? && self.hasEncounter?(EncounterTypes::BugContest)
enctype = EncounterTypes::BugContest
end
return enctype
end
return -1
end
after adding
Code:
def pbEncounterTypeOnTile(x,y)
if PBTerrain.isJustWater?($game_map.terrain_tag(x,y))
return EncounterTypes::Water
elsif PBTerrain.isDesert?($game_map.terrain_tag(x,y))
return EncounterTypes::Desert
elsif self.isCave?
return EncounterTypes::Cave
elsif self.isGrass?
time = pbGetTimeNow
enctype = EncounterTypes::Land
enctype = EncounterTypes::LandNight if self.hasEncounter?(EncounterTypes::LandNight) && PBDayNight.isNight?(time)
enctype = EncounterTypes::LandDay if self.hasEncounter?(EncounterTypes::LandDay) && PBDayNight.isDay?(time)
enctype = EncounterTypes::LandMorning if self.hasEncounter?(EncounterTypes::LandMorning) && PBDayNight.isMorning?(time)
if pbInBugContest? && self.hasEncounter?(EncounterTypes::BugContest)
enctype = EncounterTypes::BugContest
end
return enctype
end
return -1
end
And finally find the method "isEncounterPossibleHereOnTile?(x,y)" in the visible overworld wild encounter script and add
right below "if PBTerrain.isJustWater?($game_map.terrain_tag(x,y)) return true".
You can compare in the following spoiler section there to put the code.
Spoiler:
original code of the method in script version 1.9.2
Code:
def isEncounterPossibleHereOnTile?(x,y)
if PBTerrain.isJustWater?($game_map.terrain_tag(x,y))
return true
elsif self.isCave?
return true
elsif self.isGrass?
return PBTerrain.isGrass?($game_map.terrain_tag(x,y))
end
return false
end
after adding
Code:
def isEncounterPossibleHereOnTile?(x,y)
if PBTerrain.isJustWater?($game_map.terrain_tag(x,y))
return true
elsif PBTerrain.isDesert?($game_map.terrain_tag(x,y))
return true
elsif self.isCave?
return true
elsif self.isGrass?
return PBTerrain.isGrass?($game_map.terrain_tag(x,y))
end
return false
end
I haven't test it myself. But it should work. I would be happy to hear if it works.
Okay I understand. By the way, thank you for pointing at Thundaga's Tutorial. I didn't know that there is a standard way of implementing new encounter types. However, there is a way to implement your ShallowWater:
If you want to have new encounter types and want that some special pokemon only spawn at special tiles, such as a Gurdurr spawns only at the building site, or a special water pokemon in shallow water or groudon only in the dessert..., then you have to follow 2 steps:
1) Follow Thundaga's Tutorial on adding new encounter types. See https://www.youtube.com/watch?v=kdtofAPuyxA
This includes all nessessary changes for ordinary encountering. Note that Thundaga added a Desert tile for the new encounter type for his tutorial. We will also use this notation here. If you want to use ShallowWater instead, then make sure to use ShallowWater instead of Desert in the code snippets.
2) To activate these changes also for overworld spawning you have to search for the method "pbEncounterTypeOnTile(x,y)" and add
right below "return EncounterTypes::Water".
In the following Spoiler sections you can compare the code of "pbEncounterTypeOnTile(x,y)" before and after adding.
Spoiler:
original version of pbEncounterTypeOnTile(x,y) in visible overworld eild encounter script version 1.9.2
Code:
def pbEncounterTypeOnTile(x,y)
if PBTerrain.isJustWater?($game_map.terrain_tag(x,y))
return EncounterTypes::Water
elsif self.isCave?
return EncounterTypes::Cave
elsif self.isGrass?
time = pbGetTimeNow
enctype = EncounterTypes::Land
enctype = EncounterTypes::LandNight if self.hasEncounter?(EncounterTypes::LandNight) && PBDayNight.isNight?(time)
enctype = EncounterTypes::LandDay if self.hasEncounter?(EncounterTypes::LandDay) && PBDayNight.isDay?(time)
enctype = EncounterTypes::LandMorning if self.hasEncounter?(EncounterTypes::LandMorning) && PBDayNight.isMorning?(time)
if pbInBugContest? && self.hasEncounter?(EncounterTypes::BugContest)
enctype = EncounterTypes::BugContest
end
return enctype
end
return -1
end
after adding
Code:
def pbEncounterTypeOnTile(x,y)
if PBTerrain.isJustWater?($game_map.terrain_tag(x,y))
return EncounterTypes::Water
elsif PBTerrain.isDesert?($game_map.terrain_tag(x,y))
return EncounterTypes::Desert
elsif self.isCave?
return EncounterTypes::Cave
elsif self.isGrass?
time = pbGetTimeNow
enctype = EncounterTypes::Land
enctype = EncounterTypes::LandNight if self.hasEncounter?(EncounterTypes::LandNight) && PBDayNight.isNight?(time)
enctype = EncounterTypes::LandDay if self.hasEncounter?(EncounterTypes::LandDay) && PBDayNight.isDay?(time)
enctype = EncounterTypes::LandMorning if self.hasEncounter?(EncounterTypes::LandMorning) && PBDayNight.isMorning?(time)
if pbInBugContest? && self.hasEncounter?(EncounterTypes::BugContest)
enctype = EncounterTypes::BugContest
end
return enctype
end
return -1
end
And finally find the method "isEncounterPossibleHereOnTile?(x,y)" in the visible overworld wild encounter script and add
right below "if PBTerrain.isJustWater?($game_map.terrain_tag(x,y)) return true".
You can compare in the following spoiler section there to put the code.
Spoiler:
original code of the method in script version 1.9.2
Code:
def isEncounterPossibleHereOnTile?(x,y)
if PBTerrain.isJustWater?($game_map.terrain_tag(x,y))
return true
elsif self.isCave?
return true
elsif self.isGrass?
return PBTerrain.isGrass?($game_map.terrain_tag(x,y))
end
return false
end
after adding
Code:
def isEncounterPossibleHereOnTile?(x,y)
if PBTerrain.isJustWater?($game_map.terrain_tag(x,y))
return true
elsif PBTerrain.isDesert?($game_map.terrain_tag(x,y))
return true
elsif self.isCave?
return true
elsif self.isGrass?
return PBTerrain.isGrass?($game_map.terrain_tag(x,y))
end
return false
end
I haven't test it myself. But it should work. I would be happy to hear if it works.
This seems to be a general issue of pokemon essentials. You can test it the following way. Place an event on the map, such as a trainer, and let it move randomly. Then, I would guess, this event will have the same behaviour as the spawning encounters while the pause menu is displayed. Maybe there is allready a script for pokemon essential solving this problem. But I'm not sure-
I have set the Terrain Tag to 4 in Tileset Editor.
But in Caves, the Pokemon still spawns on other tiles...
How can i fix that?
They should only spawns on the fields that passable.
Im using Essentials 17.2
https ://ibb.co/ BnFJNVy delete spaces for image. Im new and cant post Links :/
EDIT:
Ok i fixed it by myself.
I needet to make the tile who the pokemon should NOT spawn Terrain Tag 4 and there they should spawn Terrain Tag 0 :D
Now with Terrain Tag 0 they spawns on Terrain Tag 0-Tiles and not longer out of map :)
Next Question:
Is it possible to play an endless loop of an animation ON the Shiny Pokemon? Like in Lets Go with the stars?
Hello, your script works very well in pokemon essentials 17.2, but I am using pokemon essentials 16.2 for convenience and for another script that I am using that does not work in 17.2, I still have this problem, and I don't know if someone can help me with it. , I was reading and someone else also asked it but in the end I don't know if there is already a solution and it is to this error:
Hello, your script works very well in pokemon essentials 17.2, but I am using pokemon essentials 16.2 for convenience and for another script that I am using that does not work in 17.2, I still have this problem, and I don't know if someone can help me with it. , I was reading and someone else also asked it but in the end I don't know if there is already a solution and it is to this error:
---------------------------
Pokemon Essentials Esp v16.2
---------------------------
Excepción: ArgumentError
Mensaje: wrong number of arguments(2 for 1)
OverWorld Encounters:337:in `pbCanEncounter?'
[...]
It is recommended to use the downscaled version of the overworld encounter script version 1.6 from ArchyTheArc for Pokemon essentials 16.2. You didn't use this version, right?
To remove this error message, you have to go to the line 337 in the overworld encounter script. There, you will find the following code.
Code:
if !$PokemonEncounters.pbCanEncounter?(encounter,repel)
The error message says that it is wrong to have two arguments "encounter" and "repel" in the brackets. There should be only one argument.
Hence, you have to replace the line by
Code:
if !$PokemonEncounters.pbCanEncounter?(encounter)
This error occurs since Pokemon Essential 16.2 supports repels differently to Pokemon Essentials 17.2. Maybe the script works after that correction. But maybe another error arises now. I can't test that, since I don't have Pokemon Essentials 16.2.
You can decide by yourself if you want to use the allready existing downscaled version 1.6 or if you want to have all new features and bug fixes which came with the newer versions up to version 1.9.2.
For the latter, you have to downscale the current version 1.9.2 again by your own, beginning with correcting the line 337 as written above. I can't do it by myself since I don't have Pokemon Essentials 16.2. One remark, if you decide to downscale the newest version 1.9.2. then you can always go to the line where the error occurs (above it was 337) and compare this line with the corresponding line in the allready downscaled version 1.6 by ArchyTheArk. This should help enormously. And if you completed the new downscale, then I would be happy, if you publish your version. Then, I can also embed your code in the starting post, such that all other users of Pokemon Essentials 16.2 can find this version immediately.
I have set the Terrain Tag to 4 in Tileset Editor.
But in Caves, the Pokemon still spawns on other tiles...
How can i fix that?
They should only spawns on the fields that passable.
Im using Essentials 17.2
https ://ibb.co/ BnFJNVy delete spaces for image. Im new and cant post Links :/
EDIT:
Ok i fixed it by myself.
I needet to make the tile who the pokemon should NOT spawn Terrain Tag 4 and there they should spawn Terrain Tag 0 :D
Now with Terrain Tag 0 they spawns on Terrain Tag 0-Tiles and not longer out of map :)
Normally, in caves pokemon can encounter everywhere. But with this visible overworld wild encounter script, this behaviour can let pokemon spawn on impassible tiles. Now, if you want do forbid pokemon to spawn on certain tiles in caves, then you have two options.
1) The visible overworld encounter script allready forbids spawning on rock tiles, which have the terrain tag 4 in the terrain tag editor. Hence, the first way to forbid spawning on a specific tile is to set the terrain tag of that tile to 4 in the terrain tag editor.
2) If you want to add new terrain types to the module PBTerrain in script PBTerrain and want to forbid pokemons to spawn there, then you have to do the following way. Here, I will sketch the procedure for mud. At first you had add mud to the module PPTerrain in such a way
Code:
module PBTerrain
Mud = 42
def PBTerrain.isMud?(tag)
return tag==PBTerrain::Mud
end
end
Now, go to the method "pbChooseTileOnStepTaken" in the visible overworld wild encounter script and add
Code:
return if PBTerrain.isMud?($game_map.terrain_tag(x,y))
below
Code:
return if PBTerrain.isRock?($game_map.terrain_tag(x,y))
In the following spoiler section you can compare the code of "pbChooseTileOnStepTaken" before and after adding
Spoiler:
original code of "pbChooseTileOnStepTaken" in version 1.9.2
Code:
def pbChooseTileOnStepTaken
# Choose 1 random tile from 1 random ring around the player
i = rand(4)
r = rand((i+1)*8)
x = $game_player.x
y = $game_player.y
if r<=(i+1)*2
x = $game_player.x-i-1+r
y = $game_player.y-i-1
elsif r<=(i+1)*6-2
x = [$game_player.x+i+1,$game_player.x-i-1][r%2]
y = $game_player.y-i+((r-1-(i+1)*2)/2).floor
else
x = $game_player.x-i+r-(i+1)*6
y = $game_player.y+i+1
end
#check if it is possible to encounter here
return if x<0 || x>=$game_map.width || y<0 || y>=$game_map.height #check if the tile is on the map
#check if it's a valid grass, water or cave etc. tile
return if PBTerrain.isIce?($game_map.terrain_tag(x,y))
return if PBTerrain.isLedge?($game_map.terrain_tag(x,y))
return if PBTerrain.isWaterfall?($game_map.terrain_tag(x,y))
return if PBTerrain.isRock?($game_map.terrain_tag(x,y))
if RESTRICTENCOUNTERSTOPLAYERMOVEMENT
return if !PBTerrain.isWater?($game_map.terrain_tag(x,y)) &&
$PokemonGlobal && $PokemonGlobal.surfing
return if PBTerrain.isWater?($game_map.terrain_tag(x,y)) &&
!($PokemonGlobal && $PokemonGlobal.surfing)
end
return [x,y]
end
after adding
Code:
def pbChooseTileOnStepTaken
# Choose 1 random tile from 1 random ring around the player
i = rand(4)
r = rand((i+1)*8)
x = $game_player.x
y = $game_player.y
if r<=(i+1)*2
x = $game_player.x-i-1+r
y = $game_player.y-i-1
elsif r<=(i+1)*6-2
x = [$game_player.x+i+1,$game_player.x-i-1][r%2]
y = $game_player.y-i+((r-1-(i+1)*2)/2).floor
else
x = $game_player.x-i+r-(i+1)*6
y = $game_player.y+i+1
end
#check if it is possible to encounter here
return if x<0 || x>=$game_map.width || y<0 || y>=$game_map.height #check if the tile is on the map
#check if it's a valid grass, water or cave etc. tile
return if PBTerrain.isIce?($game_map.terrain_tag(x,y))
return if PBTerrain.isLedge?($game_map.terrain_tag(x,y))
return if PBTerrain.isWaterfall?($game_map.terrain_tag(x,y))
return if PBTerrain.isRock?($game_map.terrain_tag(x,y))
return if PBTerrain.isMud?($game_map.terrain_tag(x,y))
if RESTRICTENCOUNTERSTOPLAYERMOVEMENT
return if !PBTerrain.isWater?($game_map.terrain_tag(x,y)) &&
$PokemonGlobal && $PokemonGlobal.surfing
return if PBTerrain.isWater?($game_map.terrain_tag(x,y)) &&
!($PokemonGlobal && $PokemonGlobal.surfing)
end
return [x,y]
end
This seems to be a general question on shiny pokemon. Maybe there is allready a solution or code for your wishes out there. Try to find a suitable thread.
And if there is allready a way, then we can try to implement that code and animation also for spawning shinys.
if $game_switches[SHINY_WILD_POKEMON_SWITCH]==true
character_name = character_name+"s"
shinysprite=true
$scene.spriteset.addUserAnimation(SHINY_ANIMATION_ID,event.x,event.y,true,2)
elsif ($PokemonTemp.catchcombo[0]>=CHAINLENGTH && $PokemonTemp.catchcombo[1]==encounter[0])
if rand(SHINYPROBABILITY)<$PokemonTemp.catchcombo[0]
character_name = character_name+"s"
shinysprite=true
$scene.spriteset.addUserAnimation(SHINY_ANIMATION_ID,event.x,event.y,true,2)
end
end
And tadaaa, every shiny that spawns will now play on hisself the animation once with ID 8 in your Animation Editor.
Sorry for bad english, im german and try my best :D
This Animation is nice to have because you are able to see if its an shiny or not even if you DONT have an Shiny Overworld Sprite.
EDIT: I used the berry plant sparkle animation for my shiny encounters. Just copy and paste the animation from slot 7 to 8 in the animation editor.
Script workes with Essential 17.2. Dont know if other Version will have problems.