YEP.24 – Battle System – Active Turn Battle

Yanfly Engine Plugins is a plugin library made for RPG Maker MV, a wonderful piece of software to help you make that role playing game of your dreams. You can find out more about RPG Maker MV here.

You can grab the plugin here:
English Dropbox
English Mirror
Portuguese Dropbox
Portuguese Mirror

The ever so popularly requested battle system: ATB! Made similarly to match the Final Fantasy series, the ATB system starts off with your characters filling up their gauges before they can input an action. Once an action is inputted, they start to quickly charge it up before going to perform their attack.

This plugin requires the Battle Engine Core plugin.

SUPPORT FOR ATB HAS BEEN DISCONTINUED BY YANFLY. Reasons are explained in this post. You can continue using it, but do not expect everything to work with it.


Introduction


The Battle System – Active Turn Battle plugin is an extension plugin for Yanfly Engine Plugins’ Battle Engine Core. This extension plugin will not work without the main plugin.

To use the ATB system, go to the Battle Engine Core plugin and change the ‘Default System’ setting in the parameters to ‘atb’.

The Active Turn Battle system functions in such where battlers will have a new gauge in battle functioning as their turn gauge. As time goes by without anything happening such as actions, menu selection, etc, the gauge fills up. Once it is full, the battler can commit to an action.

After committing to an action, the battler charges the skill before using it in battle to either attack an enemy, heal an ally, etc. Upon finishing the action, the gauge drains to empty and the battler must charge it up again.

This is a battle system where agility plays an important factor in the progress of battle where higher agility values give battlers more advantage and lower agility values give battlers less advantage.


Plugin Commands


To change your battle system to Active Turn Battle if it isn’t the default battle system, you can use the following Plugin Command:

Plugin Command:

setBattleSys ATB
Sets battle system to Active Turn Battle.

setBattleSys DTB
Sets battle system to Default Turn Battle.

Using the above Plugin Commands, you can toggle between the Default Battle System and Active Turn Battle!


Notetags


The following are notetags that pertain to and affect the ATB system.

Skill and Item Notetags:
<ATB Help>
text
text
</ATB Help>
For those planning on using multiple battle systems, sometimes you may have your skills perform differently while using ATB. If so, using this notetag will allow skills and items to display different help text while ATB is enabled.

<ATB Speed: x>
<ATB Charge: x>
<ATB Gauge: x>
Usable only during ATB. This sets the target’s current speed or charge to x. If ‘speed’ or ‘charge’ is used, it will only affect those gauges while in the respective phase. If ‘gauge’ is used, it will affect either.

<ATB Speed: x%>
<ATB Charge: x%>
<ATB Gauge: x%>
Usable only during ATB. This sets the target’s current speed or charge to x% of the whole gauge. If ‘speed’ or ‘charge’ is used, it will only affect those gauges while in the respective phase. If ‘gauge’ is used, it will affect either.

<ATB Speed: +x> or <ATB Speed: -x>
<ATB Charge: +x> or <ATB Charge: -x>
<ATB Gauge: +x> or <ATB Gauge: -x>
Usable only during ATB. This increases or decreases the target’s current speed or charge by x. If ‘speed’ or ‘charge’ is used, it will only affect those gauges while in the respective phase. If ‘gauge’ is used, it will affect either.

<ATB Speed: +x%> or <ATB Speed: -x%>
<ATB Charge: +x%> or <ATB Charge: -x%>
<ATB Gauge: +x%> or <ATB Gauge: -x%>
Usable only during ATB. This increases or decreases the target’s current speed or charge by x% of the whole gauge. If ‘speed’ or ‘charge’ is used, it will only affect those gauges while in the respective phase. If ‘gauge’ is used, it will affect either.

<After ATB: x>
<After ATB: x%>
This will set the skill/item user’s ATB speed value to x or x%. If ‘x’ is used, this will be the exact ATB value. If x% is used, this will be the percentage of the ATB gauge that it will be at.

<ATB Interrupt>
<ATB Interrupt: x%>
This will give the skill the ability to interrupt and cancel out the target’s current action while it is in the charging phase. If the ‘x%’ notetag version is used, it will have a x% chance of success.

Actor, Class, Enemy, Weapon, Armor, and State Notetags:
<ATB Start: +x>
<ATB Start: +x%>
Usable only during ATB. This will give the actor, class, enemy, weapon, armor, or state the property of starting battle with X ATB Speed or X% of the ATB gauge filled up.

<ATB Turn: +x>
<ATB Turn: +x%>
Usable only during ATB. This will give the actor, class, enemy, weapon, armor, or state the property of starting a turn with X ATB Speed or X% of the ATB gauge filled up.


Lunatic Mode – Conditional ATB Speed and Conditional ATB Charge


For those who have a bit of JavaScript experience and would like to have more unique ways of performing ATB speed and charge changes, you can use the following notetags:

Skill and Item Notetags:
<Target ATB Eval>
speed = x;
charge = x;
</Target ATB Eval>
You can omit speed and/or charge. Whatever you set ‘speed’ to will change the ATB speed of the target. If the target is charging, ‘charge’ will cause the target’s charge to change to that value. To make things more simple, ‘max’ will be the full gauge value.

Here is an example:

<Target ATB Eval>
speed = target.hp / target.mhp * max;
charge = target.hp / target.mhp * max;
</Target ATB Eval>
The above code will set the user’s current ATB gauge to position equal to the target’s HP ratio. If the target has 25% HP, the ATB gauge will go to 25% full for the target.

— — — — —

<After ATB Eval>
speed = x;
</After ATB Eval>
This is the ATB set after the user has used the skill/item and the custom ATB amount you want the user to be at after. ‘max’ be the value of the full gauge value. Whatever you set ‘speed’, the user’s ATB speed value will change to that much:

Here is an example:

<After ATB Eval>
speed = user.mp / user.mmp * max;
</After ATB Eval>
The above code will set the user’s ATB gauge after using the skill/item to equal the user’s MP ratio. If the user has 25% MP, the ATB gauge will go to 25% full for the user.

— — — — —

<ATB Interrupt Eval>
interrupt = true;
</ATB Interrupt Eval>
This will allow you to set custom conditions for interrupting a target. Keep in mind that even though it is a custom condition, it still requires the target to be in the charging phase for the interrupt to work. By setting ‘interrupt = true’, the target will be interrupted.

Here is an example:

<ATB Interrupt Eval>
if (user.hp > target.hp) {
  interrupt = true;
}
</ATB Interrupt Eval>
The above code will state that if the user has more HP than the target, the target will be interrupted.


Yanfly Engine Plugins – Battle Engine Extension – Action Sequence Commands


You can make use of these extra ATB related action sequences.


ATB CHARGE: target, X
ATB CHARGE: target, X%
ATB CHARGE: targets, +X
ATB CHARGE: targets, +X%
– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –
Usable only for ATB. Sets the target’s ATB charge to X or X%. This only applies when the target is in the ATB charge phase. This will not affect the user to prevent mechanical issues.
– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –
Usage Example: atb charge: targets, +5000
atb charge: target, -50%


ATB GAUGE: target, X
ATB GAUGE: target, X%
ATB GAUGE: targets, +X
ATB GAUGE: targets, +X%
– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –
Usable only for ATB. Sets the target’s ATB speed or charge (whichever the user is currently filling up) to X or X%. This only. This will not affect the user to prevent mechanical issues.
– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –
Usage Example: atb gauge: targets, +5000
atb gauge: target, -50%


ATB INTERRUPT: target
– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –
Usable only for ATB. If the target is in the charging phase, interrupt it.
– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –
Usage Example: atb interrupt: targets


ATB SPEED: target, X
ATB SPEED: target, X%
ATB SPEED: targets, +X
ATB SPEED: targets, +X%
– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –
Usable only for ATB. Sets the target’s ATB speed to X or X%. This only applies when the target is filling up its ATB gauge. This will not affect the user to prevent mechanical issues.
– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –
Usage Example: atb speed: targets, +5000
atb speed: target, -50%


Happy RPG Making!


Happy RPG Making!


These plugins and Tips & Tricks ideas are made possible thanks to our creative patrons on Patreon! The majority of our Tips & Tricks ideas are placed within the Patreon-exclusive Sample Project for quick and easy access! If you'd like to make a Tips & Tricks suggestion, Yanfly's Patreon-based Suggestion Box a visit here:


If you have any bugs to report, visit the following link:


If you have any questions about Action Sequences, visit the following link:



Thank you!