Advertiser Content
Seen June 18th, 2016
Posted January 24th, 2015
95 posts
5.4 Years
In the script section PokemonItemEffects, search for this line (should be around 797)

ItemHandlers::UseOnPokemon.add(:DNASPLICERS,proc{|item,pokemon,scene|
Then, just literally copy this:

if isConst?(pokemon.species,PBSpecies,:KYUREM) && pokemon.hp>=0
     if pokemon.fused!=nil
       if $Trainer.party.length>=6
         scene.pbDisplay(_INTL("Your party is full! You can't unfuse {1}.",pokemon.name))
         next false
       else
         $Trainer.party[$Trainer.party.length]=pokemon.fused
         pokemon.fused=nil
         pokemon.form=0
         scene.pbHardRefresh
         scene.pbDisplay(_INTL("{1} changed Forme!",pokemon.name))
         next true
       end
     else
       chosen=scene.pbChoosePokemon(_INTL("Fuse with which Pokémon?"))
       if chosen>=0
         poke2=$Trainer.party[chosen]
         if (isConst?(poke2.species,PBSpecies,:RESHIRAM) ||
            isConst?(poke2.species,PBSpecies,:ZEKROM)) && poke2.hp>=0
           pokemon.form=1 if isConst?(poke2.species,PBSpecies,:RESHIRAM)
           pokemon.form=2 if isConst?(poke2.species,PBSpecies,:ZEKROM)
           pokemon.fused=poke2
           pbRemovePokemonAt(chosen)
           scene.pbHardRefresh
           scene.pbDisplay(_INTL("{1} changed Forme!",pokemon.name))
           next true
         elsif pokemon==poke2
           scene.pbDisplay(_INTL("{1} can't be fused with itself!",pokemon.name))
         else
           scene.pbDisplay(_INTL("{1} can't be fused with {2}.",poke2.name,pokemon.name))
         end
       else
         next false
       end
     end
   else
     scene.pbDisplay(_INTL("It had no effect."))
     next false
   end
But change "Kyurem", "Reshiram" and "Zekrom" for whatever you want.
Male
Omnipresence
Seen May 11th, 2019
Posted May 7th, 2019
1,220 posts
5.6 Years
Pretty simple
Here's the code used for the splicers(you can search throughout all the script sections for keywords by pressing Shift+Ctrl+F)
Let's pretend we want to fuse Pikachu with either Mankey or Charizard

ItemHandlers::UseOnPokemon.add(:DNASPLICERS,proc{|item,pokemon,scene|
   if isConst?(pokemon.species,PBSpecies,:KYUREM) && pokemon.hp>=0
     if pokemon.fused!=nil
       if $Trainer.party.length>=6
         scene.pbDisplay(_INTL("Your party is full! You can't unfuse {1}.",pokemon.name))
         next false
       else
         $Trainer.party[$Trainer.party.length]=pokemon.fused
         pokemon.fused=nil
         pokemon.form=0
         scene.pbHardRefresh
         scene.pbDisplay(_INTL("{1} changed Forme!",pokemon.name))
         next true
       end
     else
       chosen=scene.pbChoosePokemon(_INTL("Fuse with which Pokémon?"))
       if chosen>=0
         poke2=$Trainer.party[chosen]
         if (isConst?(poke2.species,PBSpecies,:RESHIRAM) ||
            isConst?(poke2.species,PBSpecies,:ZEKROM)) && poke2.hp>=0
           pokemon.form=1 if isConst?(poke2.species,PBSpecies,:RESHIRAM)
           pokemon.form=2 if isConst?(poke2.species,PBSpecies,:ZEKROM)
           pokemon.fused=poke2
           pbRemovePokemonAt(chosen)
           scene.pbHardRefresh
           scene.pbDisplay(_INTL("{1} changed Forme!",pokemon.name))
           next true
         elsif pokemon==poke2
           scene.pbDisplay(_INTL("{1} can't be fused with itself!",pokemon.name))
         else
           scene.pbDisplay(_INTL("{1} can't be fused with {2}.",poke2.name,pokemon.name))
         end
       else
         next false
       end
     end
elsif isConst?(pokemon.species,PBSpecies,:PIKACHU) && pokemon.hp>=0  #checks to see if this pokemon is Pikachu?
   if pokemon.fused!=nil  #checks to see if this pokemon has already been fused
       if $Trainer.party.length>=6   #if it has, this checks to see if you have 6 pokemon in your party
         scene.pbDisplay(_INTL("Your party is full! You can't unfuse {1}.",pokemon.name))  #you can't have more than 6, so you can't unfuse them
         next false  
       else     #if you have less that 6 pokemon
         $Trainer.party[$Trainer.party.length]=pokemon.fused   #finds the next open slot in your party and puts unfused pokemon there
         pokemon.fused=nil  #sets this equal to indicate it is not fused
         pokemon.form=0  #sets form equal to 0
         scene.pbHardRefresh  #refreshes the scene, to show the changes to your party immediately
         scene.pbDisplay(_INTL("{1} changed Forme!",pokemon.name))
         next true
       end
     else  #if the pokemon hasn't been fused
       chosen=scene.pbChoosePokemon(_INTL("Fuse with which Pokémon?"))  #returns a chosen party index
       if chosen>=0  #the party index will be -1 if the player selects cancel, this checks that
         poke2=$Trainer.party[chosen]  #the pokemon you chose to fuse it with
         if (isConst?(poke2.species,PBSpecies,:MANKEY) ||  
            isConst?(poke2.species,PBSpecies,:CHARIZARD)) && poke2.hp>=0  #is it one of these pokemon, and is it's hp greater than or equal to 0(Idk what exactly this intends to prevent, hopefully someone can explain that to me?)
           pokemon.form=1 if isConst?(poke2.species,PBSpecies,:MANKEY)  #if the pokemon you chose is Mankey, it will set Pikachu's form equal to 1
           pokemon.form=2 if isConst?(poke2.species,PBSpecies,:CHARIZARD) #if the pokemon you chose is Charizard, it will set Pikachu's form equal to 2
           pokemon.fused=poke2 #sets the fused value equal to the pokemon you chose, so that it will return when/if you unfuse your Pikachu
           pbRemovePokemonAt(chosen)  #removes the pokemon you chose
           scene.pbHardRefresh  #refreshes the scene to show changes immediately
           scene.pbDisplay(_INTL("{1} changed Forme!",pokemon.name))
           next true
         elsif pokemon==poke2    #doesn't let you fuse your pikachu with itself
           scene.pbDisplay(_INTL("{1} can't be fused with itself!",pokemon.name))
         else  #if it wasn't either of the aforementioned pokemon (Mankey and Charizard), it will tell you it can't fuse the pokemon you selected
           scene.pbDisplay(_INTL("{1} can't be fused with {2}.",poke2.name,pokemon.name))
         end
       else
         next false
       end
     end
   else
     scene.pbDisplay(_INTL("It had no effect."))
     next false
   end
})
Once you've added in these checks properly, all you need is the graphics. Pikachu is number 25, so in your Battlers folder you will need 025_1 ,025b_1,025_2and 025b_2 (the front and back battle sprites for your new forms). You will also need similar graphics in your Icons folder. If these files do not exist, Essentials will simply use the regular form's file (025). See the wiki for more information on naming files.

Lusus

Age 20
Non-binary
Ljubljana
Seen April 18th, 2018
Posted February 17th, 2018
1,409 posts
6.8 Years
Thanks for the help! :D Also wondering, how do I determine the base stats once fused? and is there a way to make the fused pokemon learn a move exclusively?
Find Kyurems script in PokemonMultipleForms scripts, it should look like this (without some comments)
MultipleForms.register(:KYUREM,{
"getBaseStats"=>proc{|pokemon|
   case pokemon.form  #Stats in order: Attack, Defense, Speed, Sp. Atk, Sp. Def
     when 1; next [125,120, 90,95,170,100] # White Kyurem
     when 2; next [125,170,100,95,120, 90] # Black Kyurem
     else;   next                          # Kyurem
   end
},
"ability"=>proc{|pokemon|  #Ability
   case pokemon.form
     when 1; next getID(PBAbilities,:TURBOBLAZE) # White Kyurem
     when 2; next getID(PBAbilities,:TERAVOLT)   # Black Kyurem
     else;   next                                # Kyurem
   end
},
"evYield"=>proc{|pokemon|    #EVs
   case pokemon.form
     when 1; next [0,0,0,0,3,0] # White Kyurem
     when 2; next [0,3,0,0,0,0] # Black Kyurem
     else;   next               # Kyurem
   end
},
"getMoveList"=>proc{|pokemon|
   next if pokemon.form==0
   movelist=[]
   case pokemon.form   #moves
     when 1; movelist=[[1,:ICYWIND],[1,:DRAGONRAGE],[8,:IMPRISON],
                       [15,:ANCIENTPOWER],[22,:ICEBEAM],[29,:DRAGONBREATH],
                       [36,:SLASH],[43,:FUSIONFLARE],[50,:ICEBURN],
                       [57,:DRAGONPULSE],[64,:IMPRISON],[71,:ENDEAVOR],
                       [78,:BLIZZARD],[85,:OUTRAGE],[92,:HYPERVOICE]]
     when 2; movelist=[[1,:ICYWIND],[1,:DRAGONRAGE],[8,:IMPRISON],
                       [15,:ANCIENTPOWER],[22,:ICEBEAM],[29,:DRAGONBREATH],
                       [36,:SLASH],[43,:FUSIONBOLT],[50,:FREEZESHOCK],
                       [57,:DRAGONPULSE],[64,:IMPRISON],[71,:ENDEAVOR],
                       [78,:BLIZZARD],[85,:OUTRAGE],[92,:HYPERVOICE]]
   end
   for i in movelist
     i[1]=getConst(PBMoves,i[1])
   end
   next movelist
},
"onSetForm"=>proc{|pokemon,form|
   pbSeenForm(pokemon)
}
})
copy it, paste it below it then just modify it depending on what your fusion is like(and if Pokemon only has 1 fusion, remove all "when 2" parts).
Male
Italy
Seen 2 Days Ago
Posted 2 Days Ago
19 posts
25 Days
Hi, i'm trying to fuse minun and plusle but it doesn't work. This is the code:


if isConst?(pokemon.species,PBSpecies,:MINUN) && pokemon.hp>=0
if pokemon.fused!=nil
if $Trainer.party.length>=6
scene.pbDisplay(_INTL("Your party is full! You can't unfuse {1}.",pokemon.name))
next false
else
$Trainer.party[$Trainer.party.length]=pokemon.fused
pokemon.fused=nil
pokemon.form=0
scene.pbHardRefresh
scene.pbDisplay(_INTL("{1} changed Forme!",pokemon.name))
next true
end
else
chosen=scene.pbChoosePokemon(_INTL("Fuse with which Pokémon?"))
if chosen>=0
poke2=$Trainer.party[chosen]
if (isConst?(poke2.species,PBSpecies,:PLUSLE)) && poke1.hp>=0
pokemon.form=1 if isConst?(poke2.species,PBSpecies,:PLUSLE)
pokemon.fused=poke2
pbRemovePokemonAt(chosen)
scene.pbHardRefresh
scene.pbDisplay(_INTL("{1} changed Forme!",pokemon.name))
next true
elsif pokemon==poke2
scene.pbDisplay(_INTL("{1} can't be fused with itself!",pokemon.name))
else
scene.pbDisplay(_INTL("{1} can't be fused with {2}.",poke2.name,pokemon.name))
end
else
next false
end
end
else
scene.pbDisplay(_INTL("It had no effect."))
next false
end
})
Advertiser Content