The Battle Manager provides support for multiple battle systems in a single game. The script uses an intuitive script call based approach to determining which battle system
should be used.
Under this script, your project would consist of three types of battle systems
- Primary battle systems. These are the main battle system that will be used
in your game. There can only be one in your project.
Secondary battle systems. These are battle systems that change the primary
battle system in some way, such as adding new features. You can have many secondary battle systems.
Plugin battle systems. These are battle systems that can be run stand-alone. They do not use the primary battle system as a base and therefore allow you to have a completely different battle system if needed.
Script: download here
These are battle system plugins that I have prepared as demo scripts. You should be able to plug them into your project and begin using them. If you would like to submit a plugin just leave a message.
First you have to convert your existing battle system to become a “primary” battle system. This will be the default battle system for your project.
This could be any battle system, such as Yanfly’s Ace Battle Engine, or Yami’s Battle Engine Symphony, or Victor’s animated battle system.
To convert your battle system into a primary battle system, follow these steps
- In the script, search for
- Change it to
And then you’re done! If you can’t find one, then it is a primary battle system already.
Now you can add battle system plugins and begin using them.
To determine the battle system to use, make the script call
TYPE is the name of the battle system. The battle system plugins should
tell you what the name of their battle system is.
The default battle system
is “BaseBattle”, so if you wanted to use the default battle system you would
Note that the battle system will continue to be used even after a battle is over, so if you are using a battle system for a specific event, you need to change the battle system again after the battle is over.
This script does not automatically convert any arbitrary battle system into a compatible system. Each system must be set up to support this Battle Manager.
The Battle Manager is a factory interface that will set up the battle scene
and battle manager for you based on what the current battle system is. It
will redirect all calls to BattleManager to the correct battle manager.
It is very easy to setup a battle system as a primary battle system and is described in the user usage section.
You will typically be developing secondary battle systems for this script, as
the primary battle system is fairly easy to implement.
To add your own secondary battle system, you will need to define a few things.
First, begin by choosing a name for your battle system. In this example,
I will use “HimeBattle” as my battle system’s name.
- Define your battle manager and inherit it from BaseBattleManager.
class HimeBattleManager < BaseBattleManager
- Define your battle scene and inherit it from Scene_Battle
class Scene_HimeBattle < Scene_Battle
- Define your battle windows and spriteset_battle. In order for a project to support multiple battle systems, you CANNOT overwrite any of the default classes. Instead, you should inherit from them and make your changes as needed.
- If you must overwrite data, do an alias and check that the current scene is your battle scene. You should consider all built-in scripts to be “shared” objects, and users will likely run into compatibility issues between plugins if you overwrite methods however you wish.
If you have an existing battle system already, you would follow the same procedure. I have provided two example plugins using Kread-EX’s Chain Battle system and Fomar’s Customizable ATB system.