Diving into the Depths of Battle Cats
4 September 2025
The Hidden Timing
The Battle Cats has been around for over a decade, yet the developers have never released official character statistics. All numerical data circulating today is the result of community research and in-game testing. However, few have questioned the accuracy of these long-standing numbers, terms, and conventions. Even those who provide the data have rarely given rigorous explanations or definitions that faithfully match the game’s actual mechanics.
While such numerical discrepancies do not significantly impact casual gameplay, they become problematic for those who seek a deeper understanding of the game. For them, vague or inconsistent terminology makes it impossible to give precise explanations. Thus, I will attempt to provide a clear guide and framework that resolves these inconsistencies. This is a challenging task, since I must ensure that the definitions are both logically sound and faithful to in-game behavior, requiring a holistic view of The Battle Cats’ mechanics.
What Is a Frame (F)?
The Battle Cats runs at 30 FPS, with each frame (1F) corresponding to 1/30 of a second. We define 1F as the duration of a single frame. It is important to note that, unlike continuous physical time, frames are discrete units whose counting inherently represents both a temporal length and a point in time (i.e., each 1F is a discrete duration on the timeline and simultaneously a specific moment). In contrast, seconds are generally treated as a continuous measure of duration, while when referred to as points in time, they are described as temporal instants. This particular nature of frames will influence the conceptual understanding of FSwing and BSwing discussed later. In short, a "frame" is the smallest unit of in-game logic, whereas a "second" is merely an abstract measure of continuous time.
Terminology and Definitions
From the animation design view
- 0F, 1F, 2F, 3F, ... nF,... 攻発生(1st atk): 1st attack occurs at this frame, i.e., attack judgment frame index
攻発生2nd(2nd atk): 2nd attack occurs at this frame, i.e., 2nd attack judgment frame index
攻発生nth(nth atk): the nth attack frame index = nF
攻撃頻度(Atk Freq): total atk animation frames
From the official code view
- FSwing
- the number of frames before an attack (excluding the attack judgment frame).
- BSwing
- the number of frames after FSwing, including the attack judgment frame itself.
- WSwing
- the number of frames after FSwing, including the attack judgment frame itself; it controls the total Standby animation frames to display. If WSwing is greater than BSwing by more than 1, the Normal Standby time is shown(Standby animation).
- wait
- the time between animations = 1F (Displayed with the Standby animation).
- Normal Standby Time
- $$ \text{t} = \begin{cases} WSwing - BSwing - 1 & \text{if } WS > BS+1 \\ 0 & \text{otherwise} \end{cases} $$
- Wait
- the time the Standby animation is shown when no KB occurs = Normal Standby time + wait
- 実攻撃頻度(Real Atk Freq)
- the attack index of the 2nd attack animation − the attack index of the 1st attack animation = 2nd 攻発生 - 1st 攻発生 = 2nd FSwing - 1st FSwing
Note: 攻発生 ≠ FSwing. 攻発生 is not a "time length"; it indicates which frame the attack occurs on.
Example: No.71-3 飛翔の武神・真田幸村
-
攻発生 = 1F
攻発生2nd = 8F
攻撃頻度(Atk Freq) = 137F
実攻撃頻度(Real Atk Freq) = 137F
FSwing = 8F (Not shown in JDB)
BSwing = 129F
WSwing = 0F
wait = 1F (Not shown in JDB)
Normal Standby time = 0F (Not shown in JDB)
Wait = 1F
No.47-3 マキシマムファイター
-
攻発生 = 16F
攻撃頻度(Atk Freq) = 25F
実攻撃頻度(Real Atk Freq) = 25F
FSwing = 16F (Not shown in JDB)
BSwing = 9F
WSwing = 10F
wait = 1F (Not shown in JDB)
Normal Standby time = 0F (Not shown in JDB)
Wait = 1F
The TBA Problem
The community has long used the term TBA (Time Between Attacks). For 飛翔の武神・真田幸村 , databases show TBA = 0F. But in fact:
TBA = Real Attack Frequency = 137F (or alternatively, TBA = 130F if measured as the time between the previous attack landing and the next attack animation start)
This indicates that TBA is only meaningful when TBA > BSwing. When TBA < BSwing, the definition becomes inconsistent, leading to contradictions. Therefore, I propose adopting the term WSwing instead, which more accurately reflects the intended measurement.
Why Define FSwing This Way?
Let us explain why FSwing is defined this way. Pre-attack Animation (FSwing) represents the number of frames before the attack judgment frame, excluding the attack frame itself. This definition is grounded in a concrete game mechanic observable in The Battle Cats. Careful gameplay reveals that a unit may react differently when knocked back (KB) at different phases of its attack animation:
- If a unit is knocked back during FSwing → the attack sequence restarts.
- If a unit is knocked back during BSwing → the attack animation is canceled and the unit transitions to the Wait animation.
- If a unit is knocked back exactly on the attack judgment frame → it is counted as BSwing, and the unit transitions to Wait rather than restarting the attack.
Some may ask: “Doesn’t No.71-3 飛翔の武神・真田幸村 immediately re-attack if knocked back on the attack frame?” Remember, even in that case there is a hidden 1F delay before the unit begins the next attack. This 1F is extremely short, so it often goes unnoticed. Furthermore, the game designers deliberately rendered this 1F as visually identical to the first frame of the attack animation and display the animation starting from the second frame, ensuring a seamless visual experience. As a result, the attack judgment frame retains the unique properties of BSwing. Defining FSwing in this manner allows us to accurately describe the underlying mechanics of The Battle Cats without ambiguity.
Conclusion
These findings are based on years of observation and in-game testing. While they may not affect casual play, consistent and accurate terminology is essential for researchers, database maintainers, and players who wish to fully understand the mechanics of The Battle Cats.
Feel free to cite this work — I hope it serves as a foundation for more accurate and consistent representations of the game’s underlying mechanics.