Classical Active Time Battle

Last update: 27/1/2012 (DD/MM/YYYY)

Version: 1.07

Download here: Script


Check Instructions in Script.

To enable Classical Active Time Battle for your game, either change the DEFAULT_BATTLE_SYSTEM constant in Ace Battle Engine to :catb or make an script call during a game using:


To revert back to DTB mid-game, use the following script call:

Add notetag for skills and items:
<charge rate: x%> - Enable Casting Time with x% rate.

This script require YEA – Ace Battle Engine.

Update 2012.01.16: Add Casting Time feature!!! Lunatic mode will be added soon ~

Don't rush babe ~

 Tags: atb rgss3 ace rpg maker vx action time battle

133 comments on “Classical Active Time Battle

  1. Pingback: YEA – Active Chain Skills | Yanfly Channel

  2. I really like this add on, but i would like it to display “ATB” on the gauge. Also, if YF’s HP and MP gauges are smaller than usual, the ATB gauge displays above HP text. Could you make it so that the height and width of the atb gauge is changeable? And thanks for this script 😀

  3. I just noticed a bad bug which makes the game freeze. It occurs when the command box with Fight or Escape appears. It makes the whole battle freeze.

    • Oh, press Fight and battle will resume. I made this because someone will make something like Option command, etc…
      Maybe I will make an option to freeze or not 😀

      Edit: ah, it seem to be freeze when not use full atb…

  4. There is a error when I use after action turn system, it appears…After taking actions xD:
    Script ‘YSA – Classical ATB’ line 318: NameError ocurred.
    unitialized constant YSA::AFTER_ACTION_VARIABLE

  5. Nice script! This seems to work fine and smoothly. However, I do get this error upon victory:

    Script ‘YSA – Classical ATB’ line 749: NoMethodError ocurred.
    undefined method `item’ for nil:Class

    Not always, but most of the time it happens….

    • Well, I re-scripted. I can Battle Test, but when I try to test my game through a New Game, it sometimes gives me a script error at line 749. I can win battles now and not have it crash, but like I said, it still randomly crashes during battle. Any ideas?

  6. Update 2012.01.19:
    – Fix a small bug with Action’s Icon Updating.
    – Fix a critical bug with target selecting.
    – Fix a bug with states updating.
    – Fix a small bug with actor’s status when choosing skill/item.
    – Fix a critical bug with auto battle.

  7. Heya, this script is coming along very nicely I must say. I am still tossing up between yours and Fomars, they both have great functions ^^ I’ll have to wait until they are both finished I guess.

    I have just two suggestions: Fomar’s has a great function where you can adjust the stamina cost of skills if you wish. Really great for quick hits. The other is the ability to shrink the height of the player’s ATB gauge. I personally think it’d look better as a thin line.

    Anyway, lookin’ sharp!

  8. Pingback: A show about ACE fusion! « Ramiro + RMVXA = ♥

  9. Hi there. I’m enjoying your script. A bug I noticed with Yanfly combat log: when selected the combat log messes with the status menus.

    Another: When auto (Yanfly) attack is selected the UI disappears and I’m unable to get it back, OR sometimes the HUD stays but i can’t cancel and my actors don’t attack.
    Question: Is there a way to set the minimum ATB charge rate? My mage with low AGI hardly ever gets to attack, same with some enemies.

  10. Update 2012.01.26:
    – Fix a bug with status window.
    – Fix a bug with party command window.
    – Compatible with Yanfly Engine Ace – Combat Log.

    @Stratigamo: About Autobattle, I will check it later. And about ATB rate, you have to balance yourself. I will make the minimum rate later but you will have to know this ATB’s mechanic:

    I make a mechanic called dynamic speed. A battler have a base speed (ATB rate) is (100000.0 / DEFAULT_FILL_TIME). When start a battle, each battler will have a real speed (real ATB rate in that battle) is BASE_SPEED * (battler.agi / average_agi). Which average_agi is the average agility of all battlers.
    I made this mechanic with the same purpose as the dynamic threshold of Yanfly, so the battle won’t be fast in late game, or a battler can have an action after only 1-2 frames (1/60 – 1/30 seconds).

  11. Ahh I see, thank you Yami.

    Does real speed update only at the start of the battle or continuously? I ask because I can give my mage a skill called wind armor that increases AGI by 175% to help cope with this.

    • Average agi will only update at the start of battle. And the real speed will be updated continuously, which mean if your mage have a 175% AGI buff, he will get action faster (175%, of course). You can use with Lunatic CATB Rate 🙂

  12. I noticed something weird since I updated the CATB script. There seem to be something strange when the battle ends, since i have the YF’s victory aftermath.
    Practically, when the actor’s quotes switch you can see the actor’s status window between one quote and the other. But this also happens, for example, if i set up a message window to show up in the troops event page. Between one message window and the other you will see the status window displayed, even just for a moment. Which is not exactly good looking.
    Is there a way to fix that?

  13. 2012.01.30
    – Fix various things with force actions.
    – Disable Additional Action.
    – Compatible with: YEA – Active Chain Skills.
    – Fix various visual things.

  14. Hey Yami, I just got your newest version today, and my ATB bar wont move for my actor’s, why is this? It moves for the enemies but not for my actor’s?? I really like this script, you did a very good job, but can you please help me resolve this issue.
    Thanks Ragna 😀

  15. There is a bug where if you use a Instant skill from Yanfly’s Instant Cast wile a enemy’s attack animation is still going on then after the instant skill plays it cause the game to crash with the error
    ” Scipt ‘Scene_Battle ‘ line 599: No MethodError occurred
    undefined method ‘ last_target_index= ‘ for nil:NILClass”

  16. Hey Yami,

    I have a situation: I am using YF’s Follow-Up Skills script and want to make some where if you land the first hit, you get the follow-up skill to trigger, but still have to wait for its charge time (<-That being the important part). Is there anyway to do this? I have been trying for a while now and can't seem to get it. It doesn't work with force actions either.

  17. Pingback: Avances « Imagina y Programa

  18. Pingback: Yokonet » Avances

  19. Oops dont copy that “Catched” part and for the first one you need
    …%20Database.rar in the link.

  20. Thanks for the great script! There’s only one problem I’m having with it… well, two technically, but they are related.

    One concerns switching between multiple ready actors. When multiple actors have full ATB bars, you can of course move between them and have them act in whatever order you want, but hitting the right arrow key doesn’t always go to the next actor on the right. Instead it jumps around; initially I thought it might be going in order of who’s turn was ready first, but I’m not 100% sure it always does that.

    The other is the fact that, regardless of WHO the cursor is on, hitting the left arrow key doesn’t switch actors at all, but takes you back to the battle window (“Fight/Escape”).

    I’m not sure if these are necessarily “bugs” exactly, as opposed to how the scripts was designed, but I’d prefer them changed if it’s possible to do so (or if there is something I missed in the instructions that can be configured to do so), so that hitting the left and right arrow keys simply moves between any actors whose turns are ready. Thanks for your time!

  21. hi yami,
    why i just press auto battle and it shows

    game_actor line 550 no method error
    undefined method ‘evaluate’ for false:falseclass

  22. I have a problem with this script.
    When I’m useing $game_system:set_catb_wait_type(:full) to change the ATB in the game I get an error.

  23. Is there a little secret to activate battle events?
    A little explain:

    Monster is waiting 2 turns
    After this 2 turns the monster should use a skill

    But the monster is still waiting…

  24. Hi Yami! 🙂

    First of all – thanks for doing so much hard work on this script – it’s really great!

    Slight glitch with your script, though – if I use it with YEA and Victor’s Animated battles, Force actions from the troops tab do not process. Hope you can fix it 🙂

    • I should note – you made a patch in regards to force actions (I think yanfly added it to the core scripts), but this doesn’t fix the problem, unfortunately 😦

      Really hope you can fix it – ATB is unusuable otherwise =(

  25. This is without doubt utmost excellent — however, one bug occurs that crashes my game and a minor bug that is just a bit bothersome.

    Situation is as follows:
    My game uses a summoning system, á la Final Fantasy. When a summoning skill is used, it is set up with “none” as the area of effect, meant to run just a Common Event that takes care of summon animation and stuff. With CATB, the skill is never executed as long as the area of effect is “none.” Not game breaking but a bit bothersome, as said.

    The game breaking bit comes here: The summonings work by forcing a character outside of the actual party (the summon as such) to perform the summon’s ability; with CATB on, however, the game crashes with the following error log:

    *Error – 2012-03-30 18:08:18 (Friday)
    Exception : TypeError
    no implicit conversion from nil to integer
    [“( Classical ATB ):710:in `[]'”, “( Classical ATB ):710:in `draw_item'”, “( Yanfly Battle Engine ):3137:in `status_redraw_target'”, “( Yanfly Battle Engine ):3082:in `use_item'”, “( Yanfly Battle Engine ):2990:in `execute_action'”, “( Classical ATB ):1055:in `perform_catb_action'”, “( Classical ATB ):960:in `process_action'”, “( Yanfly Core Engine ):956:in `process_forced_action'”, “( Scene_Battle ):519:in `process_event'”, “( Classical ATB ):1057:in `perform_catb_action'”, “( Classical ATB ):1039:in `block in process_catb'”, “( Classical ATB ):1037:in `each'”, “( Classical ATB ):1037:in `process_catb'”, “( Classical ATB ):959:in `process_action'”, “( Scene_Battle ):48:in `update'”, “( Scene_Base ):14:in `main'”, “( Skip Title Screen ):24:in `run'”, “( ExitEX ):121:in `run'”, “( ExitEX ):130:in `block in ‘”, “:1:in `block in rgss_main'”, “:1:in `loop'”, “:1:in `rgss_main'”, “( ExitEX ):130:in `'”, “ruby:in `eval'”]

    Any clue what’s up with this? o.o;

    Amazing work, nonetheless. (:

  26. Do you know how to fix this error?

    Script ‘YSA Battle System Classical ATB’ line 165: SyntaxError occurred.

    unexpected ‘(‘, expecting keyword_end
    CHARGE_RATE = (CHARGE_RATEcharge rate)[ ](d +)([%%])i

    If you need more details tell me.

  27. Hi,

    I don’t know why but since I installed your ATB script Yanfly automtic battle doesn’t work anymore. I still can choose autobattle but it’s like I choose to fight, I mean the game will put the game actor command instead of launching the autobattle.

    Sorry for my bad english.

  28. There was a bug, when you selected in wait type, and you choose command guard. But You can only guard for a few second, not until your atb gauge is full again, this can be helped by raising frame in DEFAULT_FILL_TIME, but that don’t help so much. It’s still buggy when you look your character guard but not until your ATB gauge full. Its so wasting guard command in the entire game, if i use this script, maybe i should delete the guard command for player comfort.

    There are bug when you use DEFAULT_TURN = thick, when you choose guard command, you are still in guard mode even your character in the next turn, attack the monster and you still in guard stance, receive less damage from the enemy.
    I think you can resolve about guard command in this script.
    Or maybe I’m doing something wrong with compatibility?
    I just use YAE and VE animated battler, of course with patch.

  29. Hey guys! I love your work, I always wanted a ATB for my little game, and it looks great! But i have a strange Problem! I can test the battles in battletest mode, but when i start a test game and run to that battle i get an error called:

    Script ‘ATB script’ line 571: NoMethodError occurred
    undefined method `/’ for nil:NilClass

    Can you please help me out?! Its too good to be not used! And I’m not a scriptor like you^^


    • This is a rather late reply, but if you’re still interested in how to fix this problem, try deleting your save file. If the save file was created before you added the script, then this error will occur.

  30. Hey Yami. I tried using this along with Victor’s Animated Battle and shenanigans happened. After the first attack is executed, either by an actor or an enemy, gauges continue to fill until they’re full, but no actions are executed. Any ideas?

  31. I’m sorry to complain, but I am using multiple Yanfly Scripts. But when I create event battles and common events in battles, I continuously get “Line 710: TypeError occurred. no implicit conversion from nil to integer.”

    This specifically happens when Party Members are removed and/or inserted into battle.

  32. Hi, just wanted to report a bug, when using the “Guard” command in battle, when “:dtb” system is being used, the game crashes with the following error.

    Script ‘Yami ATB’ line 1154: NoMethodError Occured. undefined method ‘index’ for nil:NilClass.

    Would be great if you fix this, thanks! (I’ve tested it with just Ace Battle Engine and your ATB, still happens.)

    • Yeah, I’m getting the same error too. It happens in the FTB as well. As long as this ATB system is there, an error happens whenever the guard command is being used in the DTB or FTB. Would be really great if this was fixed.

  33. Hello Yanfly, I’d like to make it so when you are on the Fight or Escape window the enemies ATB gauges do not fill. But I want this to be independent on what I have set for DEFAULT_WAIT Could you tell me how to do this?

  34. Hey there! I have really been enjoying using this script, and the lunatic addons, but I get a really annoying crash.

    Basically, if I have selected attack from the options, and then my character dies before I have confirmed the target of the attack, then on confirming the target, I will get the error

    Script ‘ATB’ line 1177:NoMethodError occurred.

    undefined method ‘input’ for nil:NilClass

    This same error also seems to happen if my character is confused, or other similar effects.

    Any information on how to fix this would be greatly appreciated. Thank you 🙂

  35. I’ve found a solution concerning the duration of the guard! Set the duration of the state related to the Guard action to two turns in the status data base 😉

  36. Hey Yami,
    I’ve found an incompatibility issue with Yanfly’s Buff and State Manager;
    I get the following error after selecting any command of any actor:

    Script ‘>Yami Classical ATB’ line 595: NoMethodError occurred.
    undefined method ‘>’ for nil:NilClass

    Is there any way this can be fixed?

    Thanks and good day(:

    • Sorry, just noticed an additional detail:

      The error only seems to occur when I set the state reapplying rule to ignore reapplications of the same state – exactly what I need the script for ><

  37. REALLY NICE! LOVE IT! but i have a question is it possible to change the placing of the Atb Guadge such as id like it where the characters name is instead can i move it and how?

  38. Hi Yami, thx for nice script!!
    I have a few questions. I’m using this script with another few scripts from yanfly’s. Well, I use Yanfly’s Combat Log and Skill Restrictions.
    There’s a problem during turn count. When I battle enemies and I look to the combat log, there are no Turn Number texts, is there anyway to make these text appear?
    Another problem is also about turn, is when cooling down/warming up skills using Skill Restrictions script. Because I don’t really know how many turns has passed, I don’t know whether it actually works according to the turn they need or not. Well, warmup skills may be did a good job, but cooldown is the problem. I set a skill to cool down for a turn, and I thought maybe a turn has passed but the skill hasn’t cool down yet.
    Thx, maybe you can help, sry for my bad english.
    PS: btw, I use Action turn config, and I set it to 4 actions.

  39. Um I found two bugs.
    1) When I cast/use a skill. The animation on the enemy or target appears twice. and the second is that when the enemy uses attack, it does not appear. So it would be nice if you could show me what’s going on or how I can fix it.

  40. Hello, Yami ^^ I have a doubt/ask. Is there any way to.. skip the actor’s turn? You know, like Final Fantasy IX. If we press O the turn is given to the next character. If the other characters’ ATB are not full, then nothing happens. I really liked that battle system xD So, can I do something like that? Pressing A or S, maybe…
    gbye :3

  41. Pingback: Avances « Imagina y Programa

  42. I have a specific question about state.
    When my character get a “confusion” state, I can still enter the command
    input.(Like pokemon in GBA)
    Can I change it so that when a character get confusion, I can’t input any command
    and my confused character automatically attack something.

  43. Great script, Yami.

    I have a question: how do we code this so that magic spells have their cast time based on their MAT stat instead of the AGI stat, but still have non-magic skills base their cast time on the AGI stat?

  44. I found problem with your script…
    I set multiple action chance (for example, a weapon with 5% allow multiple hit), but with atb active it never gives multiple hit chance.
    Is there any way to solve this? Anyone else with this problem?

    Anyway, I love all your scripts Yami 😉

  45. Does anybody know how to randomize the ATB bars at the start of battles? As is, everyone always starts at the same percentage full. It would be nice if every now and then someone else got the first turn lol

  46. Hello Yami. great script, it’s just what I was looking for!
    but I have a problem:

    When the enemies are dead and is about to finish a battle, if you press the attack command (or any other aimed at an enemy) when trying to select a target I find the following error:

    Script “line 2226: NoMethodError ocurred.
    undefined method `sprite_effect_type = ‘for nil: NilClass

    Someone could help me? Thank you very much.
    Excuse my bad English, not my native language 🙂

  47. I saw that you fixed something with the Force Action events, but I still have an issue… When the force actions are finished, it kinda freezes and I can’t attack with my actors, the enemy still attacks though.

    • As far as I have figured out, I think it is due to the texts displayed before the the Force actions and not because of the Force actions.
      So: When I have texts displayed during the battle the player cannot select any actions (they don’t even appear) and the enemies are still attacking.

  48. Is there a way to make it so there is NO wait at all, so monsters and players can attack simultaneously unless they are attacking each other?

    Would this be a feature you would be able to add? I have played with the settings and can not get things to happen simultaneously.

  49. Hello, Yami! You’re scripts have to be some of my favorite, very well done. Just one small question, I hope doesn’t bother you.

    Is there a way to make the ATB constant across the board? As in I can set the actors and enemies to move every, say, 3 seconds (without a Haste type modifier) and can I do this without messing with the agility stat? I seem to be having some trouble. The other ATB systems have a few compatibility issues I just can’t iron out.

    Thanks for your time! I appreciate the help or input.

  50. I have a problem….First I will list the scripts I’m using.
    YEA- Ace Core
    YEA- Ace Menu
    YEA- Ace Battle
    YES- Battle Symphony
    YES- Add on: Holder Battlers
    YSA- Classical Active Time Battle
    YEA- Party System
    YEA- Enemy HP Bars
    modern algebra Quest menu

    For my story I use five party members. I’m testing it out and when i defend with
    the fifth Character this pops up…

    Script ‘ YSA Battle System: Classical ATB’ line 1154: NoMethodError Occurred.

    undefined method ‘index’ for nil:NilClass

    I could use some assistance…please.

  51. Ok so I have the Ace Battle Engine with this and the Enu Sideview System as well. I added this ATB system to make the battling more interesting for my game. But there is a problem.

    The ATB gauge charges up like normal and they land a first attack. But after that first attack, I cannot do another action. The enemies charge and attack just fine but
    my actors would sit there doing nothing while the gauge is stuck at full.

    How do I fix this? It stays stuck at full gauge and I cannot do anything.

  52. Yami, creates an ATB ​​that does not rely on YanFly Ace Battle Engine. I do not like this system. = /

  53. Is this updated/supported? What is Lunatic Mode? A while ago I had asked and not gotten reply: Is there a way to make it so there is NO wait at all, so monsters and players can attack simultaneously unless they are attacking each other?

    Would this be a feature you would be able to add? I have played with the settings and can not get things to happen simultaneously. I would like each character to have to wait for their own gauge to complete and then be able to attack, and then certain attacks take time to charge up

  54. Using this script with Yanfly’s Command Party script causes a couple of issues.
    If I swap party members, the following error occurs when the new party memeber’s turn comes:
    Script ‘BattleManager’ line 114: NoMethodError occured

    undefined method ‘>=’ for nil:NilClass

    If I remove a party member, this error occurs when the now-empty party members turn comes:
    Script ‘YSA – ATB System’ line 710: TypeError occured

    no implicit conversion from nil to integer

  55. script ‘MOG_ATB’ line 1092:NoMethodError occurred.
    undefined method `{}’ for nil:NilClass

    I have no idea what to do. please help!!

  56. i got the error yanfly atbsystem LINE 361 :NoMethodError ocurred.
    undefined method ‘delete’ for nil:NilClass can someone help please.

    • I think I remember finding the script in an archive or something, but I don’t remember where it is. Since the creator doesn’t seem to care much about this script anymore, I decided to upload it to Pastebin:

      No modifications have been made to the script, although some of the settings in the script have been changed. There should be a separate compatibility fix script for this, although it shouldn’t be as difficult to find.

  57. I’m having an error on line 49, a syntax error to be exact, target of repeat operator is not specified/*:
    *@plugindesc v1.24 (Requires YEP_BattleEngineCore.js) Add ATB

    Can anyone tell me how to fix this, please?

    • Are you attempting to initiate a battle while playing from a save file? Any save files made before the script was added will not be compatible; you need to start a new game.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s