Yanfly ATB Battle System - Skill Speed

nathanlink169

Game Dev by Career, no idea what I'm doing
Veteran
Joined
Aug 15, 2013
Messages
72
Reaction score
32
First Language
English
Primarily Uses
RMMV
Hello.

Yanfly's ATB Battle system gives every battler a new gauge that fills up real-time. When the gauge is filled up, that battler will be able to select their ability. They will then charge up their ability: once this has finished charging, they will then execute the ability.

The edit that I am requesting is for the Speed tab in the settings for each skill to be taken into account for this charging speed. Currently, every skill will charge at the same speed. There is a feature in the script that if a skill has the <ATB Interrupt> tag, it can cancel any ability that the target is currently charging. By making more powerful abilities take more time to charge, they are riskier to select.

The new charge rate should be:
DEFAULT_CHARGE_RATE + (ABILITY_SPEED * CONSTANT)

If possible, that constant value should be editable in the parameters section of the plugin.

Thank you in advance!

Here is a link to Yanfly's ATB Battle System page: http://www.yanfly.moe/wiki/Battle_System_-_ATB_(YEP)
Here is a link to Yanfly's ATB Battle System script: http://yanfly.moe/plugins/en/YEP_X_BattleSysATB.js
Yanfly's ATB Battle System script requires Yanfly's Battle Engine Core. That can be found here: http://yanfly.moe/plugins/en/YEP_BattleEngineCore.js
 

Oddball

Veteran
Veteran
Joined
Sep 4, 2014
Messages
1,923
Reaction score
535
First Language
English
Primarily Uses
N/A
Victor sant's ATB can make it so you can put a lot more wait on actors AGI in terms of charging speed. As well as changing the speed it recharges through the skill speed tab in skills menu.

By default, the charecters execute the commands right away when selected (after their ATB is full) it provides customizable options as well. Like you cn make skills that do charge up after selected. As well as dynamicly changing the ATB speed in battle with states, weapons and stuff
 

nathanlink169

Game Dev by Career, no idea what I'm doing
Veteran
Joined
Aug 15, 2013
Messages
72
Reaction score
32
First Language
English
Primarily Uses
RMMV
Victor sant's ATB can make it so you can put a lot more wait on actors AGI in terms of charging speed. As well as changing the speed it recharges through the skill speed tab in skills menu.

By default, the charecters execute the commands right away when selected (after their ATB is full) it provides customizable options as well. Like you cn make skills that do charge up after selected. As well as dynamicly changing the ATB speed in battle with states, weapons and stuff
Is there a version that works for MV? I've tried to look it up, and I only seem able to find its Ruby counterpart.
 

nathanlink169

Game Dev by Career, no idea what I'm doing
Veteran
Joined
Aug 15, 2013
Messages
72
Reaction score
32
First Language
English
Primarily Uses
RMMV
Bumping! I was unable to find a Javascript version of the above plugin!
 

JosephSeraph

White Mage
Restaff
Joined
Mar 7, 2014
Messages
1,186
Reaction score
1,444
First Language
Portuguese
I'll both bump, as I need the very same thing, as well as give a clue to a potential solution within Yanfly's ATB:

The Charge Gauge has a formula.
upload_2019-11-14_5-6-57.png

I believe it would be possible to include a skill's AttackSpeed / ActionSpeed in the formula but I don't know if that formula is calculated individually for each battler (if not, then that means it's impossible) and I also don't know the reference to calculate that.

a.attackSpeed() returns merely the attack speed gained from equipment, not the speed field you setup in the skill database entry. If we could get that to be a multiplier for this, it would be aaaaaaaaawesome.
 

nathanlink169

Game Dev by Career, no idea what I'm doing
Veteran
Joined
Aug 15, 2013
Messages
72
Reaction score
32
First Language
English
Primarily Uses
RMMV
I'll both bump, as I need the very same thing, as well as give a clue to a potential solution within Yanfly's ATB:

The Charge Gauge has a formula.
View attachment 127328

I believe it would be possible to include a skill's AttackSpeed / ActionSpeed in the formula but I don't know if that formula is calculated individually for each battler (if not, then that means it's impossible) and I also don't know the reference to calculate that.

a.attackSpeed() returns merely the attack speed gained from equipment, not the speed field you setup in the skill database entry. If we could get that to be a multiplier for this, it would be aaaaaaaaawesome.
I didn't even think about that charge gauge! Let me look into this. I think my previous attempt may work if your assumption is correct.

EDIT: I believe I have gotten it working! The Charge Gauge formula was applied to all the battlers collectively, unfortunately. That being said, after taking another look, I realized that I wasn't removing the actors agility from the speed of the move (which is a thing I didn't realize was actually a thing...) - this script should be what you (and I) need!
 

Attachments

Last edited:

Nem122333221

Warper
Member
Joined
Nov 30, 2019
Messages
1
Reaction score
3
First Language
English
Primarily Uses
RMMV
I didn't even think about that charge gauge! Let me look into this. I think my previous attempt may work if your assumption is correct.

EDIT: I believe I have gotten it working! The Charge Gauge formula was applied to all the battlers collectively, unfortunately. That being said, after taking another look, I realized that I wasn't removing the actors agility from the speed of the move (which is a thing I didn't realize was actually a thing...) - this script should be what you (and I) need!
Hi Nathan,

Thanks for the script, this has allowed me to change how quickly skills charge!

The Plugin: Ability Modifer output adds to charge rate, not a flat number of charge ticks, which is not bad, but the math for balancing your abilities can actually get pretty challenging!

I'm basically posting to say thanks but also to warn others that the balancing of these skills is not straight forward.

Charge time is inversely proportional to speed of abilities now, for example in my game:
Speed of skill = 0.0 , Charge time of skill = 10 seconds
Speed of skill = 2.2 , Charge time of skill = 9 seconds
Speed of skill = 5.0 , Charge time of skill = 8 seconds
Speed of skill = 8.5 , Charge time of skill = 7 seconds
Speed of skill = 13 , Charge time of skill = 6 seconds
Speed of skill = 20 , Charge time of skill = 5 seconds
Speed of skill = 30 , Charge time of skill = 4 seconds
Speed of skill = 46 , Charge time of skill = 3 seconds
Speed of skill = 80 , Charge time of skill = 2 seconds
Speed of skill = 180 , Charge time of skill = 1 seconds
Speed of skill = 1980 , Charge time of skill = 0.1 seconds

I had to use a formula to figure out what the speed of skills should be, if anyone else wants this formula to determine skill speed, you can follow these steps:

1. Figure out what charge time of skill you want --> Lets say 3 seconds ~ 180 ticks in my game*
I am calling this Charge time of skill
*Note: I am skipping some steps here for

2. Go to Nathan's Plugin and choose a Ability Modifier, or just use the default, 5 * (this.currentAction().speed() - this.agi)
I'm calling that 5 in the Ability Modifier c in the formula

3. In Yanfly's Plug-in check what you have for Charge Gauge, you will need this in formula too.
4. In Yanfly's Plug-in check you Per Tick
(I think point 4 is right?? Hard to tell in my game because Per Tick is almost always 1 Tick = 1 speed, I kept it this way to make balancing easier)

Formula to determine what skill speed you need to make your skill charge for the time you want:
Skill Speed = { (Charge Gauge) / (Charge time of skill) - Per Tick } / (c)

So in my game for a standard actor with 100 Agi
and where I want a 3 second charge time on a move,
and I set the Nathan's Ability Modifier formula to 0.05 * (this.currentAction().speed() - this.agi)
and I set Charge Gauge to 600 ~ 10 secs in the Yanfly ATB Plugin

Skill Speed = { (600 ticks to charge gauge) / (180 ticks) - 60 ticks } / (0.05)
Skill Speed = { (10 seconds to charge gauge) / (3 seconds) - 1 second } / (0.05)
Skill Speed = (10/3 - 1)/0.05
Skill Speed = (3.33 -1) /0.05
Skill Speed = 46
So in my game, Skills with a speed of 46 typically take around 3 seconds depending on the characters Agility, which I usually try to keep close to 100.

Well... Hope this post might be helpful to someone struggling with implementing above Plug-in and balancing Skills. Not sure if I am making sense, because it is 2am here.
 

nathanlink169

Game Dev by Career, no idea what I'm doing
Veteran
Joined
Aug 15, 2013
Messages
72
Reaction score
32
First Language
English
Primarily Uses
RMMV
Hi Nathan,

Thanks for the script, this has allowed me to change how quickly skills charge!

The Plugin: Ability Modifer output adds to charge rate, not a flat number of charge ticks, which is not bad, but the math for balancing your abilities can actually get pretty challenging!

I'm basically posting to say thanks but also to warn others that the balancing of these skills is not straight forward.

Charge time is inversely proportional to speed of abilities now, for example in my game:
Speed of skill = 0.0 , Charge time of skill = 10 seconds
Speed of skill = 2.2 , Charge time of skill = 9 seconds
Speed of skill = 5.0 , Charge time of skill = 8 seconds
Speed of skill = 8.5 , Charge time of skill = 7 seconds
Speed of skill = 13 , Charge time of skill = 6 seconds
Speed of skill = 20 , Charge time of skill = 5 seconds
Speed of skill = 30 , Charge time of skill = 4 seconds
Speed of skill = 46 , Charge time of skill = 3 seconds
Speed of skill = 80 , Charge time of skill = 2 seconds
Speed of skill = 180 , Charge time of skill = 1 seconds
Speed of skill = 1980 , Charge time of skill = 0.1 seconds

I had to use a formula to figure out what the speed of skills should be, if anyone else wants this formula to determine skill speed, you can follow these steps:

1. Figure out what charge time of skill you want --> Lets say 3 seconds ~ 180 ticks in my game*
I am calling this Charge time of skill
*Note: I am skipping some steps here for

2. Go to Nathan's Plugin and choose a Ability Modifier, or just use the default, 5 * (this.currentAction().speed() - this.agi)
I'm calling that 5 in the Ability Modifier c in the formula

3. In Yanfly's Plug-in check what you have for Charge Gauge, you will need this in formula too.
4. In Yanfly's Plug-in check you Per Tick
(I think point 4 is right?? Hard to tell in my game because Per Tick is almost always 1 Tick = 1 speed, I kept it this way to make balancing easier)

Formula to determine what skill speed you need to make your skill charge for the time you want:
Skill Speed = { (Charge Gauge) / (Charge time of skill) - Per Tick } / (c)

So in my game for a standard actor with 100 Agi
and where I want a 3 second charge time on a move,
and I set the Nathan's Ability Modifier formula to 0.05 * (this.currentAction().speed() - this.agi)
and I set Charge Gauge to 600 ~ 10 secs in the Yanfly ATB Plugin

Skill Speed = { (600 ticks to charge gauge) / (180 ticks) - 60 ticks } / (0.05)
Skill Speed = { (10 seconds to charge gauge) / (3 seconds) - 1 second } / (0.05)
Skill Speed = (10/3 - 1)/0.05
Skill Speed = (3.33 -1) /0.05
Skill Speed = 46
So in my game, Skills with a speed of 46 typically take around 3 seconds depending on the characters Agility, which I usually try to keep close to 100.

Well... Hope this post might be helpful to someone struggling with implementing above Plug-in and balancing Skills. Not sure if I am making sense, because it is 2am here.
Hey Nem, thanks for doing the maths on that!

I’m still fairly a novice with JavaScript, so this definitely wasn’t implemented perfectly. I hope this helps others! (I’ll probably be also using this to help with my game!)
 

Users Who Are Viewing This Thread (Users: 0, Guests: 1)

Latest Threads

Latest Posts

Latest Profile Posts

Are we allowed to post about non-RPG Maker games? And, if so, would any of you be interested in a short, proof of concept type non-euclidian puzzle game?
I should realize that error was produced by a outdated version of MZ so that's why it pop up like that
Ami
i can't wait to drink some ice after struggling with my illness in 9 days. 9 days is really bad for me,i can't focus with my shop and even can't do something with my project
How many hours have you got in mz so far?

A bit of a "sparkle" update to the lower portion of the world map. :LZSexcite:

Forum statistics

Threads
105,883
Messages
1,017,232
Members
137,607
Latest member
Maddo
Top