• The Eevee Expo Game Jam #10 has concluded, congratulations to all participants! Now it's time for the judges to play through the games, and you can play along to vote who deserves the community choice spotlight.
    You can check out the submitted games here!
    Play through the games and provide some feedback to the devs while you're at it!
  • Hi, Guest!
    Some images might be missing as we move away from using embedded images, sorry for the mess!
    From now on, you'll be required to use a third party to host images. You can learn how to add images here, and if your thread is missing images you can request them here.
    Do not use Discord to host any images you post, these links expire quickly!
Overworld move that functions as a move reminder

v20.1 Overworld move that functions as a move reminder 2020-12-22

This resource pertains to version 20.1 of Pokémon Essentials.
Pokémon Essentials Version
v20.1 ➖
I just thought it'd be a fun idea! This is a pretty valuable resource for a player to have, though, so you might want to make this a hard-to-acquire move.

I used Instruct as the move for this, because I thought it was fitting, but you can easily change that by just replacing Instruct with the internal name of any other move!

Code​

Unfortunately, this isn't really suited for a plug-and-play script. Luckily, it's not too much hassle to add.

These changes are in UI_Party. If you’re using a script that modifies the party UI, such as Deep_Blue’s BW UI, you’ll need to edit that script instead.

Find:
Ruby:
Expand Collapse Copy
          next if !HiddenMoveHandlers.hasHandler(move.id) &&
                  ![:MILKDRINK, :SOFTBOILED].include?(move.id)
Add :INSTRUCT to the list of moves, like so-
Ruby:
Expand Collapse Copy
          next if !HiddenMoveHandlers.hasHandler(move.id) &&
                  ![:MILKDRINK, :SOFTBOILED,:INSTRUCT].include?(move.id)


Below that, find the line:-

Ruby:
Expand Collapse Copy
        elsif pbCanUseHiddenMove?(pkmn, move.id)

Right above that line, paste this:
Ruby:
Expand Collapse Copy
        elsif move.id == :INSTRUCT
          if move.pp <= 0
            pbDisplay(_INTL("Not enough PP..."))
            next
          end
          @scene.pbSetHelpText(_INTL("Use on which Pokémon?"))
          old_party_idx = party_idx
          loop do
            @scene.pbPreSelect(old_party_idx)
            party_idx = @scene.pbChoosePokemon(true, party_idx)
            break if party_idx < 0
            newpkmn = @party[party_idx]
            movename = move.name
            if party_idx == old_party_idx
              pbDisplay(_INTL("{1} can't use {2} on itself!", pkmn.name, movename))
            elsif newpkmn.egg?
              pbDisplay(_INTL("{1} can't be used on an Egg!", movename))
            elsif !newpkmn.can_relearn_move?
              pbDisplay(_INTL("{1} has no moves to remember.", movename))
            else
              move.pp -= 1 if pbRelearnMoveScreen(newpkmn)
              pbRefresh
            end
          end
          @scene.pbSelect(old_party_idx)
          pbRefresh

Earlier versions:
In UI_Party, find:
Ruby:
Expand Collapse Copy
          if [:MILKDRINK, :SOFTBOILED].include?(m.id) ||
             HiddenMoveHandlers.hasHandler(m.id)
Add :INSTRUCT to the list of moves, like so-
Ruby:
Expand Collapse Copy
          if [:MILKDRINK, :SOFTBOILED,:INSTRUCT].include?(m.id) ||
             HiddenMoveHandlers.hasHandler(m.id)

Below that, find the line:-

Ruby:
Expand Collapse Copy
        elsif pbCanUseHiddenMove?(pkmn,pkmn.moves[i].id)

Right above that line, paste this:
Ruby:
Expand Collapse Copy
        elsif [:INSTRUCT].include?(pkmn.moves[i].id)
            if pkmn.moves[i].pp==0
              pbDisplay(_INTL("Not enough PP..."))
              break
            end
            @scene.pbSetHelpText(_INTL("Use on which Pokémon?"))
            oldpkmnid = pkmnid
            loop do
              @scene.pbPreSelect(oldpkmnid)
              pkmnid = @scene.pbChoosePokemon(true,pkmnid)
              break if pkmnid<0
              newpkmn = @party[pkmnid]
              movename = pkmn.moves[i].name
              if pkmnid==oldpkmnid
                pbDisplay(_INTL("{1} can't use {2} on itself!",pkmn.name,movename))
              elsif newpkmn.egg?
                pbDisplay(_INTL("{1} can't be used on an Egg!",movename))
              elsif !pbHasRelearnableMove?(newpkmn)
                pbDisplay(_INTL("{1} has no moves to remember.",movename))
              else
                pkmn.moves[i].pp -= 1 if pbRelearnMoveScreen(newpkmn)
                pbRefresh
              end
            end
            @scene.pbSelect(oldpkmnid)
            pbRefresh
            break

In PScreen_Party, find:

Ruby:
Expand Collapse Copy
        if !pkmn.egg? && (isConst?(move.id,PBMoves,:MILKDRINK) ||
                          isConst?(move.id,PBMoves,:SOFTBOILED) ||

Change it to:
Code:
Expand Collapse Copy
        if !pkmn.egg? && (isConst?(move.id,PBMoves,:MILKDRINK) ||
                          isConst?(move.id,PBMoves,:SOFTBOILED) ||
                          isConst?(move.id,PBMoves,:INSTRUCT) ||


Below that, find

Ruby:
Expand Collapse Copy
            end
            @scene.pbSelect(oldpkmnid)
            pbRefresh
            break

Right below "break", add

Ruby:
Expand Collapse Copy
          elsif isConst?(pkmn.moves[i].id,PBMoves,:INSTRUCT)
            if pkmn.moves[i].pp<=1
              pbDisplay(_INTL("Not enough PP..."))
              break
            end
            @scene.pbSetHelpText(_INTL("Use on which Pokémon?"))
            oldpkmnid = pkmnid
            loop do
              @scene.pbPreSelect(oldpkmnid)
              pkmnid = @scene.pbChoosePokemon(true,pkmnid)
              break if pkmnid<0
              newpkmn = @party[pkmnid]
              movename = PBMoves.getName(pkmn.moves[i].id)
              if pkmnid==oldpkmnid
                pbDisplay(_INTL("{1} can't use {2} on itself!",pkmn.name,movename))
              elsif newpkmn.egg?
                pbDisplay(_INTL("{1} can't be used on an Egg!",movename))
              elsif !pbHasRelearnableMove?(newpkmn)
                pbDisplay(_INTL("{1} has no moves to remember.",movename))
              else
                pkmn.moves[i].pp -= 1 if pbRelearnMoveScreen(newpkmn)
                pbRefresh
              end
            end
            @scene.pbSelect(oldpkmnid)
            pbRefresh
            break

This move can't be used on the user (or eggs/Pokémon that have no moves to remember, of course), and deletes 1 PP per use.

Looking for more field moves?​

You may also be interested in Lucidious89's Improved Field Skills.
Credits
Credit to TechSkylander1518, please!
  • Like
Reactions: ThatWelshOne_
Author
TechSkylander1518
Views
2,916
First release
Last update

Ratings

0.00 star(s) 0 ratings

More resources from TechSkylander1518

Latest updates

  1. v20 Update

    Quick v20 update, also fixed the bug of PP being depleted regardless of if a move was taught...
  2. v19 Update

    Now compatible with v19!
Back
Top