- Pokémon Essentials Version
- v21.1 ✅
This may be compatible with other versions, it for sure will be with minor edits. (this was technically made with Essentials GSC V21.1 but will still work with Essentials V21.1)
Add this script above main and name it whatever you want or "tradeOffMachine"
	
	
	
	
	
	
		
			
			
			
			
			
		
	
	
	
		
	
	
		
	
There isn't a pretty UI but since Im making a Gen 2 game most of you wouldn't want the one I would make!
Next in an event do a script and put "tradeOffMachine" or "tradeOffMachine()" in the script
Now talk to the event and it will have you select 2 pokemon, the first is the sacrifice and the second is the Inheritor. They must be from the same evolutionary line If you want it to be any pokemon try the script at the bottom instead!
Lastly it will ask what you want to Inherit a stat Iv or a move or shininess Ect... after you select the first pokemon... runs away? and the second powers up how you selected... or down I guess...
Here's an alternative script If you want any pokemon to work and not just one from the evolutionary family
	
	
	
	
	
	
		
			
			
			
			
			
		
	
	
	
		
	
	
		
	
					
					
	
		
			Add this script above main and name it whatever you want or "tradeOffMachine"
			
				Ruby:
			
		
		
		def tradeOffMachine
  if $player.party.length < 2
    pbMessage("You need at least two Pokémon in your party to use this machine.")
    return
  end
  # Setup the party screen
  scene = PokemonParty_Scene.new
  screen = PokemonPartyScreen.new(scene, $player.party)
  # 1. Choose the Pokémon to sacrifice
  scene.pbStartScene($player.party, _INTL("Choose a Pokémon."))
  scene.pbSetHelpText("Choose the Pokémon to sacrifice.")
  sac_index = scene.pbChoosePokemon
  if !sac_index || sac_index < 0
    scene.pbEndScene
    pbMessage("Cancelled.")
    return
  end
  sac_pkmn = $player.party[sac_index]
  # 2. Choose the Pokémon to receive
   # 2. Choose the Pokémon to receive
  scene.pbSetHelpText("Choose the Pokémon to receive the transfer.")
  recv_index = scene.pbChoosePokemon
  if !recv_index || recv_index < 0 || recv_index == sac_index
    scene.pbEndScene
    pbMessage("Invalid selection.")
    return
  end
  recv_pkmn = $player.party[recv_index]
  # Check if they are in the same evolution family
  sac_family  = sac_pkmn.species_data.get_family_species
  recv_species = recv_pkmn.species
  unless sac_family.include?(recv_species)
    scene.pbEndScene
    pbMessage("#{recv_pkmn.name} is not in the same evolutionary family as #{sac_pkmn.name}.")
    return
  end
  #recv_pkmn = $player.party[recv_index]
  scene.pbEndScene
  # 3. Choose what to transfer
  transfer_options = [
    _INTL("HP IV"),
    _INTL("Attack IV"),
    _INTL("Defense IV"),
    _INTL("Sp. Atk IV"),
    _INTL("Sp. Def IV"),
    _INTL("Speed IV"),
    _INTL("Shiny Flag"),
    _INTL("Pokerus"),
    _INTL("First Move")
  ]
  choice = pbMessage("What do you want to transfer?", transfer_options, -1)
  if choice < 0
    pbMessage("Cancelled.")
    return
  end
  # 4. Perform the transfer
  case choice
  when 0 then recv_pkmn.iv[:HP]              = sac_pkmn.iv[:HP]
  when 1 then recv_pkmn.iv[:ATTACK]          = sac_pkmn.iv[:ATTACK]
  when 2 then recv_pkmn.iv[:DEFENSE]         = sac_pkmn.iv[:DEFENSE]
  when 3 then recv_pkmn.iv[:SPECIAL_ATTACK]  = sac_pkmn.iv[:SPECIAL_ATTACK]
  when 4 then recv_pkmn.iv[:SPECIAL_DEFENSE] = sac_pkmn.iv[:SPECIAL_DEFENSE]
  when 5 then recv_pkmn.iv[:SPEED]           = sac_pkmn.iv[:SPEED]
  when 6 then recv_pkmn.makeShiny
  when 7 then recv_pkmn.givePokerus
  when 8
    if sac_pkmn.moves[0]
      recv_pkmn.moves[0] = sac_pkmn.moves[0].clone
    else
      pbMessage("No move in slot 1 to transfer. Cancelling.")
      return
    end
  end
  # 5. Confirm and remove the sacrificed Pokémon
  if pbConfirmMessage("Are you sure you want to sacrifice #{sac_pkmn.name}?")
    $player.party.delete_at(sac_index)
    pbMessage("#{sac_pkmn.name} has been sacrificed. The transfer is complete.")
  else
    pbMessage("Cancelled.")
  end
endThere isn't a pretty UI but since Im making a Gen 2 game most of you wouldn't want the one I would make!
Next in an event do a script and put "tradeOffMachine" or "tradeOffMachine()" in the script
Now talk to the event and it will have you select 2 pokemon, the first is the sacrifice and the second is the Inheritor. They must be from the same evolutionary line If you want it to be any pokemon try the script at the bottom instead!
Lastly it will ask what you want to Inherit a stat Iv or a move or shininess Ect... after you select the first pokemon... runs away? and the second powers up how you selected... or down I guess...
Here's an alternative script If you want any pokemon to work and not just one from the evolutionary family
			
				Code:
			
		
		
		def tradeOffMachine
  if $player.party.length < 2
    pbMessage("You need at least two Pokémon in your party to use this machine.")
    return
  end
  # Setup the party screen
  scene = PokemonParty_Scene.new
  screen = PokemonPartyScreen.new(scene, $player.party)
  # 1. Choose the Pokémon to sacrifice
  scene.pbStartScene($player.party, _INTL("Choose a Pokémon."))
  scene.pbSetHelpText("Choose the Pokémon to sacrifice.")
  sac_index = scene.pbChoosePokemon
  if !sac_index || sac_index < 0
    scene.pbEndScene
    pbMessage("Cancelled.")
    return
  end
  sac_pkmn = $player.party[sac_index]
  # 2. Choose the Pokémon to receive
  scene.pbSetHelpText("Choose the Pokémon to receive the transfer.")
  recv_index = scene.pbChoosePokemon
  if !recv_index || recv_index < 0 || recv_index == sac_index
    scene.pbEndScene
    pbMessage("Invalid selection.")
    return
  end
  recv_pkmn = $player.party[recv_index]
  scene.pbEndScene
  # 3. Choose what to transfer
  transfer_options = [
    _INTL("HP IV"),
    _INTL("Attack IV"),
    _INTL("Defense IV"),
    _INTL("Sp. Atk IV"),
    _INTL("Sp. Def IV"),
    _INTL("Speed IV"),
    _INTL("Shiny Flag"),
    _INTL("Pokerus"),
    _INTL("First Move")
  ]
  choice = pbMessage("What do you want to transfer?", transfer_options, -1)
  if choice < 0
    pbMessage("Cancelled.")
    return
  end
  # 4. Perform the transfer
  case choice
  when 0 then recv_pkmn.iv[:HP]              = sac_pkmn.iv[:HP]
  when 1 then recv_pkmn.iv[:ATTACK]          = sac_pkmn.iv[:ATTACK]
  when 2 then recv_pkmn.iv[:DEFENSE]         = sac_pkmn.iv[:DEFENSE]
  when 3 then recv_pkmn.iv[:SPECIAL_ATTACK]  = sac_pkmn.iv[:SPECIAL_ATTACK]
  when 4 then recv_pkmn.iv[:SPECIAL_DEFENSE] = sac_pkmn.iv[:SPECIAL_DEFENSE]
  when 5 then recv_pkmn.iv[:SPEED]           = sac_pkmn.iv[:SPEED]
  when 6 then recv_pkmn.makeShiny
  when 7 then recv_pkmn.givePokerus
  when 8
    if sac_pkmn.moves[0]
      recv_pkmn.moves[0] = sac_pkmn.moves[0].clone
    else
      pbMessage("No move in slot 1 to transfer. Cancelling.")
      return
    end
  end
  # 5. Confirm and remove the sacrificed Pokémon
  if pbConfirmMessage("Are you sure you want to sacrifice #{sac_pkmn.name}?")
    $player.party.delete_at(sac_index)
    pbMessage("#{sac_pkmn.name} has been sacrificed. The transfer is complete.")
  else
    pbMessage("Cancelled.")
  end
end- Credits
- InTheLight
 
	


