Follower Control Plugin v2.2 for RPG Maker MV

Hey RPG Makers!

This update fixes a bug that could occur in follower selection under certain circumstances in the Follower Control plugin for MV. Big thanks to Lei-Ray for bringing this bug to my attention!

Description of bug:

  • If the current number of party members was less than the Max Party Members plugin parameter, it was possible to select an invisible/absent follower.
  • For example, if the Max Party Members was set to 4, and only 2 party members were in the group, then using the plugin command “Follower 3” would target an invisible/absent follower position, where follower position 3 would be. This usually wasn’t noticeable if Set Move Route was used on an absent follower. However, if Show Balloon Icon or Show Animation was used, this resulted in graphical effects even when the party member was not present!
  • This bug has been fixed as of this update.

Download Follower Control Plugin MV

Visit Store to Download

How to Install

  • Download the file, and unzip it.
  • Make sure the unzipped file is named Tyruswoo_FollowerControl.js and is saved as a .js file.
  • Open the file folder of your project. Place the file in your project’s “js” folder, within the “plugins” folder.
  • Open your project in RPG Maker MV, then go to the Tools menu and select Plugin Manager. Use the Plugin Manager to add and activate the plugin.

Help Documentation

Tyruswoo Follower Control for RPG Maker MV
v2.2, updated 9/18/2020

Terms of Use:
This plugin is for all those who have contributed to Tyruswoo at the Design Counselor level or higher. This plugin may be used for commercial and non-commercial games. Do not redistribute. Enjoy! :)
~Tyruswoo

Plugin Description:
Tyruswoo's Follower Control plugin allows greater control of party follower movement. It allows using these commands on any follower:
- Set Move Route
- Show Balloon Icon
- Show Animation
- Transfer Player
Now you can easily make cool cutscenes involving the party's followers and leader!

Plugin commands in brief:
Follower 0 // Target the leader (for Set Move Route of player).
Follower 1 // Target follower 1 (for Set Move Route of player).
Follower 2 // Etc. Works for up to 50 followers.
Follower StopChase // Followers stop chasing the leader.
Follower Chase // Followers chase the leader again.
Follower Name // Target follower associated with actor named Name.
Follower Variable //Target follower based on value of a variable.
Follower Actor ID //Target follower associated with actor ID
For best results, use the above Plugin Commands in combination with the Set Move Route command. Make cool cutscenes! :)

Example of how to use this plugin:
Here is an example of using the Plugin Commands, combined with the Set Move Route command. Use the following commands within an event:
- Plugin Command: Follower StopChase // This changes follower behavior. They no longer follow the leader.
- Plugin Command: Follower 1 // This makes the Set Move Route command target Follower 1 instead of the leader.
- (Now Set Move Route of player.) // Instead of the party leader, follower 1 will move independently.
- Plugin Command: Follower 0 // This resets how Set Move Route works. Now it will target the leader again.
- (Now Set Move Route of player.) // The party leader will move, but the followers will not chase the leader, since we used "Follower   StopChase".
- Plugin Command: Follower Chase // Resets follower behavior, so they chase the leader again.

How to Select a Follower
Details of Plugin Commands to target a follower instead of the leader for Set Move Route, Show Balloon Icon, Show Animation, or Transfer Player commands.
Example:
- Follower 1
The plugin command "Follower 1" will make all future Set Move Route commands affect the first follower, i.e. the character following the party leader. This effect will continue until resetting by using the following plugin command:
- Follower 0
The plugin command "Follower 0" causes default behavior of all Move Route event commands affecting the party leader.
Important: Make sure you use plugin command "Follower 0" to reset, so that future Set Move Route commands will affect the party leader!

Number Codes:
0 = Leader
1 = First Follower
2 = Second Follower
3 = Third Follower
4 = Fourth Follower
5 = Fifth Follower
And so on for up to 50 followers.
If the selected follower is not present (i.e. the party is too small, and that follower spot is not filled), then commands sent to that follower number will have no effect.

Notes on Transfer Player:
- No matter the follower/leader targeted, using a Transfer Player to go to a new map will always rejoin the party, making the followers chase the leader again, and setting the leader as the target (same as using Plugin Command "Follower 0").
- If transferring to the current map, then the targetted follower determines the effect of Transfer Player:
-- If the leader is targeted (Follower 0), then we check whether followers are chasing.
--- If they are chasing, then we perform a Transfer Player type function, bringing the party together and performing the chosen fade.
--- If the followers are not chasing, then the leader is teleported without affecting the followers' positions.
-- If a follower is targeted, then the follower is teleported without affecting the other followers' or leader's position.
Tip: If you want to transfer the followers and leader all independently during a cutscene, then be sure to use Plugin Command "Follower StopChase". That way, transfers of the leader within the same map will no longer affect the followers, allowing for better cutscenes. 
(Note that this also works with TYR_CameraControl, allowing for the camera to stay focused on the correct camera target.)

=====
How to Make Followers Stop and Start Following:
Details of Plugin Commands to make followers stop and start following:
Follower Chase
- Makes all followers chase the leader and each other. This is the default behavior of followers.
Follower StopChase
- Makes all followers stop chasing the leader and each other. This is useful for cutscenes in which the party leader moves around alone, allowing followers and leader to all move independently.

=====
Alternative Ways to Select a Follower:
Follower Variable variableID
- Where variableId is the ID number of the desired variable.
- This will use Variable variableId to determine which follower to select. If Variable variableId has not been set, then it will be 0, which will select the leader. If Variable variableId has been set to 3, then follower 3 will be selected. Etc. In this way, the Control Variables event command can be used to set a variable Id, which in turn selects a follower.
Examples:
Follower Variable 3
- This uses variable 3 to determine the follower. Set variable 3 to the desired follower, then use this command to set the selected follower to the value of Variable 3.
Follower Variable 27
- Same as above, but variable 27 is used. If variable 27 has not been set, it will be 0, and the leader will be selected. If variable 27 has been set to 1, then the first follower will be selected. Etc.
- Tip: Selecting followers by variable can also be used in combination with event Loops to cycle through all followers in turn.
Follower Name
- Where Name is the name of the follower's associated actor.
Examples:
Follower Harold
- This will select whichever follower is associated with the actor named Harold.
Follower Marsha
- This will select whichever follower is associated with the actor named Marsha.
This can be useful for certain cutscenes. For example, if you want a certain follower to have a question mark bubble, or to do a jump before speaking, etc, you can select that follower even if you do not know their position in the group. This can be helpful if you allow the player to alter the marching order of their characters' party.
Follower Actor ID
- Where ID is the ID number of the follower's associated actor.
Examples:
Follower Actor 2
- This will select whichever follower is associated with the actor of actorID number 2.
Follower Actor 39
- This will select whichever follower is associated with the actor of actorID number 39.
- Selecting a follower by actor ID can be useful just like selecting a follower by name, as described above. However, by using an actor ID, we can select the desired actor, even if the name of the actor has been modified. This is useful for games that allow the player to change the names of all their actors.
This can be useful just like selecting a follower by name, as described above. However, by using an actor ID, we can select the desired 

=====
Synonyms: 
Here are a few alternate ways to write the same plugin command:
For the term "Follower", you may type any of these:
- Follower
- follower
- FOLLOWER
- Follow 
- follow 
- FOLLOW
For the term "Chase", you may type any of these:
- Chase 
- chase 
- CHASE
- Chase True 
- chase true 
- CHASE TRUE
- Chase Start 
- chase start 
- CHASE START
For the term "StopChase", you may type any of these:
- StopChase
- stopchase
- STOPCHASE
- stopChase
- Stopchase
- Chase False 
- chase false
- CHASE FALSE
- Chase Stop
- chase stop
- CHASE STOP

=====
v1.00 January 17, 2016:
Created the plugin and added the following features:
- Plugin command "Follower" to select followers.
- Set Move Route effect on followers.
- Plugin commands "StopChase" and "Chase" to control followers chasing the leader.
v1.02 January 19, 2016:
Worked on fixing a bug. However, errors still occured. See below.
v1.03 January 20, 2016:
Fixed the bug found on January 19th.
- Previously, the "Follower" plugin command had to be used prior to ever using Set Move Route or other featured commands in your game; If the "Follower" plugin command was not used first, the game would freeze. Now, the plugin no longer requires this! If you never use a "Follower" plugin command, your game will function as it would by default, without errors.
v1.04 January 20, 2016:
Added feature:
- If a follower is on the same tile as the leader, and then Set Move Route is used to "Turn toward Player", then the follower will now turn to face the same direction as the leader!
- So, by using the Gather Followers event command, then using Set Move Route "Turn toward Player", it is possible to make followers be in a predictable position (right where the leader is), from whence the followers can then be sent out in a pre-prepared formation. This allows for ease of creating Common Events for for your various formations of follower movement!
v1.05 Sept. 4, 2018:
Added feature:
- Now, when StopChase is on, and the leader's MoveRoute is caused to jump, the followers will not jump.
v1.06 Dec. 22, 2018:
Added features:
- Now can select follower based on a variable's value, using the Follower Variable plugin command.
- Now can select follower based on their actor's name, using the Follower plugin command.
v1.07 Dec. 31, 2018:
Added feature:
- Now can select follower based on an actor's ID, using the Follower Actor plugin command.
v1.08 Feb. 27, 2019:
Added feature/fixed bug:
- Followers can be set to have unique qualities of the following, using Set Move Route:
-- Opacity
-- Blend Mode
-- Walk Animation On/Off
-- Step Animation On/Off
-- Direction Fix On/Off
-- Transparency On/Off
- For these qualities, followers will retain their individual qualities. However, if StopChase is Off, and one of these qualities is applied to the player, then the same quality will be applied to all followers, as well. Therefore, if you want to apply any of the above qualities to only the leader, StopChase must be On.
- Also, followers will now retain their own Move Speed as long as StopChase is On, even if the followers are moving and the player is moving at the same time. (However, unlike the above qualities, if StopChase is turned back Off, followers will immediately be reset to the player's Move Speed.)
v1.09 March 8, 2019:
Added feature:
- A new script call was added, which can be used within the Set Move Route command to make any follower pathfind to any coordinates on the map, to any of the current map's events, or to any follower.
First, select the desired Follower. Then, within the Set Move Route command, use one of these scripts:
this.path(17, 5)
--This finds the path to x coordinate 17, y coordinate 5.
this.path("event", 3)
-- This finds the path to Event 3 on the current map.
this.path("follower", 2)
-- This finds the path to Follower 2.
For whichever of the above pathing arguments you use, the player or follower will only move one step each time you call the script. You can use the script as many times as you need, in order to make the player or follower step toward the target for that many steps.
- Note: This script call also works for events. Just use the script call within Set Move Route.
- Note: This script call has no variability, so it always finds the straightest path, and will always yield the same result every time. (This is different from the "Approach" movement type, which has randomness, producing variability.)
v1.10 June 23, 2019:
Added feature:
- A new plugin command was added, which allows switching the image of the currently selected follower, based on the currently selected follower's default image.
- To use poses, you first need to create the appropriately named pose image files. Then, you can call those files for your follower at any time. The follower's default image will be used to determine what their poses can be.
- You can create an infinite number of your own poses! To create a pose, you need to have the default image file for the character, and then create another image file with an underscore added at the end, followed by the name of the pose (in lowercase letters).
For example, if our character's default image is:
$McKathlinIsAwesome.png
Then our pose image for a wink should be named:
$McKathlinIsAwesome_wink.png
Or, our pose image for that character's wounded image should be:
$McKathlinIsAwesome_wounded.png
And likewise for any other pose images for that character. You can have as many poses as you want! There is no maximum.
Important Note: The poses must all have the same index value as the default pose. In other words, the pose images must be the same size as the default image, with the pose at the same position within the image file.
- For example, if we want to make a certain follower wink, we first select the follower. Then, make that follower change to a wink pose:
Follower Pose wink
Have the follower hold the pose for a moment or say something, etc, then return the follower to a default pose. There are several ways to do this, and all are equivalent:
Follower Pose default
Follower Pose normal
Follower Pose none
Follower Pose stand
Follower Pose standing
All of the above plugin commands do the same thing of returning the follower to their default pose.
v1.11 August 2, 2019:
Modified feature: There are now two ways to select a follower by their name. You can select a follower by their actor's name, as listed in the database.
- By default, followers will be selected based on their actor's name in the database. For example:
Follower Shompta
The above searches the followers, and if a follower's actor has the name "Shompta" in the database, then that follower is selected.
- You can, if so desired, still search for an actor based on their current name. The only reason to use this method is if you want special things to occur only when an actor has a special name that the player has entered in. For example, either of the following will select a follower who is currently named "SecretCode".
Follower CurrentName SecretCode
Follower Current_Name SecretCode
If a player has indeed renamed an actor to be named "SecretCode", then the follower associated with that actor will be selected.

v2.00 January 24, 2020:
This update greatly improves the pathfinding. As previously, you can use this.path() to make a follower move to specific coordinates, to a specific event, or to a specific follower. However, now the pathfinding allows avoiding obstacles. Note that in order for the follower to recgonize obstacles, you must also use the Set Move Route command to set Through Off prior to the movement. Then, use the Set Move Route command to run a Script of the this.path function.
Examples of smart pathfinding that avoids obstacles:
this.path(17, 5)
-- This finds the smart path to x coordinate 17, y coordinate 5.
this.path("event", 3)
-- This finds the smart path to Event 3 on the current map.
this.path("follower", 2)
-- This finds the smart path to Follower 2.
As previously, note that the follower will only move one step each time the script runs.
An excellent feature is that you can use this.path() not just on Set Move Route of followers, but also on the leader of the player's group, or even on any event's Set Move Route command!
Also importantly, if you use this in any cutscenes, the pathfinding calculation will remain the same, as long as the obstacles are in the same places!
You also have control over the pathfinding distance! By default, RPG Maker MV allows pathfinding of up to 12 tiles, and this is what is used to pathfind when the player uses the mouse or touchscreen to move. But, with Follower Control, you can now change the pathfinding distance for any follower, including the leader of the group, so you can allow the player to pathfind even farther if you want! You can also use this to modify how smart enemies are at pathfinding! Use this script inside a Set Move Route command:
this.pathMax(value)
- Where value is how many tiles/steps you want the character to be able to pathfind around obstacles. For example:
this.pathMax(30)
- The above allows pathfinding around obstacles, even if it requires looking 30 tiles around to find the best path.
If you want to use the previous pathfinding, which did not take obstacles into account, you can use scripts such as the following:
Examples of basic pathfinding that does not avoid obstacles:
this.moveToward(17, 5)
-- This finds the basic path to x coordinate 17, y coordinate 5.
this.moveToward("event", 3)
-- This finds the basic path to Event 3 on the current map.
this.moveToward("follower", 2)
-- This finds the basic path to Follower 2.
Remember that each script call moves the character only one tile, i.e. only one step.
v2.1 April 19, 2020:
- Added a plugin parameter to control the Max Party Members. This allows you to have more than the default of 4 party members shown in the party while the player traverses the map.
v2.2 Sept. 18, 2020:
- Fixed a bug in which it was possible to select a absent follower if the current $gameParty.battleMembers.length was less than $gameParty.maxBattleMembers. For example, if the Max Party Members is 4, and the current party size is 2, it was possible to select followers 2 and 3, even though they do not exist. This was not usually noticeable, because such followers are invisible. However, using Show Balloon Icon or Show Animation could cause balloons or animations to appear at the location of an absent follower.
Tyruswoo
Tyruswoo

Indie Game Designer creating game content!

Articles: 267

6 Comments

  1. Hello, Tyruswoo.
    I have been using your plugin for 2 years (version 1.04), but whenever try to save, an error message appears and game crashes. The message is “this._actors.map is not a function”.
    I expected the problem to be the plugin version, then bought your license an updated plugin, but error persists.
    Could you help me?

    • Thank you for the report. I will take a look at this or have our software engineer McKathlin look at it.

      Please provide as many details as you can. If you can provide a sample project producing the problem, please send me a direct message with the link.

    • McKathlin found one possible cause of crashes from the Follower Control plugin, and she is currently fixing it. This may help with your issue. We will let you know when the new update is completed.

      This upcoming fix is associated with how data is stored by Follower Control within save files. Therefore, please note that old save files might not load or function exactly as intended. You might need to start a new save file to check that everything is working correctly for your game.

  2. A user asked the following question:

    “I’m using your Follower Control plugin, mainly for the ability to control my party members independently during cutscenes, but also I see it allows me to change my max party size. I’ve set it to 6, but in doing that, it moves all my characters up on the battle screen. Character 1 is positioned on the lower half of the upper battleback, and I’m looking for a way to move the characters downwards a bit, just enough to get them comfortably away from the upper half of the battleback. Any chance you could point me in the right direction for this change?”

    Here is my answer:

    Thank you for your message and for alerting me to this issue!

    If you are using MV with sideview actors and are using Yanfly’s YEP_BattleEngineCore v1.47 plugin for MV, then this is likely what is causing the issue, as a compatibility issue with Tyruswoo_FollowerControl v2.2 for MV. (This is likely due to YEP_BattleEngineCore not recognizing that Tyruswoo_FollowerControl has changed the number of battlers.) Although Yanfly changed the ”Home Position Y” formula, Yanfly fortunately also provided an option for you to customize the ”Home Position Y” of the battlers according to your game’s needs.

    To fix the problem, do the following:

    1. Go to the Plugin Manager menu.
    2. Open the YEP_BattleEngineCore plugin.
    3. In the parameters list, go to the ”—Sideview—” section.
    4. Change the ”Home Position Y” formula to the following:

    260 – (partySize – 6) * 10 + index * (48 – (partySize – 4) * 6)

    Please note that for default RPG Maker MV, the ”Home Position Y” formula is (280 + index * 48), so if you enter this formula, then the sideview battler positions with appear just as they would have without YEP_BattleEngineCore installed. However, for a party of 6 battle members, this makes the player’s characters stretch down under the health status window. Note that in the default formula, ”280” is the position of the topmost party member, ”index” is the party member’s order (with zero as the leader), and 48 is the Y distance between the party members.

    In my recommended formula, you will see that Y position is adjusted based on the party’s current size (partySize). This formula should look good for any party size from 1 to 6. You will note that if there are 4 party members, my recommended formula makes the party members appear exactly as they would in the default formula.

    Note: I tried to replicate the issue using the Tyruswoo_FollowerControl v2.2 for MV without using Yanfly’s YEP_BattleEngineCore v1.47 for MV, and the problem did not occur as described by the user. The problem only occurred when the plugins were used simultaneously. If you are not using YEP_BattleEngineCore, please send me a message detailing which battle plugins you are using.

    Let me know if this helps!

Leave a Reply