In this tutorial we’ll set up the active time battle system.
Learn more about active time battles and the other available battle systems in this documentation.
Timebar Formulas #
In active time battles, combatants can perform actions when their timebar reached a defined value – we’ll set up 2 formulas for calculating the timebar increase each tick.
The formula for calculating the timebar uses a 2nd formula to calculate a factor based on the combatant’s agility and using it to calculate how long it to fill the timebar. The timebar will be completely full at a value of 1000.
We could also combine both formulas using sub calculations (Begin Sub Calculation and End Sub Calculation nodes), but sometimes it’s better to split complex things into smaller parts. This allows reusing things in other formulas (e.g. timebar factor could be needed for some other calculations in the future), testing parts of the formulas and keeps things a bit cleaner.
Navigate to Game > Formulas, we’ll add new formulas.
Timebar Factor #
This formula calculates the agility based factor for filling the timebar.
The formula is designed to take roughly 3 seconds to fill the timebar with 1 agility, 1 second with 100 agility and 0.5 seconds with 255 agility (the maximum).
Formula Settings #
- Name
Set to Timebar Factor.
Check Status #
Add Node > Combatant > Check Status
We’ll check the combatant’s agility, we’ll use a different calculation if it’s above 100.
Click on Add Status Condition.
- Condition Type
Select Status. - Status Needed
Select Status Value. - Status Value
Select Agility. - Check Type
Select Is Less Equal. - Check Value
Select Value > Value.
Set the value to 100.
Value #
Add Node > Value > Value
This node is connected to the Success slot of the Check Status node.
- Operator
Select Add. - Value
Select Value > Value.
Set the value to 100.
Status Value #
Add Node > Combatant > Status Value
- Operator
Select Sub. - Status Value
Select Agility.
Value #
Add Node > Value > Value
- Operator
Select Multiply. - Value
Select Value > Value.
Set the value to 0.02.
Value #
Add Node > Value > Value
- Operator
Select Add. - Value
Select Value > Value.
Set the value to 1.
Status Value #
Add Node > Combatant > Status Value
This node is connected to the Failed slot of the Check Status node.
- Operator
Select Sub. - Status Value
Select Agility. - Value Origin
Select To Maximum.
This’ll use the status value’s maximum value (255) and subtracts the current value.
Value #
Add Node > Value > Value
- Operator
Select Multiply. - Value
Select Value > Value.
Set the value to 0.8.
Value #
Add Node > Value > Value
- Operator
Select Divide. - Value
Select Value > Value.
Set the value to 255.
Value #
Add Node > Value > Value
- Operator
Select Add. - Value
Select Value > Value.
Set the value to 0.5.
Timebar Calculation #
This formula calculates the timebar increase each tick.
It’ll divide the full timebar (1000) by the timebar factor (formula) and multiply it by delta time to calculate how much the timebar is filled. Additionally, we’ll further increase or decrease the value by checking for AGI Down or AGI Up status effects being applied.
Formula Settings #
- Name
Set to Timebar Calculation. - Use Minimum Value
Enable this setting. - Minimum Value
Select Value > Value.
Set the value to 1.
Value #
Add Node > Value > Value
- Operator
Select Set. - Value
Select Value > Value.
Set the value to 1000.
Value #
Add Node > Value > Value
- Operator
Select Divide. - Value
Select Value > Formula.
Select the Timebar Factor formula.
Value #
Add Node > Value > Value
- Operator
Select Multiply. - Value
Select Time > Delta Time.
Status Fork #
Add Node > Combatant > Status Fork
Similar to the Check Status node, but we can have multiple next slots, one for each check.
There’s already a Status Condition 0 added for us, let’s adjust it.
- Condition Type
Select Status. - Status Needed
Select Status Effect. - Status Effect
Select AGI Down. - Is Applied
Enable this setting.
Copy Status Condition 0 and change the following settings.
- Status Effect
Select AGI Up.
Value #
Add Node > Value > Value
This node is connected to slot 0 (i.e. AGI down being applied).
- Operator
Select Multiply. - Value
Select Value > Value.
Set the value to 0.75.
Value #
Add Node > Value > Value
This node is connected to slot 1 (i.e. AGI up being applied).
- Operator
Select Multiply. - Value
Select Value > Value.
Set the value to 1.2.
Active Time Setup #
With our formulas set up, we’re now ready to set up the actual active time battle system.
Navigate to Battles > Battle System – you’ll notice that there are already all 4 battle system types set up. You can actually set up as many battle systems as you want, e.g. to test different variations of a system.
We’ll just change the settings of the already added Active Time battle system setup, so select it and change the following settings.
Base Settings #
The base settings handle the battle system type (which is already correct here), control blocks and battle start/end schematics. You can also optionally use a different battle menu for the battle system.
The settings are the same for all battle system types.
We only need to change the Control Block Settings and set up the Battle Start/End Schematics we’re using.
Control Block Settings #
The Player Control Block settings handle blocking the player control. We can already use the default setup for this, but let’s take look at some settings.
- Block Player Control
Select Battle.
The controls are blocked during the whole battle. - Allow In Turn
Select None.
When blocking the controls during the whole battle, you can optionally enable controls during the player’s turn, e.g. to allow running around. - Block in Battle Menu
This doesn’t really matter when blocking during the whole battle and not allowing controls in turn.
This’d block the controls while the battle menu is open. - Transfer Player Control
This’ll transfer player controls to the player combatant that’s currently selecting actions – not needed when we block controls.
The Camera Control Block settings handle blocking the camera control. We’ll allow controlling the camera during battle, so we’ll make some changes.
- Block Camera Control
Select None. - Block in Battle Menu
Disable this setting.
Battle Start/End Schematics #
We’ll use the schematics we’ve set up.
- Start Schematic
Select the BattleStart schematic. - Victory Schematic
Select the BattleEndVictory schematic. - Escape Schematic
Select the BattleEndEscape schematic. - Defeat Schematic
Select the BattleEndDefeat schematic.
Active Time Settings #
These settings handle the majority of the active time related system. We’ll use our formulas and set up when the timebar filling will be paused.
Time Settings #
We’ll use our timebar calculation formula and set the start calculation to a random value between 0 and 500.
- Time Calculation
Select Value > Formula.
Select the Timebar Calculation formula. - Start Calculation
Select Value > Random.
Set the first value to 0.
Set the second value to 500.
The border and maximum timebar settings are already correct, using 1000 for all 3. However, we’ll change the tick interval, which controls how often the timebar is increased.
- Tick Interval
Set to 0.
This will update the timebar each frame – since we use delta time in our calculation, that’s what we need. - Separate Ticks
Disable this setting.
If enabled, starting actions and increasing the timebar would be on separate ticks, i.e. the timebar would only increase every 2nd tick.
We’ll enable all pause settings to pause filling the timebar (and cast time) on menu, choosing and action.
- Pause On Menu/Choosing/Action
Enable this setting. - Pause Cast Time
Enable all 3 settings.
The rest of the active time settings can be left to their default setup for our game.
However, notice that you can disable automatically showing the battle menu in the Battle Menu Call settings. E.g. if you don’t want to use a battle menu (or only call it when using an input key) and input actions via control maps or other means, that’s where you can disable the battle menu.
Action Settings #
Active time battles allow you to control how much of the timebar is consumed by an action. By default, an action will cost the whole timebar – we’ll stick with that for most of our actions.
However, we want switching members to not take up any time at all, skipping (doing nothing) and using items should only consume half of the timebar. Individual actions (abilities, items) can also override the timebar use with a custom setup.
Timebar Use Settings #
The Default Timebar Cost is set to End Turn, i.e. cost the whole timebar. We’ll keep it that way.
- Own Item Timebar Cost
Enable this setting.
This’ll make the Default Item Timebar Cost settings available.
- End Turn
Disable this setting. - Timebar Use
Select Value > Value.
Set the value to 500.
Similar, we’ll also set the None cost to 500.
- Own None Timebar Cost
Enable this setting.
This’ll make the None Timebar Cost settings available.
- End Turn
Disable this setting. - Timebar Use
Select Value > Value.
Set the value to 500.
And once more for the Change Member cost, but we’ll set it to 0 this time.
- Own Change Member Timebar Cost
Enable this setting.
This’ll make the None Timebar Cost settings available.
- End Turn
Disable this setting. - Timebar Use
Select Value > Value.
Set the value to 0.
Action Time Settings #
Want to put a bit more pressure on the player? You can optionally limit the time available to select actions during a combatant’s turn using the Action Time settings.
We’re not using it, though. But you can, if you want. You can display a combatant’s action time via HUDs, e.g. as a value bar or text.
Battle System Settings #
These settings handle overall battle system handling when using this battle system – they’re the same for all battle system types.
Battle Options #
The battle options handle some general things like allowing counter attacks or prioritizing some actions if they’re used at the same time.
- Can Counter
Enable this setting.
Counter attacks are available in this battle system. - Death Immediately
Handles if a combatant’s death schematic is used immediately upon receiving (deadly) damage, or if the death action is queued to start after the current action finishes.
You can enable or disable this setting based on your preference.
I’ll keep it disabled for the dramatic effect of not knowing if the combatant was killed until after the attack animation finished.
That’s pretty much all we need to do for the active time battle system.
Selecting the System #
We’ll make sure we actually use the battle system we set up. This is done in the general settings for battle systems.
Navigate to Battles > Battle System > General Settings and change the following setting.
Base Settings #
- Default Battle System
Select the Active Time system you just set up/edited.
Save Changes #
And that’s it for the active time battle system setup!
Don’t forget to save your changes by clicking on Save Settings at the bottom of the editor.
Next, we’ll set up cast times.