![[PokeCommunity.com] Dynamax tutorial [PokeCommunity.com] Dynamax tutorial](https://i.imgur.com/Le0OnPa.gif)
![[PokeCommunity.com] Dynamax tutorial [PokeCommunity.com] Dynamax tutorial](https://imgur.com/o5ody9o.gif)
Let's make a Dynamax function to your game! (Remember that the system is still incomplete, you will need to upgrade as new role information is released)
LOG: (last update:12/30/2019)
Spoiler:
• Compatible with single and double battles
• Compatible with double battles with Partner
• The Dynamax is verified by the number of the currenct map (remove 'return if !(@battlers[index].hasDynamax? rescue false)' and 'return false if !@battlers[index].hasDynamax?' for change the map verification)
• The Dynamax system is a copy of Mega Evolution Method without the Pokemon having to hold an item
• The move list changes to Max Moves based on the move type in the Pokémon list.
12/30/2019
• Dynamax now multiplies the Pokémon's HP by its Dynamax Level.
• Gigantamax has been included in the scan, but there is no specific method for it (for now)
• Pokémon Dynamax cannot receive Flinch, be kicked out of the battle by moves like Roar (configured on the move itself, not tutorials).
• Max Moves are set in MoveEffects and not in this tutorial.
• IMPORTANT THING: The Dynamax system still has several HP multiplication related bugs (add to your project knowing that this will happen and please, if you find the solution to the correct calculations share here to improve the system and make it true to the original games).
Let's start this crap!
Inside Settings, search for "MEGARINGS" and bellow add:
Code:
DBANDS = [:DYNAMAXBAND]
Within the PBEffects script for battler effects, add (where XXX is the next numeric value):
Code:
Dynamax = XXX
DBoost = XXX
DButton = XXX
# Max Move Effects
MaxGuard = XXX
MaxKnuckle = XXX
MaxAirstream = XXX
MaxOoze = XXX
MaxQuake = XXX
MaxSteelspike = XXX
# Gigantamax
Gigantamax = XXX
MaxMove1 = XXX
MaxMove2 = XXX
MaxMove3 = XXX
MaxMove4 = XXX
Code:
attr_accessor :dynamax
attr_accessor :gigantamax
Code:
# Dynamax is compatible with large maps
def hasDynamax?
maps = [] # maps for allow Dynamax
if $game_map && maps.include?($game_map.map_id) &&
!(self.isConst?(species,PBSpecies,:ZACIAN) ||
self.isConst?(species,PBSpecies,:ZAMAZENTA))
return true
end
return false
end
def isDynamax?
#return false if @effects[PBEffects::Transform]
if @pokemon
return (@pokemon.isDynamax? rescue false)
end
return false
end
def makeUnmax
return pbUndynamax
end
If you want to use Gigantamax, just remove "#" in lines
Code:
def hasGigantamax?
return false if @effects[PBEffects::Transform]
if @pokemon # && @pokemon.dynamax_lvl==10
if isConst?(species,PBSpecies,:CHARIZARD) # ||
#isConst?(species,PBSpecies,:BUTTERFREE) ||
#isConst?(species,PBSpecies,:PIKACHU) ||
#isConst?(species,PBSpecies,:MEOWTH) ||
#isConst?(species,PBSpecies,:MACHAMP) ||
#isConst?(species,PBSpecies,:GENGAR) ||
#isConst?(species,PBSpecies,:KINGLER) ||
#isConst?(species,PBSpecies,:LAPRAS) ||
#isConst?(species,PBSpecies,:EEVEE) ||
#isConst?(species,PBSpecies,:SNORLAX) ||
#isConst?(species,PBSpecies,:GARBODOR) ||
#isConst?(species,PBSpecies,:MELMETAL) ||
#isConst?(species,PBSpecies,:CORVIKNIGHT) ||
#isConst?(species,PBSpecies,:ORBEETLE) ||
#isConst?(species,PBSpecies,:DREDNAW) ||
#isConst?(species,PBSpecies,:COALOSSAL) ||
#isConst?(species,PBSpecies,:APPLETUN) ||
#isConst?(species,PBSpecies,:SANDACONDA) ||
#isConst?(species,PBSpecies,:TOXTRICITY) ||
#isConst?(species,PBSpecies,:CENTISKORCH) ||
#isConst?(species,PBSpecies,:HATTERENE) ||
#isConst?(species,PBSpecies,:GRIMMSNARL) ||
#isConst?(species,PBSpecies,:ALCREMIE) ||
#isConst?(species,PBSpecies,:COPPERAJAH) ||
#isConst?(species,PBSpecies,:DURALUDON) ||
#isConst?(species,PBSpecies,:ETERNATUS)
return true
end
end
return false
end
Continuing...
Code:
def pbUndynamax
if @pokemon
@battle.pbDisplay(_INTL("{1}'s reversing the changes!",pbThis))
@battle.pbCommonAnimation ("UnDynamaxAnimationHere",self,nil)
@effects[PBEffects::DBoost] = false
@effects[PBEffects::Dynamax] = 0
@effects[PBEffects::DButton] = false
# Only for Gigantamax
if hasGigantamax?
@pokemon.form=0
@battle.scene.pbChangePokemon(self,@pokemon)
@effects[PBEffects::Gigantamax]=0
end
@pokemon.makeUndynamax
pbUnMaxMove(unmax=true)
pbUpdate(true)
@pokemon.pbReversing
#@battle.scene.pbChangePokemon (self, @ pokemon) No need this line, cuz only check if Gigantamax up
@battle.pbCommonAnimation ("UnDynamaxAnimation2Here",self,nil)
end
end
Code:
# Dynamax / Gigantamax
@effects[PBEffects::Dynamax] = 0
@effects[PBEffects::DBoost] = false
@effects[PBEffects::DButton] = false
@effects[PBEffects::Gigantamax] = 0
# Max Move Effects
@effects[PBEffects::MaxGuard] = false
@effects[PBEffects::MaxKnuckle] = false
@effects[PBEffects::MaxAirstream] = false
@effects[PBEffects::MaxOoze] = false
@effects[PBEffects::MaxQuake] = false
@effects[PBEffects::MaxSteelspike] = false
# Max Special Usage
@effects[PBEffects::MaxMove1] = 0
@effects[PBEffects::MaxMove2] = 0
@effects[PBEffects::MaxMove3] = 0
@effects[PBEffects::MaxMove4] = 0
Code:
# Dynamax
def pbMaxMove
imposter=isConst?(species,PBSpecies,:DITTO) && isConst?(ability,PBAbilities,:LIMBER)
for i in 0...4 # [@moves[0],@moves[1],@moves[2],@moves[3]]
if @moves[i].id>0 && !imposter
if @moves[i] .pbIsStatus?
@moves[i]=PokeBattle_Move.pbFromPBMove(@battle,PBMove.new(getConst(PBMoves,:MAXGUARD)))
elsif @moves[i].type==0 # Normal
@moves[i]=PokeBattle_Move.pbFromPBMove(@battle,PBMove.new(getConst(PBMoves,:MAXSTRIKE)))
elsif @moves[i].type==1 # Fighting
@moves[i]=PokeBattle_Move.pbFromPBMove(@battle,PBMove.new(getConst(PBMoves,:MAXKNUCKLE)))
elsif @moves[i].type==2 # Flying
@moves[i]=PokeBattle_Move.pbFromPBMove(@battle,PBMove.new(getConst(PBMoves,:MAXAIRSTREAM)))
elsif @moves[i].type==3 # Poison
@moves[i]=PokeBattle_Move.pbFromPBMove(@battle,PBMove.new(getConst(PBMoves,:MAXOOZE)))
elsif @moves[i].type==4 # Ground
@moves[i]=PokeBattle_Move.pbFromPBMove(@battle,PBMove.new(getConst(PBMoves,:MAXQUAKE)))
elsif @moves[i].type==5 # Rock
@moves[i]=PokeBattle_Move.pbFromPBMove(@battle,PBMove.new(getConst(PBMoves,:MAXROCKFALL)))
elsif @moves[i].type==6 # Bug
@moves[i]=PokeBattle_Move.pbFromPBMove(@battle,PBMove.new(getConst(PBMoves,:MAXFLUTTERBY)))
elsif @moves[i].type==7 # Ghost
@moves[i]=PokeBattle_Move.pbFromPBMove(@battle,PBMove.new(getConst(PBMoves,:MAXPHANTASM)))
elsif @moves[i].type==8 # Steel
@moves[i]=PokeBattle_Move.pbFromPBMove(@battle,PBMove.new(getConst(PBMoves,:MAXSTEELSPIKE)))
elsif @moves[i].type==10 # Fire
@moves[i]=PokeBattle_Move.pbFromPBMove(@battle,PBMove.new(getConst(PBMoves,:MAXFLARE)))
elsif @moves[i].type==11 # Water
@moves[i]=PokeBattle_Move.pbFromPBMove(@battle,PBMove.new(getConst(PBMoves,:MAXGEYSER)))
elsif @moves[i].type==12 # Grass
@moves[i]=PokeBattle_Move.pbFromPBMove(@battle,PBMove.new(getConst(PBMoves,:MAXOVERGROWTH)))
elsif @moves[i].type==13 # Electric
@moves[i]=PokeBattle_Move.pbFromPBMove(@battle,PBMove.new(getConst(PBMoves,:MAXLIGHTNING)))
elsif @moves[i].type==14 # Psychic
@moves[i]=PokeBattle_Move.pbFromPBMove(@battle,PBMove.new(getConst(PBMoves,:MAXMINDSTORM)))
elsif @moves[i].type==15 # Ice
@moves[i]=PokeBattle_Move.pbFromPBMove(@battle,PBMove.new(getConst(PBMoves,:MAXHAILSTORM)))
elsif @moves[i].type==16 # Dragon
@moves[i]=PokeBattle_Move.pbFromPBMove(@battle,PBMove.new(getConst(PBMoves,:MAXWYRMWIND)))
elsif @moves[i].type==17 # Dark
@moves[i]=PokeBattle_Move.pbFromPBMove(@battle,PBMove.new(getConst(PBMoves,:MAXDARKNESS)))
elsif @moves[i].type==18 # Fairy
@moves[i]=PokeBattle_Move.pbFromPBMove(@battle,PBMove.new(getConst(PBMoves,:MAXSTARFALL)))
end
end
@moves[i].pp=PokeBattle_Move.pbFromPBMove(@battle,@pokemon.moves[i]).pp
@moves[i].totalpp=PokeBattle_Move.pbFromPBMove(@battle,@pokemon.moves[i]).totalpp
end
return false
end
def pbUnMaxMove(unmax=false)
@moves = [
PokeBattle_Move.pbFromPBMove(@battle,@pokemon.moves[0]),
PokeBattle_Move.pbFromPBMove(@battle,@pokemon.moves[1]),
PokeBattle_Move.pbFromPBMove(@battle,@pokemon.moves[2]),
PokeBattle_Move.pbFromPBMove(@battle,@pokemon.moves[3])
]
if unmax
@pokemon.moves[0].pp-=@effects[PBEffects::MaxMove1]
@pokemon.moves[1].pp-=@effects[PBEffects::MaxMove2]
@pokemon.moves[2].pp-=@effects[PBEffects::MaxMove3]
@pokemon.moves[3].pp-=@effects[PBEffects::MaxMove4]
for i in 0...4
@moves[i][email protected][i].pp
@moves[i][email protected][i].totalpp
end
end
end
Code:
# Dynamax
@pokemon.makeUnmax if self.isDynamax?
Code:
def pbFlinch(attacker=nil)
return false if @effects[PBEffects::Dynamax]>0 # Dynamax can't be flinched
return false if (!attacker || !attacker.hasMoldBreaker) && hasWorkingAbility(:INNERFOCUS)
@effects[PBEffects::Flinch]=true
return true
end
Code:
attr_accessor (:dynamax)
Code:
if attacker.hasWorkingItem(:CHOICEBAND) && pbIsPhysical?(type)
atkmult=(atkmult*1.5).round
end
if attacker.hasWorkingItem(:CHOICESPECS) && pbIsSpecial?(type)
atkmult=(atkmult*1.5).round
end
Code:
if !attacker.isDynamax?
if attacker.hasWorkingItem(:CHOICEBAND) && pbIsPhysical?(type)
atkmult=(atkmult*1.5).round
end
if attacker.hasWorkingItem (:CHOICESPECS) && pbIsSpecial?(type)
atkmult=(atkmult*1.5).round
end
end
In PokeBattle_Battle (without R), within "def initialize(scene,p1,p2,player,opponent)", search for "if @opponent.is_a?(Array)"
and just below put these lines:
Code:
# DynaMax
@dynaMax = []
if @player.is_a? (Array)
@dynaMax[0] = [-1]*@player.length
else
@dynaMax[0] = [-1]
end
if @opponent.is_a?(Array)
@dynaMax[1] = [-1]*@opponent.length
else
@dynaMax[1] = [-1]
end
Code:
def pbHasDBand?(battlerIndex)
return true if !pbBelongsToPlayer?(battlerIndex)
for i in DBANDS
next if !hasConst?(PBItems,i)
return true if $PokemonBag.pbQuantity(i)>0
end
return false
end
Code:
def dynaMax
return @dynaMax
end
Code:
# Dynamax
if @dynaMax[side][owner]==idxPokemon
@dynaMax[side][owner]=-1
end
# Reverse Dynamax if still on
if @battlers[idxPokemon].isDynamax?
@battlers[idxPokemon].pbUndynamax
end
Code:
# Dynamax
if @dynaMax[side][owner]==idxPokemon
@dynaMax[side][owner]=-1
end
Code:
################################################################################
# Dynamax battler.
################################################################################
def pbCanDynamax?(index)
return false if $game_switches[NO_DYNAMAX]
return false if! @battlers[index].hasDynamax?
return false if pbIsOpposing?(index) && !@opponent
return false if !pbHasDBand?(index)
# If a Poke holding a Mega Stone / Z-Crystal, Dynamax not be able
# to activate for him!
return false if @battlers[index].hasZMove? # Only if you are using Z-Moves addon, otherwise remove this line
return false if @battlers[index].hasMega?
side = (pbIsOpposing?(index)) ? 1 : 0
owner = pbGetOwnerIndex(index)
return false if @dynaMax[side][owner]!=-1
return false if @battlers[index].effects[PBEffects::SkyDrop]
# Only for AI get Max / G-Max Moves
@battlers[index].pbMaxMove if !pbBelongsToPlayer?(index)
return true
end
def pbRegisterDynamax(index)
side = (pbIsOpposing?(index)) ? 1 : 0
owner = pbGetOwnerIndex(index)
@dynaMax[side][owner]=index
end
def pbDynamax(index)
return if! @battlers[index] || !@battlers[index].pokemon
return if! (@ battlers [index] .hasDynamax? rescue false)
return if (@battlers[index].isDynamax? rescue true)
ownername = pbGetOwner(index).fullname
ownername = pbGetOwner(index).name if pbBelongsToPlayer?(index)
@battlers [index].effects[PBEffects::Dynamax]=3
@battlers [index].effects[PBEffects::DBoost]=true
@scene.pbRecall(index)
# Checking Gigantamax
if @battlers[index].hasGigantamax?
@battlers[index].pokemon.makeGigantamax
@battlers[index].effects[PBEffects::Gigantamax]=3
@battlers[index].form=@battlers[index].pokemon.form
@ scene.pbChangePokemon(@battlers[index],@battlers[index].pokemon)
end
if pbBelongsToPlayer?(index) || @battlers[index].pbPartner && !pbIsOpposing?(index)
@scene.pbSendOut index,@battlers[index].pokemon)
elsif pbIsOpposing?(index)
@scene.pbTrainerSendOut (index,@battlers[index].pokemon)
end
@battlers[index].pokemon.makeDynamax
@battlers[index].pbUpdate(true)
maxname=(@battlers[index].pokemon.maxName rescue nil)
if! maxname || maxname ==""
maxname = _INTL ("{1}",PBSpecies.getName(@battlers[index].pokemon.species))
end
#pbDisplay(_INTL("{1} has Mega Evolved into {2}!",@battlers[index].pbThis,meganame))
PBDebug.log("[Dynamax] #{@battlers[index].pbThis} became Max #{maxname}")
side = (pbIsOpposing?(index)) ? 1 : 0
owner = pbGetOwnerIndex(index)
@dynaMax[side][owner]=-2
pbPlayCrySpecies(@battlers[index])
end
Code:
# Dynamax
for i in 0...@dynaMax[0].length
@dynaMax[0][i]=-1 if @dynaMax[0][i]>=0
end
for i in 0...@dynaMax[1].length
@dynaMax[1][i]=-1 if @dynaMax[1][i]>=0
end
Within "if cmd==0 # Fight" put:
Code:
# Dynamax
if @dynaMax[side][owner]==i
@dynaMax[side][owner]=-1
end
Code:
# Dynamax
@dynaMax[0][0]=-1 if @dynaMax[0][0]>=0
@dynaMax[1][0]=-1 if @dynaMax[1][0]>=0
Code:
# Dynamax
@dynaMax[0][0]=-1 if @dynaMax[0][0]>=0
@dynaMax[1][0]=-1 if @dynaMax[1][0]>=0
Code:
# Dynamax
if @dynaMax[side][owner]==i
@dynaMax[side][owner]=-1
end
Code:
# Dynamax
@dynaMax[0][0]=-1 if @dynaMax[0][0]>=0
@dynaMax[1][0]=-1 if @dynaMax[1][0]>=0
Code:
# Dynamax
dynamaxed = []
for i in priority
if @choices[i.index][0]== 1 && !i.effects[PBEffects::SkipTurn]
side = (pbIsOpposing?(i.index)) ? 1 : 0
owner = pbGetOwnerIndex (i.index)
if @dynaMax[side][owner]==i.index
pbDynamax(i.index)
dynamaxed.push(i.index)
end
end
end
Code:
# Dynamax
if @battlers[i].effects[PBEffects::Dynamax]>0
@battlers[i].effects[PBEffects::Dynamax]-=1
if @battlers[i].effects[PBEffects::Dynamax]==0
@battlers[i].pbUndynamax
end
end
Code:
((pokemon.makeUnmax if pokemon.isDynamax?) rescue nil)
Code:
# Dynamax
@dButton=0 # 0 = don't show, 1 = show, 2 = pressed
Add "@dButton" to the parameters
Code:
@buttons.refresh(self.index,@battler? @battler.moves : nil, @megaButton,@zButton,@ultraButton,@dButton) if @buttons
Code:
@buttons.update(self.index,moves,@megaButton,@zButton,@ultraButton,@dButton) # Dynamax
Code:
# Dynamax
@dynamaxbitmap=AnimatedBitmap.new (_INTL("Graphics/Pictures/Battle/cursor_dynamax"))
Just below "def dispose" under "@megaevobitmap.dispose", add the line:
Code:
@dynamaxbitmap.dispose
Code:
def update(index=0,moves=nil,megaButton=0)
refresh(index,moves,megaButton)
end
def refresh(index,moves,megaButton)
Code:
def update(index=0,moves=nil,megaButton=0,dButton=0) # Dynamax
refresh(index,moves,megaButton,dButton) # Dynamax
end
def refresh(index,moves,megaButton,dButton) # Dynamax
Code:
# Dynamax
if dButton>0
self.bitmap.blt(146.0,@dynamaxbitmap.bitmap,Rect.new(0,(dButton-1)*46.96.46))
end
Code:
elsif @battler.isDynamax?
imagepos.push(["Graphics/Pictures/Battle/icon_dynamax",@spritebaseX+0.32,0,0,-1,-1))
Now search for "def pbFightMenu (index)" and under "cw.megaButton=1 if (@battle.pbCanMegaEvolve?(Index) && [email protected]?(Index))", add the lines:
Code:
# Dynamax
cw.dButton = 0
cw.dButton = 1 if (@battle.pbCanDynamax?(index) && [email protected]?(index) && [email protected]?(index) &&
[email protected]?(index))
Z-Move, otherwise remove these commands!
Below, within "if Input.trigger?(Input::C) # Confirm choice" add the lines:
Code:
if battler.effects [PBEffects::DButton]
battler.effects [PBEffects::MaxMove1] += 1 if cw.index == 0
battler.effects [PBEffects::MaxMove2] += 1 if cw.index == 1
battler.effects [PBEffects::MaxMove3] += 1 if cw.index == 2
battler.effects [PBEffects::MaxMove4] += 1 if cw.index == 3
end
Code:
if @ battle.pbCanDynamax?(index) # Use Dynamax
battler.effects[PBEffects::DButton] = true
battler.pbMaxMove
@ battle.pbRegisterDynamax (index)
pbPlayDecisionSE
cw.dButton = 2
pbUpdate
end
Code:
elsif Input.trigger?(Input::B) # Cancel fight menu
battler.effects[PBEffects::DButton] = false
battler.pbUnMaxMove if! battler.isDynamax?
@lastmove[index] = cw.index
pbPlayCancelSE
return -1
end
Code:
frames = pbCryFrameLength(pkmn.pokemon)
pbPlayCry(pkmn.pokemon)
frames.times do
pbGraphicsUpdate
pbInputUpdate
pbFrameUpdate
end
Code:
# Dynamax Reversions if is fainted
if @ battle.battlers[pkmn.index].isDynamax?
@battle.battlers[pkmn.index].pbUndynamax
else
frames = pbCryFrameLength(pkmn.pokemon)
pbPlayCry(pkmn.pokemon)
frames.times do
pbGraphicsUpdate
pbInputUpdate
pbFrameUpdate
end
end
search for "# Recalculates this Pokémon's stats.", swap for:
Code:
# Recalculates this Pokémon's stats.
def calcStats
nature=self.nature
stats=[]
pvalues??=[100,100,100,100,100]
na5=(nature/5).floor
nm5=(nature%5).floor
if nd5!=nm5
pvalues??[nd5]=110
pvalues??[nm5]=90
end
level = self.level
bs = self.baseStats
for i in 0..5
base = bs[i]
if i==PBStats::HP
stats[i]=calcHP(base,level,@iv[i],@ev[i])
else
stats[i]=calcStat(base,level,@iv[i],@ev[i],pvalues??[i-1])
end
end
# Dynamax HP Boost
if isDynamax?
@totalhp=(stats[0]*pbDynamaxBoost).floor
diff=@totalhp-@hp
@hp=((@totalhp-diff)*pbDynamaxBoost).floor
@hp=0 if @hp <= 0
@hp=@totalhp if @hp>@totalhp
elsif isReversing?
@totalhp=stats[0]
@hp=(@hp/pbDynamaxBoost).floor
@hp+1 if !self.isFainted? # Because complete the caltulation
diff=@totalhp-@hp
@hp=0 if @hp<=0
@hp=@totalhp if @hp>@totalhp
else
if! isReversing? # Original Essentials Calc for HP
diff = @totalhp-@hp
@totalhp=stats[0]
@hp=@totalhp-diff
@hp=0 if @hp<= 0
@hp=@totalhp if @hp>@totalhp
end
end
@attack=stats[1]
@defense=stats[2]
@speed=stats[3]
@spatk=stats[4]
@spdef=stats[5]
end
Code:
################################################################################
# Dynamax Properties
################################################################################
# Dynamax
def makeDynamax
@dynamax = true
@needreverse = true
end
def makeUndynamax
@dynamax = false
end
def isDynamax?
return @dynamax
end
def hasGigantamax?
return @gigantamax
end
def dynamax_lvl
return @dynamax_lvl || 0
end
def pbReversing
return @needreverse = false
end
def isReversing?
if @needreverse
return true
end
return false
end
def pbDynamaxBoost
dynamaxboost=1.5+0.05*dynamax_lvl
end
Note that no individual move functions or items have been added to manipulate Dynamax Level. This will be done in another tutorial (maybe posted right here)
Now let's define the switch that will use to block the use of Dynamax. In Setings, find 'NO_MEGA_EVOLUTION' and place:
Code:
NO_DYNAMAX = XXX
Okay, here we finish all the code!
Now let's create the Max Moves and Item Dynamax Band.
Navigate to the PBS folder and in 'move.txt' add the lines: (replace 'XXX' with the last numbar and and 'YYY' with the function of MoveEffectf personal move)
Code:
XXX,MAXFLARE,Max Flare,YYY,110,FIRE,Physical,100,10,0,00,0,,"This is a Fire-type attack Dynamax Pokémon use. The user intensifies the sun for five turns."
XXX,MAXFLUTTERBY,Max Flutterby,YYY,110,BUG,Physical,100,10,0,00,0,,"This is a Bug-type attack Dynamax Pokémon use. This lowers the target's Sp. Atk stat."
XXX,MAXLIGHTNING,Max Lightning,YYY,110,ELECTRIC,Physical,100,10,0,00,0,,"This is an Electric-type attack Dynamax Pokémon use. The user turns the ground into Electric Terrain for five turns."
XXX,MAXSTRIKE,Max Strike,YYY,110,NORMAL,Physical,100,10,0,00,0,,"This is a Normal-type attack Dynamax Pokémon use. This lowers the target's Speed stat."
XXX,MAXKNUCKLE,Max Knuckle,YYY,110,FIGHTING,Physical,100,10,0,00,0,,"This is a Fighting-type attack Dynamax Pokémon use. This raises ally Pokémon's Attack stats."
XXX,MAXPHANTASM,Max Phantasm,YYY,110,GHOST,Physical,100,10,0,00,0,,"This is a Ghost-type attack Dynamax Pokémon use. This lowers the target's Defense stat."
XXX,MAXHAILSTORM,Max Hailstorm,YYY,110,ICE,Physical,100,10,0,00,0,,"This is an Ice-type attack Dynamax Pokémon use. The user summons a hailstorm lasting five turns."
XXX,MAXOOZE,Max Ooze,YYY,110,POISON,Physical,100,10,0,00,0,,"This is a Poison-type attack Dynamax Pokémon use. This raises ally Pokémon's Sp. Atk stats."
XXX,MAXGEYSER,Max Geyser,YYY,110,WATER,Physical,100,10,0,00,0,,"This is a Water-type attack Dynamax Pokémon use. The user summons a heavy rain that falls for five turns."
XXX,MAXAIRSTREAM,Max Airstream,YYY,110,FLYING,Physical,100,10,0,00,0,,"This is a Flying-type attack Dynamax Pokémon use. This raises ally Pokémon's Speed stats."
XXX,MAXSTARFALL,Max Starfall,YYY,110,FAIRY,Physical,100,10,0,00,0,,"This is a Fairy-type attack Dynamax Pokémon use. The user turns the ground into Misty Terrain for five turns."
XXX,MAXWYRMWIND,Max Wyrmwind,YYY,110,DRAGON,Physical,100,10,0,00,0,,"This is a Dragon-type attack Dynamax Pokémon use. This lowers the target's Attack stat."
XXX,MAXMINDSTORM,Max Mindstorm,YYY,110,PSYCHIC,Physical,100,10,0,00,0,,"This is a Psychic-type attack Dynamax Pokémon use. The user turns the ground into Psychic Terrain for five turns."
XXX,MAXROCKFALL,Max Rockfall,YYY,110,ROCK,Physical,100,10,0,00,0,,"This is a Rock-type attack Dynamax Pokémon use. The user summons a sandstorm lasting five turns."
XXX,MAXQUAKE,Max Quake,YYY,110,GROUND,Physical,100,10,0,00,0,,"This is a Ground-type attack Dynamax Pokémon use. This raises ally Pokémon's Sp. Def stats."
XXX,MAXDARKNESS,Max Darkness,YYY,110,DARK,Physical,100,10,0,00,0,,"This is a Dark-type attack Dynamax Pokémon use. This lowers the target's Sp. Def stat."
XXX,MAXOVERGROWTH,Max Overgrowth,YYY,110,GRASS,Physical,100,10,0,00,0,,"This is a Grass-type attack Dynamax Pokémon use. The user turns the ground into Grassy Terrain for five turns."
XXX,MAXSTEELSPIKE,Max Steelspike,YYY,110,STEEL,Physical,100,10,0,00,0,,"This is a Steel-type attack Dynamax Pokémon use. This raises ally Pokémon's Defense stats."
XXX,MAXGUARD,Max Guard,YYY,0,NORMAL,Status,100,10,0,00,0,,"This is a Status category attack Dynamax Pokémon use. Protect against all move, include other Dynamax moves."
Code:
XXX,DYNAMAXBAND,Dynamax Band,Dynamax Band's,8,0,"Allows the player's Pokémon to Dynamax and perform Max Moves.",0,0,6,
Here the Dynamax Button and Icon:
![[PokeCommunity.com] Dynamax tutorial [PokeCommunity.com] Dynamax tutorial](https://i.imgur.com/raR8QrA.png)
![[PokeCommunity.com] Dynamax tutorial [PokeCommunity.com] Dynamax tutorial](https://i.imgur.com/TMTwiLk.png)
This tutorial was made in Version 17 of Essentials, may contain errors and if necessary some methods must be adapted to work in later or earlier versions.
If you use, please remember to give credit for: Me
And for support: WolfPP, Zeak, Vendily, MGriffin and Luka S.J
Last edited: