• Do not use Discord to host any images you post, these links expire quickly! You can learn how to add images to your posts here.
Generation 9 Resource Pack [v21.1] (Updated with Indigo Disk contents)

Resource Generation 9 Resource Pack [v21.1] (Updated with Indigo Disk contents) 3.2.8

Caruban

Cooltrainer
Member
Joined
Sep 24, 2020
Posts
165
Caruban submitted a new resource:

Generation 9 Resource Pack (WIP, Spoilers) - Generation 9 Pack for Essentials v20 (SPOILERS)

Generation 9 Resource Pack

This is an incomplete Generation 9 resource pack for Essentials v20.1.
For the time being, it only consists of PBS, such as:
  • An adaptation of Pokemon Legends Arceus Expansion for v20, excluding the frostbite and drowsy features.
  • An incomplete Gen 9 Pokemon PBS file.
  • Non-functional new moves and abilities (except Zero to Hero).
  • All new Gen 9 evolution...

Read more about this resource...
 
Last edited:

Ignitus

Charizard X trainer
Member
Joined
Aug 29, 2021
Posts
46
I already started to make the gen 9 moves such as Koriadon's cool ability which function as Chlorophyll but instead boost the Attack stat and Firagiraf's ability works similiar to that gen 7 mon that prevents the use of priority moves sorry dont remember that name since there is a total of 1010 species now. :)
 

CornParade0669

Novice
Member
Joined
Apr 23, 2022
Posts
12
Encountering an issue. Cud Chew is activating a second time immediately after the first berry item use. Is it not supposed to wait until the end of the next turn before doing so?
 

Caruban

Cooltrainer
Member
Joined
Sep 24, 2020
Posts
165
I already started to make the gen 9 moves such as Koriadon's cool ability which function as Chlorophyll but instead boost the Attack stat and Firagiraf's ability works similiar to that gen 7 mon that prevents the use of priority moves sorry dont remember that name since there is a total of 1010 species now. :)
Yeah, Armor Tail works like Dazzling
 

Caruban

Cooltrainer
Member
Joined
Sep 24, 2020
Posts
165
Encountering an issue. Cud Chew is activating a second time immediately after the first berry item use. Is it not supposed to wait until the end of the next turn before doing so?
Ah, I missed that part.
But, I fixed it in the newest updates.
 

Lucidious89

Champion
Member
Joined
Nov 12, 2020
Posts
1,222
Hi buddy,
I getting error' like this after choosing a Fight menu
View attachment 14009
Essentials Deluxe and ZUD (as well as some of my other plugins) add new PBEffects starting at number 300 onwards, as well as effects that affect one side from number 200 onwards. I'd recommend that the author of this plugin renumber their PBEffects starting from a higher number so that these plugins don't conflict.
 
Last edited:

Aioros

Novice
Member
Joined
Nov 24, 2022
Posts
12
I wasn't aware if such a project already existed so I started coding the new stuff on my own today. Luckily I found this before I got too far.

I noticed in your Wind Rider (the part tied to Tailwind move usage) it checks all battlers, in my research I saw it was only the battlers from own side, I could be wrong, I did it like this:
Tailwind:
Expand Collapse Copy
#===============================================================================
# For 4 rounds, doubles the Speed of all battlers on the user's side. (Tailwind)
#===============================================================================
class Battle::Move::StartUserSideDoubleSpeed < Battle::Move
  def canSnatch?; return true; end

  def pbMoveFailed?(user, targets)
    if user.pbOwnSide.effects[PBEffects::Tailwind] > 0
      @battle.pbDisplay(_INTL("But it failed!"))
      return true
    end
    return false
  end

  def pbEffectGeneral(user)
    user.pbOwnSide.effects[PBEffects::Tailwind] = 4
    @battle.pbDisplay(_INTL("The Tailwind blew from behind {1}!", user.pbTeam(true)))
    #windrider
    @battle.allSameSideBattlers(user.index).each do |b|
      next if !b.hasActiveAbility?(:WINDRIDER)
      if b.pbCanRaiseStatStage?(:ATTACK, b)
        b.pbRaiseStatStageByAbility(:ATTACK, 1, b)
      end
    end
    #windrider
  end
end

Rocky Payload is a copy of a lot of abilities:
RockyPayload:
Expand Collapse Copy
Battle::AbilityEffects::DamageCalcFromUser.add(:ROCKYPAYLOAD,
  proc { |ability, user, target, move, mults, baseDmg, type|
    if type == :ROCK
      mults[:attack_multiplier] *= 1.5
    end
  }
)
in # DamageCalcFromUser handlers

And Costar:
Costar:
Expand Collapse Copy
Battle::AbilityEffects::OnSwitchIn.add(:COSTAR,
  proc { |ability, battler, battle, switch_in|
    abilityProc = false
    statChange = false
    stats = [:ATTACK,:DEFENSE,:SPEED,:SPECIAL_ATTACK,:SPECIAL_DEFENSE]
    battle.allSameSideBattlers(battler.index).each do |b|
      next if b == battler
      stats.each do |s|
        statChange = true if b.stages[s] != 0   
      end
      if statChange && !abilityProc
        abilityProc = true
        stats.each do |s|
          if b.stages[s] > 0
            battler.pbRaiseStatStageByAbility(s, b.stages[s], battler) if
            battler.pbCanRaiseStatStage?(s, battler)
          elsif b.stages[s] < 0
            battler.pbLowerStatStageByAbility(s, b.stages[s], battler, true) if
            battler.pbCanLowerStatStage?(s, battler)
          end
        end
      end
    end
  }
)
in # OnSwitchIn handlers (I'm unsure how this would work in a triple battle since triple battles don't exist in SV, that extra check is to copy the 1st ally only and avoid proccing twice in a triple battle)

Seed Sower:
Expand Collapse Copy
#===============================================================================
# Seed Sower
#===============================================================================
Battle::AbilityEffects::OnBeingHit.add(:SEEDSOWER,
  proc { |ability, user, target, move, battle|
    next if battle.field.terrain == :Grassy
    battle.pbShowAbilitySplash(target)
    battle.pbStartTerrain(target, :Grassy)
  }
)

If you have a discord or smth hmu so we can coordenate better, I have some free time atm and I'd like to contribute.
 
Last edited:

KRLW890

The Beast
Member
Joined
Oct 11, 2022
Posts
61
Hey, I only just learned about this. I started compiling some PBS files on my own, and there're a few things I think I can contribute if you're interested. In particular:

Adjusted the descriptions of all moves and abilities to fit the display size in Essentials.

Have secondary effects for all moves that could be implemented without custom code:
Jet Punch
Kowtow Cleave* (slashing flag does not exist by default)
Flower Trick
Torch Song
Aqua Step
Ruination
Pounce
Trailblaze
Chilling Water
Hyper Drill
Twin Beam
Armor Cannon
Bitter Blade* (slashing flag does not exist by default)
Comeuppance
Aqua Cutter* (slashing flag does not exist by default)

Made educated guesses on the body shape and exp yield of new Pokemon; not sure how interested you'd be in this one because it would be an unofficial placeholder, but it would make it easier for users to plug in directly.

I could also help with some move and ability programming. I have the following on my todo list:
Silk Trap
Triple Dive
Tidy Up
Population Bomb
Shed Tail
Thermal Exchange
Toxic Debris

Here's what I had compiled if you'd like to cross-reference it against what you've put together. I'll keep you updated.
 

Caruban

Cooltrainer
Member
Joined
Sep 24, 2020
Posts
165
This pack includes sprites, right? I finished formatting some of the sprites from KingOfThe-X-Roads and was wondering if I can contribute?
For now, the sprites are not on my priority list, at least until the front and back sprites are available.😄
Hi buddy,
I getting error' like this after choosing a Fight menu
View attachment 14009

Essentials Deluxe and ZUD (as well as some of my other plugins) add new PBEffects starting at number 300 onwards, as well as effects that affect one side from number 200 onwards. I'd recommend that the author of this plugin renumber their PBEffects starting from a higher number so that these plugins don't conflict.
Ok, I will update the PBEffects number in the next update.
I wasn't aware if such a project already existed so I started coding the new stuff on my own today. Luckily I found this before I got too far.

I noticed in your Wind Rider (the part tied to Tailwind move usage) it checks all battlers, in my research I saw it was only the battlers from own side, I could be wrong, I did it like this:
Tailwind:
Expand Collapse Copy
#===============================================================================
# For 4 rounds, doubles the Speed of all battlers on the user's side. (Tailwind)
#===============================================================================
class Battle::Move::StartUserSideDoubleSpeed < Battle::Move
  def canSnatch?; return true; end

  def pbMoveFailed?(user, targets)
    if user.pbOwnSide.effects[PBEffects::Tailwind] > 0
      @battle.pbDisplay(_INTL("But it failed!"))
      return true
    end
    return false
  end

  def pbEffectGeneral(user)
    user.pbOwnSide.effects[PBEffects::Tailwind] = 4
    @battle.pbDisplay(_INTL("The Tailwind blew from behind {1}!", user.pbTeam(true)))
    #windrider
    @battle.allSameSideBattlers(user.index).each do |b|
      next if !b.hasActiveAbility?(:WINDRIDER)
      if b.pbCanRaiseStatStage?(:ATTACK, b)
        b.pbRaiseStatStageByAbility(:ATTACK, 1, b)
      end
    end
    #windrider
  end
end

Rocky Payload is a copy of a lot of abilities:
RockyPayload:
Expand Collapse Copy
Battle::AbilityEffects::DamageCalcFromUser.add(:ROCKYPAYLOAD,
  proc { |ability, user, target, move, mults, baseDmg, type|
    if type == :ROCK
      mults[:attack_multiplier] *= 1.5
    end
  }
)
in # DamageCalcFromUser handlers

And Costar:
Costar:
Expand Collapse Copy
Battle::AbilityEffects::OnSwitchIn.add(:COSTAR,
  proc { |ability, battler, battle, switch_in|
    abilityProc = false
    statChange = false
    stats = [:ATTACK,:DEFENSE,:SPEED,:SPECIAL_ATTACK,:SPECIAL_DEFENSE]
    battle.allSameSideBattlers(battler.index).each do |b|
      next if b == battler
      stats.each do |s|
        statChange = true if b.stages[s] != 0  
      end
      if statChange && !abilityProc
        abilityProc = true
        stats.each do |s|
          if b.stages[s] > 0
            battler.pbRaiseStatStageByAbility(s, b.stages[s], battler) if
            battler.pbCanRaiseStatStage?(s, battler)
          elsif b.stages[s] < 0
            battler.pbLowerStatStageByAbility(s, b.stages[s], battler, true) if
            battler.pbCanLowerStatStage?(s, battler)
          end
        end
      end
    end
  }
)
in # OnSwitchIn handlers (I'm unsure how this would work in a triple battle since triple battles don't exist in SV, that extra check is to copy the 1st ally only and avoid proccing twice in a triple battle)

Seed Sower:
Expand Collapse Copy
#===============================================================================
# Seed Sower
#===============================================================================
Battle::AbilityEffects::OnBeingHit.add(:SEEDSOWER,
  proc { |ability, user, target, move, battle|
    next if battle.field.terrain == :Grassy
    battle.pbShowAbilitySplash(target)
    battle.pbStartTerrain(target, :Grassy)
  }
)

If you have a discord or smth hmu so we can coordenate better, I have some free time atm and I'd like to contribute.

Hey, I only just learned about this. I started compiling some PBS files on my own, and there're a few things I think I can contribute if you're interested. In particular:

Adjusted the descriptions of all moves and abilities to fit the display size in Essentials.

Have secondary effects for all moves that could be implemented without custom code:
Jet Punch
Kowtow Cleave* (slashing flag does not exist by default)
Flower Trick
Torch Song
Aqua Step
Ruination
Pounce
Trailblaze
Chilling Water
Hyper Drill
Twin Beam
Armor Cannon
Bitter Blade* (slashing flag does not exist by default)
Comeuppance
Aqua Cutter* (slashing flag does not exist by default)

Made educated guesses on the body shape and exp yield of new Pokemon; not sure how interested you'd be in this one because it would be an unofficial placeholder, but it would make it easier for users to plug in directly.

I could also help with some move and ability programming. I have the following on my todo list:
Silk Trap
Triple Dive
Tidy Up
Population Bomb
Shed Tail
Thermal Exchange
Toxic Debris

Here's what I had compiled if you'd like to cross-reference it against what you've put together. I'll keep you updated.
Actually, I've finished writing all of the abilities and moves but have yet to test them all.
And I appreciate all the feedback and contributions from everyone here.
So, feel free to contribute and give feedback to the resource.
 

Caruban

Cooltrainer
Member
Joined
Sep 24, 2020
Posts
165
Caruban updated Generation 9 Resource Pack (WIP, SPOILERS) with a new update entry:

Update v0.5

Change logs:
Add all the remaining Abilities from the list
Beads of Ruin
Commander
Costar
Guard Dog
Hadron Engine
Lingering Aroma
Mycelium Might
Purifying Salt
Seed Sower
Supreme Overlord
Sword of Ruin
Tablets of Ruin
Thermal Exchange
Toxic Debris
Vessel of Ruin
Fixing Quark Drive bug when the terrain ended
Fixing Wind Rider bug from the Tailwind
Add Method for evolving Kubfu using Scroll of Water
Add all remaining Items from the list
...

Read the rest of this update entry...
 

CornParade0669

Novice
Member
Joined
Apr 23, 2022
Posts
12
Can you explain a little how Supreme Overlord is working? It looks like it sets values when the battle starts, but I was under the impression it applies only when Kingambit / the ability user is switched in? And if the number of fainted Pokemon changes while it is active (i.e. with Revive items) it keeps the same boost it had before until it switches out and in again?

If it's already doing this in your code then that's fine, I'm just having some trouble comprehending that while reading through it.
 

Caruban

Cooltrainer
Member
Joined
Sep 24, 2020
Posts
165
Can you explain a little how Supreme Overlord is working? It looks like it sets values when the battle starts, but I was under the impression it applies only when Kingambit / the ability user is switched in? And if the number of fainted Pokemon changes while it is active (i.e. with Revive items) it keeps the same boost it had before until it switches out and in again?

If it's already doing this in your code then that's fine, I'm just having some trouble comprehending that while reading through it.
After re-reading the ability description, I mistook it for a Last Respect-like ability counterpart that changes the faint count with each hit.
Supreme Overlord only counts the fainted ally when it switches in. Maybe something like this:
Supreme Overlord:
Expand Collapse Copy
Battle::AbilityEffects::DamageCalcFromUser.add(:SUPREMEOVERLORD,
  proc { |ability, user, target, move, mults, baseDmg, type|
    next if user.effects[PBEffects::SupremeOverlord] <= 0
    mult = 1
    mult += 0.1 * battler.effects[PBEffects::SupremeOverlord]
    mults[:attack_multiplier] *= mult
  }
)
Battle::AbilityEffects::OnSwitchIn.add(:SUPREMEOVERLORD,
  proc { |ability, battler, battle, switch_in|
  battle.pbShowAbilitySplash(battler)
  numFainted = 0
  battler.battle.pbParty(battler.idxOwnSide).each { |b| numFainted += 1 if b.fainted? }
  battle.pbDisplay(_INTL("{1} gained strength from the fallen!", battler.pbThis))
  battler.effects[PBEffects::SupremeOverlord] = numFainted
  battle.pbHideAbilitySplash(battler)
  }
)
 

PauloJugoslavia

Novice
Member
Joined
Jul 26, 2019
Posts
40
Question-ish
It seems like Gigaton Hammer is using the Function Code for Hyper Beam, Giga Impact; but the move doesn't work like that in game.
 
Back
Top