Conditional Turn Battle


Plugin Download


This plugin changes the turn management of battles. The default turn based system is replaced by an individual turns system, where each battler executes their actions right after selecting them. The turn order is based on each battler speed and the speed of the actions used.


Requires the Victor Engine – Basic Module

Learn how to Install Victor Engine Plugins


Was this useful for you? Consider lending a hand by becoming my patron at Patreon, so I can continue creating content to help you and many other developers.


  1. This looks great!

    Glad to see you back and working on this.

    I also see you fixed the gameover crash that used to happen with your battle motions script!!

    I’m back on full cylinders working on my game, and this CTB seems like an interesting thing to mess with.

    Like

  2. Zacchary Sumrall

    Is there anyway I can use this with yanfly plugins? Or is it one or thee other? :/

    Like

  3. First and foremost I want to thank you. Looks amazing, I’m definitely using this.

    I’m sure you are aware of this issue: The CTB turn order display does not hide when you are selecting items or skills… this causes it to appear over the skill/item list or over the help description area depending where the user places it.

    Like

  4. Hey Victor, as you requested on Twitter, I have a couple bugs to report.

    #1: Occasionally when an actor’s turn comes in battle, the CTB menu will not show their icon when it is their turn. See the following picture: http://imgur.com/oMyw2qN It is the purple knight’s turn, but his icon is missing from the gauge.

    #2: The example commands given for cast delay do not work and return the following error when pasted in: http://imgur.com/hfLhnYX Any other combination of numbers/settings don’t seem to make a difference for delaying spells/skills either.

    Thanks again for this plugin, in my opinion it is the best battle system a turn based RPG can have, and the lengths you went to create it are very much appreciated! Hopefully these bugs are not too troublesome to hunt down (or even better, that I’m doing something incorrect and just need to be pointed in the right direction).

    Like

    • I have a third bug to report. I have a troop set to increase a variable when a rat’s HP = 0 like this: http://imgur.com/RwDQ3fG This successfully works using a standard battle system, but something in the CTB is causing it not to be recognized when the monster dies, and the variable count does not increase. I’ve also tried it using a conditional branch to check for the state “dead” to be on a monster, but it does not work either.

      Like

    • Disregard bug #2. The example text says int, but that simply needed to be changed to mat!

      Like

    • As an aside: Is there any way to give enemies that are charging a spell some sort of visual indicator or announcement that they are doing so? Currently, it just becomes their turn, then they appear in the CTB gauge with whatever casting icon you have chosen, but there’s no visual indicator on the battler that they are busy charging an attack.

      Like

      • For non-animated enemies there is no indicator available by default.

        A possible alternative for that using the Passive States plugin is to add a Passive State on all enemies with the condition of it being active only while chanting.

        <custom passive state: X>
        result = this.isCasting();
        </custom passive state>

        Where X is the state ID, you will need to add this to all enemies.

        I might add something for that on future updates.

        Liked by 1 person

  5. Thanks for the solution using the other script about the passive states. I’ll give that a shot!

    Were you able to reproduce the CTB gauge not updating properly?

    Like

  6. So I tried the passive state script, and while functional, it is not very polished.

    Is there a way to get the skill name that is charging to display before it starts charging?

    Like

  7. First of all thanks so much for making this plugin, it’s a huge help to my game.
    I have an issue to report (not sure if it’s a but or I just don’t know how to set it up)
    When I chose a battler to Guard, the battler guards and then it immediately becomes their turn again, and this can go on forever with the character guarding again and again without any other battler or enemy to act (which defeats the point of guarding)
    How can i correct this?

    Like

    • Check the guard skill setup on the database. By default guard has a very high speed setup (2000 if i’m not mistaken) wich makes the action too fast. Also you will need to change the guard state auto-removal timing to ‘Action End’ since the turn count behaves differently.

      Like

      • Thank you!
        I was able to figure out the speed thing after re-reading carefully the instructions, but I didn’t know about the Action End timing.
        It works perfectly now, thank you!
        (Now if by some magic I could make coop skills work with it, it would be glorious, but I assume it is not possible with ctb)
        Again, thanks for the help and for all the work you put into these plugins!

        Like

  8. Is a vertical CTB bar possible. It’s mentioned in a param in the JS and in the help file but not in the actual settings.

    Like

    • There is not an option “vertical bar”.

      You can acheive a vertical bar by chaing the distance between the icons. By default the value is 32, 0 (32 horizontal, 0 vertical) if you make the horizontal 0 and the vertical higher than 0, the icons will be shown in a vertical order. You will also need to change the window dimensions.

      Like

  9. Hello Victor,
    I think I found a “bug” ._.

    it’s with your notetag tag. I figured out that if I set the sucess rate low, it’s more likely that it will delay the target than with a high number. Even 100% prevents the possibility of a delay.
    It’s due to using Math.random() as check. I mean if I have a 100% chance and no delay resist is set at the enemy, it’s default resist-rate is at 100%.
    So now you’re multiplying 1 with 1 and with Math.random() delivering always a number smaller than 1 (as you already know) it will always fail. Maybe setting the default resist rate of enemies to 0 would be a better choice ^^”

    Like

  10. Hey Victor ! If I want to use 64×64 or 128×128 sizes for icons , do I have to resize the iconset or just the icons on the same IconSet size ? I mean for actors and enemies.
    I figured out that icon size option is for background icon and not for actors and enemies icons. This is something I did with yanfly script , I know this is a zoom out but it worked that way.
    I’m doing a game with a resolutiuon of 1920×1080 so 32×32 icons are way too small . Any ideas ?

    Like

Leave a comment