Script Following Pokemon EX

Started by Golisopod User December 27th, 2020 8:28 AM
  • 23609 views
  • 119 replies

Golisopod User

he/him
Alola Reigon
Seen 6 Hours Ago
Posted 1 Week Ago
653 posts
5.4 Years


Following Pokemon EX
Highly Improved version of the Following Pokemon script by help14 and mej71 for Essentials v20.1

Overview:
The Following Pokemon script made by help14 was truly a groundbreaking script. It brought the Walking Pokemon functionality from HGSS to Essentials allowing players to walk around with their Pokemon and talk to them, just like those games. However, that script was made with v15.1 in mind, which is 8 years old now! Not only that, people (including myself) who tried to update the script to the latest version of Essentials, didn't change that. What happened was that each new updated added new features to a dated script, making it bloated and riddled with bugs. This version of the script aims to fix that. I've rewritten almost all of the script with v20.1 in mind. I've also fixed many bugs, added several new features, added built-in compatibility with a few common Essentials scripts, and would go even as far as to call this, the definitive version of the Following Pokemon script.

New Features:
  • Added a system to include new Dialogue for the Following Pokemon easily.
  • Added a system to include new Conditions to refresh the Following Pokemon easily.
  • Added accurate Animation for Entry of Following Pokemon in Battle.
  • Added accurate Animation for HM Usage by Following Pokemon in the Overworld.
  • Made the Following Pokemon alot more interactive by increasing the amount of default dialogue. (Thanks to Aki!)
  • Added Gen 4-style Overworld Emote Animations for the Following Pokemon when talking to you.
  • Added pulsing tones to Following Pokemon for showing status conditions in the overworld.
  • Added the ability to cycle through your party in the overworld like in Let's Go.
  • Added the ability to control your Following Pokemon using Move Routes.
  • Added the ability to add emote animations to your Following Pokemon.
  • Added animations for Following Pokemon when interacting with the Pokecenter.
  • Smooth interactions with other Followers which are not Pokemon.
  • Native Support for the following scripts:
    • Marin's and Boonzeets Sideways Stairs script.
    • Pokemon Amie script by PizzaSun.
    • Pokeride script by Marin.
    • Super Shiny from Elite Battle: DX
    • Advanced HM Items by FeelsMoyoMan

Fixes from the Original Script:
  • Compatibility for Essentials v20.1
  • Dropped support for all older version of Essentials.
  • Fixed all weird open and close animation issues.
  • Optimized and rewrote most of the code to increase Performance greatly.
  • The first unfainted Pokemon in the party will follow you instead of having no Following Pokemon when the first party member faints. This can easily be changed.
  • Fixed the need for using 100 different commands to toggle Following Pokemon. Now
    FollowingPkmn.toggle_on
    or
    FollowingPkmn.toggle_off
    should suffice in all cases
  • The Following Pokemon are now reflected in any water the player is.
  • Fixed the need for extra game switches and variables to control data that is maintained for Following Pokemon.
  • Fixed all bugs with overworlds of Pokemon with alternalte forms, shiny overworlds and gender-specific overworlds.
  • Fixed all issues with surfing, ice sliding, waterfall interactions, blacking out, map transfers and many such map interactions.
  • Fixed Following Pokemon being duplicated after healing at a Pokecenter.
  • Fixed some HMs not working in the presence of Following Pokemon.
  • The script no longer overwrites existing edits to HMs and starting over.
  • The script no longer requires Common Events to work (but still has compatibility for them), so it doesn't need to override CommonEvents.rxdata.
  • The script now smartly animates Following Pokemon at PokeCenters, without any user intervention (assuming that the Nurse Joy event is properly set up).
  • The event that's being converted to a Following Pokemon now longer needs to be named anything specific.
  • The Following Pokemon now appropriately refreshes in almost all scenarios.

If you want a compilation of all Pokemon Overworld sprites from Gen 1-8 formatted for the script, consider checking out the Generation 8 Pack for Essentials v20.1

This plugin is not compatible with Essentials v19, v18, v17.2, v16.2 or any other older version of Essentials. I do not plan to add compatibility for any of them.

Download Link

Please Credit the following people when using this script

Spoiler:
  • Golisopod User
  • Help-14
  • zingzags
  • Rayd12smitty
  • mej71
  • PurpleZaffre
  • Akizakura16
  • Thundaga
  • Armin (Fairies Resource Pack)
  • Maruno


Instructions:
Spoiler:

Installation and Update Instructions:
Spoiler:
  1. Close RPG Maker
  2. Make a backup of your project incase you have any custom changes in your Animations (Emote Animations, not Move Animations) in the Data folder.
    • NOTE: Backing up your project basically means Ctrl + C your game folder and Ctrl + V it somewhere else to keep your changes from being permanently overwritten by the next step
  3. If you are updating from an older version, please make sure to delete the original plugin scripts from the Plugins folder.
  4. Extract the contents of the ZIP file into your game's root folder. (The folder with Game.exe in it). This will make permanent changes to your project, so make sure you completed step 1, if you've made changes to your game.
  5. Run the game in Debug Mode, by opening it from the RMXP editor.
    • NOTE: If you do not see
      Loaded plugin: Following Pokemon EX (ver. X.X.X)
      ((X.X.X) should be the latest version of the plugin) in the console (the black window that you see when running v20.1 in Debug Mode), that means the script hasn't compiled and will not work.
      To force the game to compile the plugin, open the Data folder of your game and delete PluginScripts.rxdata. Then try running the game in Debug Mode.
      This is what the console window should look like, if the plugin is installed correctly:
      Spoiler:


  6. Start a new save.


Usage of Script:
Spoiler:

Setting up the Following Pokemon event:
Spoiler:
  1. Create a new blank event in the map anywhere in the map. Note down the ID of this event. Here's a visual representation:
    Spoiler:

    (You see that the Window Title says "Edit Event - ID:013". The "ID:013" gives us the ID number of the event. We will note this ID down. The name or cotents of this event don't matter.)

  2. In an event, add the script command
    FollowingPkmn.start_following(X)
    , where X is the ID of the event we noted down. If the event you put the script command
    FollowingPkmn.start_following(X)
    is the blank event we made before then you can just put
    FollowingPkmn.start_following
    . Here's a visual representation:
    Spoiler:


    As you can see, this is Professor Oak, who has a full event set-up. This doesn't matter, the event can be as large and complex as you want. What matters is that the script command
    FollowingPkmn.start_following(X)
    is present in it. In the last step, we saw that the event ID was 013, so we'll replace the X with that ID we noted down, while removing the insignificant 0's from the ID. So our script call will be
    FollowingPkmn.start_following(13)
    .
  3. Test the event in - game.


New Naming Convention:
Spoiler:
  • The v20.1 version of Following Pokemon has a brand new naming convention to match that of the rest of the sprites provieded v20.1.
  • All the Overworld Sprites are in
    Graphics/Characters/
    . They have been separated into 2 folders, Followers and Followers shiny.
  • All the sprites in both thhe folders now use their internal name instead of ID numbers. Its very similar to the naming convention of icon sprites, if you need reference.
  • The script will not load any Following Pokemon graphic if the sprites don't follow this naming convention.
  • If you still don't understand how to name and place the sprites, and just want a compilation of all Pokemon Overworld sprites from Gen 1 - 8 formatted for the script, consider checking out the Generation 8 Pack for Essentials v20.1


Configuring Constants:
Spoiler:
  • In
    Plugins/Following Pokemon EX/Configuration
    open
    000_Config.rb
    • NOTE: A .rb file is just a glorified .txt file and can easily be opened with any text editor like Notepad.
  • Inside the script you'll see certain configuration constants, as follows:
    FOLLOWER_COMMON_EVENT        => ID of the Common event that plays when you speak to the Following Pokemon. Normally, this common event should contain the script command 
    FollowingPkmn.talk
    . Set this to nil if you don't have a common event for your Following Pokemon or, or don't know what common events are. The Following Pokemon will still be able to talk to you. without a common event defined. ANIMATION_COME_OUT => Animation ID for the "Come out of Pokeball" Animation for Following Pokemon. ANIMATION_COME_IN => Animation ID for the "Go into Pokeball" Animation for Following Pokemon. ANIMATION_EMOTE_HAPPY => Animation ID for the "Happy" Animation for Following Pokemon. ANIMATION_EMOTE_ELIPSES => Animation ID for the "..." Animation for Following Pokemon. ANIMATION_EMOTE_ANGRY => Animation ID for the "Mad" Animation for Following Pokemon. ANIMATION_EMOTE_POISON => Animation ID for the "Poisoned" Animation for Following Pokemon. ANIMATION_EMOTE_MUSIC => Animation ID for the "Music Note" Animation for Following Pokemon. ANIMATION_EMOTE_HEART => Animation ID for the "Heart" Animation for Following Pokemon. TOGGLE_FOLLOWER_KEY => The key that the player can press to toggle Following Pokemon. Set this to nil to disable this feature. SHOW_TOGGLE_IN_OPTIONS => Show the option to toggle Following Pokemon in the Options screen. CYCLE_PARTY_KEY => The key that the player can press to cycle through their party. Set this to nil to disable this feature. APPLY_STATUS_TONES => Tint the Following Pokemon sprite if it has a status condition TONE_BURN => Array of numbers corresponding to the RGB values of the Burn Tint TONE_POISON => Array of numbers corresponding to the RGB values of the Poison Tint TONE_PARALYSIS => Array of numbers corresponding to the RGB values of the Paralysis Tint TONE_FROZEN => Array of numbers corresponding to the RGB values of the Frozen Tint TONE_SLEEP => Array of numbers corresponding to the RGB values of the Sleep Tint FRIENDSHIP_TIME_TAKEN => Time Taken for Following Pokemon to increase Friendship when first in party (in seconds). ITEM_TIME_TAKEN => Time Taken for Following Pokemon to find an item when first in party (in seconds). ALWAYS_ANIMATE => Whether the Follower always stays in its move cycle (like in HGSS) or not. ALWAYS_FACE_PLAYER => Whether the Following Pokemon always faces the player, or not like in HGSS. IMPASSABLE_FOLLOWER => Whether other events can pass through Following Pokemon or no. SLIDE_INTO_BATTLE => Whether Following Pokemon slides into battle instead of being sent in a Pokeball. (This doesn't affect EBDX, read the EBDX documentation to change this feature in EBDX) SHOW_POKECENTER_ANIMATION => Show the Ball Opening and Closing animation when Nurse Joy takes your Pokeballs at the Pokecenter. This will only work if the Nurse Joy event is properly set up. SURFING_FOLLOWERS => List of Pokemon that will always appear behind the player when surfing. (Doesn't include any flying or water types because those are handled automatically) SURFING_FOLLOWERS_EXCEPTIONS => List of Pokemon that will not appear behind the player when surfing, regardless of whether they are flying type, have levitate or are mentioned in the SURFING_FOLLOWERS.


Script Functions:
Spoiler:

FollowingPkmn.start_following(id)
# The main command used to make Following Pokemon start following you, if it hadn't already before. This has been discussed in detail in the "Setting up the Following Pokemon event" of the usage instructions
# id => The event ID of the event which will be converted to a Following Pokemon. If you don't set this, then the event in which this script command is called will become the Following Pokemon.

Examples:
FollowingPkmn.start_following
FollowingPkmn.start_following(69)
FollowingPkmn.stop_following
# The main command used to permanently remove the Following Pokemon from the player until FollowingPkmn.start_following is called again.

Examples:
FollowingPkmn.stop_following

FollowingPkmn.stop_following
# The main command used to toggle the Following Pokemon.
# forced => Set this to false if you want to force the Following Pokemon to turn off and true if you want Following Pokemon to turn on. Set this to nil if you don't want to forcefully toggle the Pokemon.
# anim   => Set this to true if you want to play the Pokeball Animation when the Following Pokemon is toggled, and false if you don't.

Examples:
FollowingPkmn.toggle
FollowingPkmn.toggle(nil,true)
FollowingPkmn.toggle(true,false)
FollowingPkmn.toggle_on(anim)
# The main command used to forcefully set the Following Pokemon toggle to on.
# anim   => Set this to true if you want to play the Pokeball Animation when the Following Pokemon is toggled, and false if you don't.

Examples:
FollowingPkmn.toggle_on
FollowingPkmn.toggle_on(false)
FollowingPkmn.toggle_off(anim)
# The main command used to forcefully set the Following Pokemon toggle to off.
# anim   => Set this to true if you want to play the Pokeball Animation when the Following Pokemon is toggled, and false if you don't.

Examples:
FollowingPkmn.toggle_off
FollowingPkmn.toggle_off(true)

FollowingPkmn.talk
# The main command used to initiate the dialogue when speaking to a Following Pokemon.
FollowingPkmn.item(item, quantity, message)
The command used to initiate a special dialogue which gives the player an item.

# item      => Set this to an item you want the Pokemon to find. (Compulsury)
# quantity  => Set this to the quantity of the item you want the Pokemon to find
# message   => A special message to go along with the Item Find

Examples:
FollowingPkmn.item(:POTION)
FollowingPkmn.item(:ORANBERRY, 5)
FollowingPkmn.item(:POKEBALL, 1, "{1} is holding something round...")
FollowingPkmn.animation(animation_id)
The command used to add emote animations to Following Pokemon. If you provide no arguments in the command. Eg: FollowingPkmn.animation then the next "Show Animation" event command will be applied to the Following Pokemon.


# animation_id  => Set this to the ID number of the animation you want to play on the Following Pokemon.
  
Examples:
FollowingPkmn.animation
FollowingPkmn.animation(6)
FollowingPkmn.animation(Settings::EXCLAMATION_ANIMATION_ID)
FollowingPkmn.animation(FollowingPkmn::ANIMATION_EMOTE_HAPPY)
FollowingPkmn.move_route(commands, wait_complete)
The command used to add move routes to Following Pokemon. If you provide no arguments in the command. Eg: FollowingPkmn.move_route then the next "Set Move Route" event command will be applied to the Following Pokemon.

# commands      => Set this to an array of Move Commands.
# wait_complete => Set this to true if you want the game to wait until the move route of the Following Pokemon is completed.
  
Examples:
FollowingPkmn.move_route
FollowingPkmn.move_route([PBMoveRoute::TurnRight, PBMoveRoute::Wait, 4, PBMoveRoute::Jump, 0, 0])
More examples can be found in 
Plugins/Following Pokemon EX/Configuration/003_Dialogue_Generic.rb
if needed.
The commands to be inputted for FollowingPkmn.move_route can be found here.


Configuring the Dialogue spoken by Following Pokemon:
Spoiler:
  • Using existing options:
    Spoiler:
    • The plugin has a few in-built options to quickly add some flavour text to what Following Pokemon say when on certain maps.
    • v20.1 has a brand new feature called Flags, which can be added to the town's entry in map_metadata.txt. Adding a new flag very simple. Here's an example.
    • The new flags implemented by the plugin are "PokemonLab", "PokeCenter", "GymMap" "Forest" "Beach". Adding these flags to your map metadata will yield new dialogue which normally isn't shown. Make sure to test them all out.

  • Editing the common event:
    Spoiler:
    • While the plugin doesn't require adding a common event for the Following Pokemon (unlike regular Followers), you can add a common event if you'd like.
    • Here's how you can add a common event to your Following Pokemon.
      Spoiler:
      • Set the
        FOLLOWER_COMMON_EVENT
        variable in
        Plugins/Following Pokemon EX/Configuration/000_Config.rb
        to a number of your choice. Note thhis number down.
      • Open the Common Events tab in Database

      • Look at the list on the left for the number we noted down earlier. This is our common event. We can change the name of it to keep track of it.
      • Now you can do pretty much whatever you want here, as long as you don't change the trigger and condition switch for the Common Event.
    • Here's an example of what I can do by editing the Common Event. (Note:
      FollowingPkmn.talk
      is the command that initiates the regular Following Pokemon dialogue)

  • Editing the existing dialogue:
    Spoiler:
    • The script already comes with many dialogues for Following Pokemon pre-installed, but you can change them as per your liking.
    • Simply open either
      Plugins/Following Pokemon EX/Configuration/002_Dialogue_Specific.rb
      or
      Plugins/Following Pokemon EX/Configuration/003_Dialogue_Generic.rb
      and use Ctrl + F to look for the dialogue you want to edit.
    • Make sure you keep the
      _INTL()
      tag around the text intact.
    • {1} in the text refers to the Pokemon's name, and {2} refers to the trainers name.
    • You can even extend the array and add more dialogues to the random pool of dialogues if you'd like.


  • Writing your own Dialogues procs:
    Spoiler:
    • This one might be a bit difficult for those who do not understand how code in Essentials works. If you belong to this category then be warned. Messing this up can break your game.
    • The dialogue said by a Following Pokemon, when spoken to are handled in
      002_Dialogue_Specific.rb
      and
      003_Dialogue_Generic.rb
      . As the name suggests, one handles dialogue under specific conditions, while the other handles generic dialogue.
    • The
      EventHandlers(:following_pkmn_talk)
      will stop after any of the procs has returned "true" or "false". If you don't return one of these values, then the script will end up displaying every single possible dialogue.
    • These procs have the arguments "pkmn, random_val" which refers to the current pokemon following you and a random value between 0 and 6 (used for the emote animations).
    • You can do anything inside these
      EventHandlers(:following_pkmn_talk)
      procs as long as the syntax is correct and as long as the symbol after
      :following_pokemon_talk
      is unique and not used for any other procs.
    • The order of the procs and whether they are placed in
      002_Dialogue_Specific.rb
      and
      003_Dialogue_Generic.rb
      is important. Procs in
      002_Dialogue_Specific.rb
      have priority over
      003_Dialogue_Generic.rb
      and procs at the top have a priority over procs at the bottom of the script.
    • You should get the basics of working with these procs by looking at the existing ones.
    • Here's an example I made quickly. In this example, the event will show brand new dialogue if the current following Pokemon has the ability Intimidate. I've placed this at the top of
      002_Dialogue_Specific.rb
      to make it appear before all other dialogue if the condition is true.




Configuring the conditions for the Following Pokemon to Disappear:
Spoiler:
  • Using existing options:
    Spoiler:
    • The plugin has a few in-built options to quickly add some flavour text to what Following Pokemon say when on certain maps.
    • v20.1 has a brand new feature called Flags, which can be added to the town's entry in map_metadata.txt. Adding a new flag very simple. Here's an example.
    • The new flags implemented by the plugin are "ShowFollowingPkmn" and "HideFollowingPkmn". As the name implies, they will hide and show the Following Pokemon respectively. Adding these flags to your map metadata will have the corresponding effect. This will only work if the maps are not connected or if you run the script command
      FollowingPkmn.refresh(false)

  • Editing the existing conditions:
    Spoiler:
    • The script already comes with many conditions for Following Pokemon appearing which you can change as per your liking.
    • Simply open either
      Plugins/Following Pokemon EX/Configuration/004_Disappearing.rb
      and use Ctrl + F to look for the condition you want to edit.
    • Here are a few examples:
      (Remove this line to prevent all Water Pokemon from surfing behind the player)

      (Remove this line to allow all Pokemon to follow the player when using the Bicycle)

      (Edit this number to increase the height limit for Pokemon in the interior. Remove this line entirely to allow all Pokemon to follow the player in interior maps)

  • Writing your own condition procs:
    Spoiler:
    • This one might be a bit difficult for those who do not understand how code in Essentials works. If you belong to this category then be warned. Messing this up can break your game.
    • The disappearing condition said by a Following Pokemon, when spoken to are handled in
      004_Disappearing.rb
      .
    • The
      EventHandlers(:following_pkmn_appear)
      will stop after any of the procs has returned "true" or "false". If you don't return one of these values, then the script will end up looping through all possible conditions.
    • If the proc returns false, the Pokemon disappears. If the proc returns true, or no value at all, the Pokemon appears.
    • These procs have the argument "pkmn" which refers to the current pokemon following you.
    • You can do anything inside these
      EventHandlers(:following_pkmn_appear)
      procs as long as the syntax is correct and as long as the symbol after
      :following_pokemon_appear
      is unique and not used for any other procs.
    • The order of the procs and whether they are placed in
      004_Disappearing.rb
      is important. Procs at the top have a priority over procs at the bottom of the script.
    • You should get the basics of working with these procs by looking at the existing ones.
    • Here's an example I made quickly. In this example, the event will disappear if the switch 100 is set to true. I've placed this at the top of
      004_Disappearing.rb
      to execute before all other conditions.
      (Here's the proc)

      (Here's an example of tehe event ingame)







Changelog:
Spoiler:
  • v 2.2.2
    Fixed "Required v20 Hotfixes" error for Essentials v20.1

  • v 2.2.1
    Fixed crash when starting over after a whiteout.
    Fixed a few cases where Following Pokemon show the HM animation when they shouldn't

  • v 2.2.0
    Full v20 compatibility (removed sprite renamer compatibility for older versions of Essentials)
    Added a toggle in the settings to show the Following Pokemon toggle in the options.
    Added better support for EBDX super shinies.
    Added 2 map metadata flags, "ShowFollowingPkmn" and "HideFollowingPkmn" to make showing and hiding Following Pokemon on certain maps simpler.
    Added proper documentation for the dialogue and disappear conditions for Following Pokemon, and proper comments in the script.
    Fixed Following Pokemon being refreshed at every step.
    Fixed bug where you could never get an item from your Following Pokemon.
    Fixed Followers leaving a gap and when Following Pokemon is toggled off.
    Fixed HM moves used from the Party menu being buggy with Following Pokemon.
    Fixed Following Pokemon not being able to climb waterfalls.
    Fixed several small bugs with the Pokecenter animation.
    Fixed Following Pokemon behaving weirdly when jumping behind the player to start or end surfing.
    Fixed all instances where Following Pokemon wouldn't refresh and look weird, like trading and evolution.
    Updated the dialogue system to separate Item receiving dialogues and regular talking dialogues, making it simpler to add or remove items.
    Updated the default dialogues to work with map metadata flags instead of map names.
    Updated almost all Following Pokemon specific code and moved it into the FollowingPkmn module. Added several new helper methods for that.
    Updated the method to get the current Following Pokemon to be one independent centralized method, makung it much easier to customize what Pokemon should be the one following you.
    Updated ice sliding to make airborne Following Pokemon sliding behind you to be more accurate.
    Updated the Following Pokemon specific script commands for move routes and animations to work with the new Dependent Event changes in v20.
    Updated all of the Following Pokemon field move methods to not overwrite any existing HM changes.


    Instructions under Usage of Script have also been updated to detail the new configuration constants, method names, dialogues and disappear condition configuration.
    If you have any custom scripts that are using some script commands or constants from older versions of Following Pokemon EX, please make sure to update them asap.

  • v 2.1.2
    Fixed minor crash with cycling through your party.
    Fixed Following Pokemon being impassable even after it has been toggled off.

  • v 2.1.1
    Fixed minor crash with emote animation.
    Fixed minor crash with Pokecenter animation.

  • v2.1.0
    Major code refactor and plugin rearrangement.
    Updated all constant names to be more legible.
    Updated user method names to be clearer.
    Added a toggle in the Settings to toggle default passability of Following Pokemon in settings.
    Added a toggle in the Settings to toggle the slide-in animation for Following Pokemon in battle.
    Added toggle in Settings to show animation for opening and closing Pokeball of Following Pokemon when using Pokecenter.
    Added better compatibility for other plugins, by removing some method overwrites.
    Added support for EBDX Super Shinies.
    Added script command to easily add emote animations to Following Pokemon.
    Added proper ledge interaction for Following Pokemon.
    Made the Following Pokemon refresh only when nescessary, to optimize performance greatly.
    Made the emote animation drawn on Followers move along with them, instead of staying elsewhere.
    Made the default animations provided in the Plugin usable in other places and with regular NPCs as well.
    Made Following Pokemon's hold item time only update when the Pokemon is onscreen and not when the player is in UIs or battle.
    Made Following Pokemon not require any common events to work. However, if a common event is specified, it'll be used.
    Made Ice sliding even more stable, by removing some jank when turning.
    Fixed bug where move routes wouldn't work on Following Pokemon after the first command.
    Fixed bug where tiles with directional passabilities would cause weird movement in Following Pokemon.
    Fixed bug with map connections when using Boonzeets Terrain Tag Side Stairs.
    Fixed multiple bugs in the Following Pokemon HM Animation.
    Fixed Following Pokemon stranding player on 1 tile island or preventing talking to other events.
    Fixed regular dependent events not turning when ALWAYS_FACE_PLAYER is true.
    Fixed Following Pokemon being glitchy when moving across map connections.
    Fixed crash when the user messes up the CYCLE_PARTY_KEY, TOGGLE_FOLLOWER_KEY and TONE_X configurations.
    Fixed issue where the plugin would overwrite the regular "Starting Over" message.


    Instructions under Usage of Script have also been updated to detail the new configuration constants and method names.
    If you are updating from an older version, please make sure to delete the original plugin, so that the old changes don't overwrite the new changes.
    If you are updating from an older version, please make sure to update the Animations.rxdata as well.
    If you are updating from an older version, please make sure to get the updated Plugin Manager scripts to avoid any installation issues with the script. A link to them has been provided in the updated Installation and Update Instructions.
    If you have any custom scripts that are using some script commands or constants from older versions of Following Pokemon EX, please make sure to update them asap.

  • v2.0.7
    Added a toggle to prevent Following Pokemon from always changing their direction, to closely mimic HGSS.
    Added an option to add a key to cycle through the player's Party Pokemon in the overworld.
    Rearranged almost all the scripts to make it easier to edit and keep track of changes.
    Made the rate of animation of the Following Pokemon's overworld FPS Agnostic.
    The status condition tones now have a pulsing effect, and the colors have been improved. They aren't bright and annoying to look at anymore.
    The Following pokemon now gets 3x the friendship boost than it did earlier from being first in the party.
    Fixed alot of the "map connection jump" bugs that Following Pokemon had.
    Fixed some of the animation bugs when Following Pokemon were forcefully toggled off.
    Added support for regular boolean arguements for toggling following pokemon on and off.
    Made the maximum height for Pokemon to follow you in interior maps be 3m.
    Removed alot of fluff that was needed for refreshing the following Pokemon after interacting with the party screen.
    Removed compatibility for Generation 8 Project v1.0.4 and below.

    Instructions under Usage of Script have also been updated to detail the new configuration constants as well as the dialogue and disappear conditions better.
    If you are updating from an older version, please make sure to delete the original plugin, so that the old changes don't overwrite the new changes.

  • v2.0.6
    Fixed Following Pokemon appearing on top of player when warping from a map using "Transfer Player"
    Fixed Debug Warp moving player to impassable tiles
    Fixed many interactions of Following Pokemon with regular Dependent events
    Fixed bugs with Ball Open/Close Animations
    Fixed Following Pokemon stranding the player on single tile islands in the water.
    Fixed many bugs related to surfing
    Made time taken for Following Pokemon to get an item and/or increase its friendship be FPS agnostic
    Improved the code for the Following Pokemon sprite renamer
    Removed compatibility for Essentials v19.0 and Generation 8 Project v1.0.2 and below.

  • v2.0.5
    Made the "stepping animation speed" for Following Pokemon independent of Player speed
    Added fixes for Following Pokemon interacting with bridges
    Fixed a crash with Following Pokemon when surfing
    Changed alot of things related to surfing Following Pokemon
    Added a failsafe incase people miss the 1st step in the instructions and don't close RMXP when installing the script

  • v2.0.2
    Added a failsafe incase sprites aren't properly named
    Added Compatibility for new Sprite Renamer from the Gen 8 Project v.1.0.1

  • v2.0.1
    Fixed uninitialised constant error
    Fixed Sprite Renamer being dumb

  • v2.0
    Big update that adds v19 compatibility
    Fixed many bugs and optimized the code even further
    Rewrote the instructions to be more helpful and descriptive

  • v1.3
    Fixed a gamebreaking bug with starting over.
    Readded animations back to some places where they were missing.

  • v1.2
    Many gamebreaking crashes and a few tiny inconsistencies have been fixed.

  • v1.1
    Some fixes with Enhanced Stairs compatibility
    Fixed a few animation related bugs with surfing
    Starting over has been thoroughly tested and has no bugs
    Fixed forms not reverting after battle

  • v1.0
    Script released

Golisopod User Challenges you to a Battle on his Discord! (Golisopod User#2006)

I've been working with Pokemon Essentials for about 2 years now. Check out my resources:

Golisopod User

he/him
Alola Reigon
Seen 6 Hours Ago
Posted 1 Week Ago
653 posts
5.4 Years
It seems that when you are defeated and black out to your home,the follower will not appear again.
In the old following scripts,there are some fixes about that.But not in this EX version.


Redownload and reinstall the script and restart your save. You've probably messed something up.

Golisopod User Challenges you to a Battle on his Discord! (Golisopod User#2006)

I've been working with Pokemon Essentials for about 2 years now. Check out my resources:

Seen 3 Weeks Ago
Posted December 30th, 2020
1 posts
1.9 Years
There seem to be some compatibility issues with Marin's Enhanced Staircases, as shown in the GIF below. I tried it with stairs facing the other direction and the same issue persisted. I also tried it without the tree near the bottom of the stairs.



It seems to have to do with the passability of the sides of the stairs, specifically the passability of the tile directly in front of the player. Normally, they're set up like the image below, and this setup results in the error mentioned above. If I set those impassable tiles to passable, however, the follower behaves as expected, but having the player be able to walk on those tiles isn't ideal.



I tried to gather as much information as possible, let me know if you need any more information or can't replicate the same error if you try to recreate it yourself.

Golisopod User

he/him
Alola Reigon
Seen 6 Hours Ago
Posted 1 Week Ago
653 posts
5.4 Years
Now I meet another problem that when Xerneas Leaves battle,It will turn to active mode following,only after I go to another map,it turn back to inactive one.
I wonder if it is a bug or I messed something up again.
Place the script below scripts like Mid Battle Dialogue of Dynamax. It seems that the battler isn't refreshing because those scripts are being overwritten.

Golisopod User Challenges you to a Battle on his Discord! (Golisopod User#2006)

I've been working with Pokemon Essentials for about 2 years now. Check out my resources:

Seen May 29th, 2021
Posted December 31st, 2020
1 posts
1.5 Years
I didn't understand the instructions either :/
¨In the Database Option, create a new Common Event with the ID number of Follower_Common_Event from Follower_Config. It should have only one script command in it pbTalkToFollower¨. What to do here ? Please note that I've just begun with this for fun and don't have any programming skills prior to this :)

Golisopod User

he/him
Alola Reigon
Seen 6 Hours Ago
Posted 1 Week Ago
653 posts
5.4 Years
I didn't understand the instructions either :/
Look in the Follower_Config script. Do you see Follower_Common_Event? Look at the number that Follower_Common_Event is equal to and note it down.

Now go in Database. Now look for a blank event under Common Events tab. It should have the same ID Number as the number you noted from above.


In that event, add the script command "pbTalkToFollower"

Golisopod User Challenges you to a Battle on his Discord! (Golisopod User#2006)

I've been working with Pokemon Essentials for about 2 years now. Check out my resources:

Golisopod User

he/him
Alola Reigon
Seen 6 Hours Ago
Posted 1 Week Ago
653 posts
5.4 Years
Update!

The script has been updated to fix the Following bugs:
  • Some fixes with Enhanced Stairs compatibility
  • Fixed a few animation related bugs with surfing
  • Starting over has been thoroughly tested and has no bugs
  • Fixed forms not reverting after battle

Golisopod User Challenges you to a Battle on his Discord! (Golisopod User#2006)

I've been working with Pokemon Essentials for about 2 years now. Check out my resources:

Male
Seen 9 Hours Ago
Posted 4 Days Ago
282 posts
2 Years


Following Pokemon EX
Highly Improved version of the Following Pokemon script by help14 and mej71 for Essentials v18

Overview:
The Following Pokemon script made by help14 was truly a groundbreaking script. It brought the Walking Pokemon functionality from HGSS to Essentials allowing players to walk around with their Pokemon and talk to them, just like those games. However, that script was made with v15.1 in mind, which is 6 years old now! Not only that, people (including myself) who tried to update the script to the latest version of Essentials, didn't change that. What happened was that each new updated added new features to a dated script, making it bloated and riddled with bugs. This version of the script aims to fix that. I've rewritten almost all of the script with v18 in mind. I've also fixed many bugs, added several new features, added built-in compatibility with a few common Essentials scripts, and would go even as far as to call this, the definitive version of the Following Pokemon script.

New Features:
  • Split code into 2 sections Follower_Main and Follower_Config for organizational purposes. Most users should have no need to look at the Follower_Main script because all customization is handled in Follower_Config
  • Added a system to include new Dialogue for the Following Pokemon easily
  • Added a system to include new Conditions to refresh the Following Pokemon easily
  • Added accurate Animation for Entry of Following Pokemon in Battle (Not in EBS/ EBDX)
  • Added accurate Animation for HM Usage by Follower in the Overworld
  • Made the Follower alot more interactive by increasing the amount of default dialogue. (Thanks to Aki!)
  • Native Support for Marin's Overworld Shadow Script
  • Native Support for Marin's Footprint Script
  • Native Support for Marin's and Boonzeets Sideways Stairs script
  • Native Support for KleinStudio's Always on Bush script
  • Native Support for Pokemon Amie script by Bhagya Jyoti
  • Native Support for Pokeride script by Marin

Fixes from the Original Script:
  • Compatibility for Essentials v18
  • Dropped support for all older version of Essentials
  • Optimized and rewrote most of the code to increase Performance greatly
  • The first unfainted Pokemon in the party will follow you instead of having no follower when the first party member faints
  • Fixed the need for using 100 different commands to toggle followers. Now pbToggleFollowingPokemon should suffice in all cases
  • Your follower pokemon are now reflected in any water the player is
  • Fixed the need for extra game switches and variables
  • Fixed bugs with Forms and Shiny Overworlds
  • Fixed issues with Ledges
  • Fixed issues with Ice Sliding
  • Fixed All issues with blacking out
  • Fixed all map transfer issues
  • Fixed Duplicate Followers
  • Fixed some HMs not working when a Pokemon is following you

Download Link

If you want a compilation of all Pokemon Overworld sprites from Gen 1-8, consider checking out the Generation 8 Project for Essentials v18

Please Credit the following people if you use this script.
Credits:
Spoiler:
  • Golisopod User
  • Help-14
  • zingzags
  • Rayd12smitty
  • mej71
  • Help-14
  • PurpleZaffre
  • Akizakura16


This script is not compatible with Essentials v17.2, or any other older version of Essentials. I do not plan to add compatibility for any of them.

Instructions
Please read this because the installation instructions are slightly different from the Original Following Pokemon Script.
Spoiler:

Installation of Script:
Spoiler:
  1. Close RMXP
  2. Paste the Contents of Animation Data folder in your Game. This will lead to permanent changes so make sure to backup your game.
  3. Open RMXP
  4. Place the contents of Follower_Config.txt in a new script section above Main called Follower_Config
  5. Place the contents of Follower_Main.txt in a new script section above Main called Follower_Main.
  6. Make sure that the scripts you pasted in are below these scripts.
    Overworld Shadows by Marin
    Marin's Footprints bt Marin
    Enhanced Staircases by Marin
    Pokeride Functionality by Marin
    Boonzeet's Terrain Tag Sideways Stairs by Boonzeet
    Always on Bush by KleinStudio
    Pokemon Amie by Pizza Sun and Bhagya Jyoti
  7. In the Database Option, create a new Common Event with the ID number of
    Follower_Common_Event
    from Follower_Config. It should have only one script command in it
    pbTalkToFollower
  8. Create a blank event in the map where you get your 1st Pokemon. The name of this event should be
    FollowerPkmn
    . Note down the Event ID of this event, you can see it the the top left corner of the Event Editor as
    ID:ABC
  9. Now inside the event where you want to spawn the Follower, add the script command
    pbPokemonFollow(ABC)
    # Make sure the extra 0's from the ID are removed so if the ID is 010, your script command will be pbPokemonFollow(10)
  10. Start a new save (Compulsury)

    Note: You can put the Following Pokemon sprites directly in the Graphics/Characters folder or in a new Folder called "Following" inside Graphics/Characters


Script Commands for Following Pokemon:
Spoiler:

pbPokemonFollow(XXX)
  • The main command used to activate Following Pokemon. Detailed instructions are in Installation of Script:

pbToggleFollowingPokemon(forced,anim)
  • Info:
    The main command used to toggle the Following Pokemon
  • Arguments:
    forced => Set this to
    "off"
    if you want to force the followers to turn off and
    "on"
    if you want followers to turn on.
    anim => Set this to [ICODE]true/ICODE] if you want to play the Pokeball Animation when the Follower is toggled on and
    false
    if you don't.
  • Syntax:
    pbToggleFollowingPokemon
    pbToggleFollowingPokemon(nil,false)
    pbToggleFollowingPokemon("off",true)

pbTalkToFollower
  • Info:
    The main command used to initiate the dialogue when speaking to a follower.

pbPokemonFound(item,quantity,message)
  • Info:
    The command used to initiate a special dialogue which gives the player an item.
  • Arguments:
    item => Set this to an item you want the Pokemon to find. (Compulsury)
    quantity => Set this to the quantity of the item you want the Pokemon to find
    message => A special message to go along with the Item Find
  • Syntax:
    pbPokemonFound(:POTION)
    pbPokemonFound(:ORANBERRY,5)
    pbPokemonFound(:POKEBALL,1,"{1} is holding something round...")

pbRemoveDependenciesExceptFollower
  • Info:
    The command used to remove all Dependent events except your Following Pokemon.



Changelog:
Spoiler:
  • v1.0
    Script Released

Does it work for 18.1 essentials

Golisopod User

he/him
Alola Reigon
Seen 6 Hours Ago
Posted 1 Week Ago
653 posts
5.4 Years
Does it work for 18.1 essentials
My G, you quoted my main entire post and didn't read a single line lol.

Golisopod User Challenges you to a Battle on his Discord! (Golisopod User#2006)

I've been working with Pokemon Essentials for about 2 years now. Check out my resources:

Male
Seen 9 Hours Ago
Posted 4 Days Ago
282 posts
2 Years
I didn't understand the instructions either :/
¨In the Database Option, create a new Common Event with the ID number of Follower_Common_Event from Follower_Config. It should have only one script command in it pbTalkToFollower¨. What to do here ? Please note that I've just begun with this for fun and don't have any programming skills prior to this :)
you have to go to database go to common event go to 5th comment event that is empty name it Follower_Common_Event and click on command of that event and write script pbTalkToFollower then click on ok. then create any invisible event name it FollowerPkmn and also remember the id no ( in top left corner) of invisible event then ok and then go to event where you first receive starter and add the script pbPokemonFollow(ABC) ABC should replaced by the invisible event id no then ok then start a new game if you not start game it will say error so create a new safe file and done.

Golisopod User

he/him
Alola Reigon
Seen 6 Hours Ago
Posted 1 Week Ago
653 posts
5.4 Years
hey golipoed user its not working perfectly with pokeride script by marin
The Pokeride script doesn't work in v18 without heavily editing it. I'm using the script after editing it heavily and it works fine for me.

Golisopod User Challenges you to a Battle on his Discord! (Golisopod User#2006)

I've been working with Pokemon Essentials for about 2 years now. Check out my resources:

Male
Seen 9 Hours Ago
Posted 4 Days Ago
282 posts
2 Years
The Pokeride script doesn't work in v18 without heavily editing it. I'm using the script after editing it heavily and it works fine for me.
Hey golipoed user Plz create a text file in which you explain all the code you modified to Make Pokeride compatible with 18.1 with Following Pokemon plz tell how you do I m making a game and I need both Pokeride and Following Pokemon Plz.
Male
Seen 9 Hours Ago
Posted 4 Days Ago
282 posts
2 Years
The Pokeride script doesn't work in v18 without heavily editing it. I'm using the script after editing it heavily and it works fine for me.
And also Pokeride works but if we mount a Pokemon and then take the Pokemon that is gonna follow us not follow us and If take a Pokemon that follow them mount a Pokemon it will follower after refresh it will hide does the both things work with your heavily modified script

Golisopod User

he/him
Alola Reigon
Seen 6 Hours Ago
Posted 1 Week Ago
653 posts
5.4 Years
This is really cool! Couldn't get it to work for a bit.....I somehow managed to name the folder ''Folllowing'' xD
Funnily enough, something similar happened to me. While writing the code for loading the path of the Following Pokemon Character sprites, I spelled the folder name as "Folowing" and then was driven to the brink of insanity because the Follower didn't load any charset for some reason.


plz golipoed user can you give the heavily edited script plz i need.
Hey golipoed user Plz create a text file in which you explain all the code you modified to Make Pokeride compatible with 18.1 with Following Pokemon plz tell how you do I m making a game and I need both Pokeride and Following Pokemon Plz.
Nope. Sorry.

Golisopod User Challenges you to a Battle on his Discord! (Golisopod User#2006)

I've been working with Pokemon Essentials for about 2 years now. Check out my resources: