• Welcome to Smashboards, the world's largest Super Smash Brothers community! Over 250,000 Smash Bros. fans from around the world have come to discuss these great games in over 19 million posts!

    You are currently viewing our boards as a visitor. Click here to sign up right now and start on your path in the Smash community!

Formulas.

KayLo!

Smarter than your average wabbit.
Joined
Dec 9, 2008
Messages
15,480
Location
Philadelphia, PA
3DS FC
3497-1590-7447
I've had three people ask me for my list of formulas, so I'm just gonna post what I have here. Most of these are from Veril's thread, but I guess having everything in one spot is good.

I'll update this as I come across new ones!

Most were copypasted from their sources, but lemme know if any are incorrect.


Shield Health

Full shield = 177 frames
1% damage = -2.5 frames shield health
Note: Some moves (ex: Marth's neutral B) have shield damage multipliers.

Grab Duration

Frames Held = 90 + (1.7 * Damage) - (8 * Inputs)
Note: Frames Held is the number of frames the victim stays in the grab.
Note 2: Damage is the percentage of the victim. Inputs is the number of inputs the victim performs; a c-stick input counts as two.

Weight-Dependent Throws

Animation progression speed multiplier is 100/Weight Modifier; therefore,
Adjusted Frame of Action = Normal Frame of Action * Weight Modifier/100, then round up to next frame

Damage-Based Stuff (Stun/Hitlag/Etc.)

Damage = Base Damage * Staleness Multiplier * Charge Multiplier * Aura Multiplier * Fatigue Multiplier
Note: Damage is read to the hundredths place.[COLLAPSE="Staleness Multiplier Formula"]
3.2 Stale Move Multiplier

The formula for the stale move multiplier is



This is explained below, including the definition of s.

In training mode, stale moves are not in play, so the value of this multiplier is exactly1. If the move is not affected by stale move decay, then the value of this multiplier is 1 even in versus mode. The following moves are not affected by stale move decay: Luigi's down taunt; DK's cargo throws; tether attacks; Zero Suit Samus's neutral air.

In versus mode, for moves affected by stale move decay, this factor is never 1. If a move is not in the stale move queue before being used, the value of this multiplier is exactly 1.05.

In versus mode, for moves affected by stale move decay, a move is placed in the stale move queue after it is used. The stale move queue contains nine entries, and each entry has a numerical weighting as depicted in the following diagram.



The left of the diagram represents the most recent move to be added to the queue, and the far right represents the oldest move to the added to the queue. Then we have

stale multiplier = 1 – s

where s is the sum of the values of the positions in the queue occupied by the move being used. For example, if the move being used occupies the .1 position, the .06 position, and the .03 position, then the stale multiplier is 1 - (0.1 + 0.06 + 0.03) = 0.81.
The following is a table containing all possible stale move combinations. There are 9 slots in the queue, totalling 512 possible combinations. 1 means the move occupies the slot, 0 means it does not. Slots to the left are the more recently performed moves.

[/COLLAPSE][COLLAPSE=Charge Multiplier Formula]
3.3 Charge Multiplier

This is the formula for the charge multiplier



For partially charged smash attacks, the value will be somewhere between 1 and 1.4, but we were unable to determine the exact distribution experimentally; it is too difficult to test. However, we speculate that it follows the same distribution as the aura damage multiplier. We speculate that if you charge the smash 1/n of the way, the multiplier is the same as the aura damage multiplier for (170-75)/n+75 %.
[/COLLAPSE][COLLAPSE=Aura Multiplier Formula]
3.4 Aura Multiplier

This is the formula for the aura multiplier:



where



In coin mode, each coin counts as a stock for the purpose of the stock multiplier.

The damage multiplier is in the interval [0.7, 1.4]. It is 0.7 for all damages <= 20% and 1.4 for all damages >= 170%. It is exactly 1 only when the damage is 75%. A very good approximation for the damage multiplier can be found by reading the value from this chart:



For example, the damage multiplier for 95% is 1.09.

This chart was created by using quintic interpolation between some exact values that we worked out.
[/COLLAPSE][COLLAPSE=Fatigue Multiplier Formula]
3.5 Fatigue Multiplier

Not everything is known about this multiplier. However, it is 1 if the character is not a pokemon trainer pokemon. Otherwise, it is in the interval [0.7, 1] where 1 is fully unfatigued and 0.7 is fully fatigued. There is in fact a spectrum of fatigue levels and the multiplier can take on various values in between 0.7 and 1. The multiplier cannot take on every value in this interval, however. When the pokemon shows no signs of fatigue, the multiplier is 1.
[/COLLAPSE]Hitlag = Floor[(Damage/2.6 + 5) * HLM * E]
Note: If move is normal, E = 1; if move is electric, E = 1.5; other elements unknown
Note 2: Hitlag starts on the first frame of the hit.


Shield Stun = Damage/3
Note: If tenths place of result is 7 or less, round down. If tenths place of result is 8 or above, round up.

Shield Hitlag = Floor[(Damage/2.6 + 5)]

Shield Advantage = Hit Frame - End Frame + Shield Stun + Shield Hitlag - Hitlag

Victim Escape Frame on Block = Hit Frame + Shield Hitlag + Shield Stun

BKB-Induced Hitstun = BKB * .4

Stuff That's Too **** Complicated, So I'm Linking to It Instead

Hitbubble size & distance, some disjoint stuff: http://www.smashboards.com/showthread.php?t=284389

Hope this helps!
 

thexsunrosered

Smash Lord
Joined
Apr 30, 2008
Messages
1,061
Location
Dover, Delaware
Under the stale move formula I think you should add how the modifier works. I'll try and write it out so you can just quote me instead of writing it :)

[collapse="Staleness Modifier Formula"]For staleness modifier, you need to understand how staleness works. When an attack is used, it enters a staleness queue that extends nine entries excluding fresh (obviously because the move hasn't been used). These values are to the hundreds place, with the most recent move being added on the left (after being fresh) at .1 and working its way down through .09, .08,.07, etc. until .02, which is the ninth entry. To factor in the role of the staleness queue into the Damage formula you must take

Dmg = BaseDmg x (1-s)

where s is the SUM OF THE POSITIONS IN THE QUEUE. For example, if sheik ftilts and the move occupies the .1, .08, .05, and .03 positions, to find the damage you would do this

Dmg = 9 x (1-[.1+.08+.05+.03]) = 9 x (1-.26) = 9 x . 74 = 6.66


that base damage was just thrown out there btw, it's not the actual amount ftilt does.
[/collapse]

You could probably collapse it under the section to keep it neat and ****.

Edit : nvm I did it for you :)
 

KayLo!

Smarter than your average wabbit.
Joined
Dec 9, 2008
Messages
15,480
Location
Philadelphia, PA
3DS FC
3497-1590-7447
Thanks Sun, I'll add that.

EDIT: Done!

& rPSI, if you're gonna edit the OP, could you post and say what you're changing (or leave it in the edit note)? It can be confusing to go in to edit and see stuff changed that I didn't do. Thanks.
 

T-block

B2B TST
Joined
Jan 11, 2009
Messages
11,841
Location
Edmonton, AB, Canada
Does Marth's shieldbreaker have an actual multiplier or a constant addition?

Grab duration formula:
Code:
frames_held = (90 + 1.7*damage - 8*inputs)
      frames_held is the number of frames the victim stays in the grab
      damage is the percentage of the victim
      inputs is the number of inputs the victim presses; a c-stick input counts as two
 

KayLo!

Smarter than your average wabbit.
Joined
Dec 9, 2008
Messages
15,480
Location
Philadelphia, PA
3DS FC
3497-1590-7447
Idk. Veril wrote multiplier, so that's what I copied.

Thanks for the grab formula! I'll add it right now.
 

A2ZOMG

Smash Legend
Joined
Oct 13, 2007
Messages
12,542
Location
RPV, California
NNID
A2ZOMG
Switch FC
SW 8400 1713 9427
Does Marth's shieldbreaker have an actual multiplier or a constant addition?

Grab duration formula:
Code:
frames_held = (90 + 1.7*damage - 8*inputs)
      frames_held is the number of frames the victim stays in the grab
      damage is the percentage of the victim
      inputs is the number of inputs the victim presses; a c-stick input counts as two
I'm pretty sure it's just a straight 100 frames off, but I could be wrong.
You're absolutely correct.

Full shield has 70 health, and Marth's Shield Breaker has a modifier of 40 to shield damage. Which is in fact an extra 100 frames of shield duration taken.

Full charged Shield Breaker keep in mind barely falls short of breaking a full shield (it would need to do at least 30 damage on hit to reliably break a full shield).
 

phi1ny3

Not the Mama
Joined
Apr 15, 2008
Messages
9,649
Location
in my SCIENCE! lab
Oh cool, I was just looking for the hitlag formula just the other day :p

I'm wondering whether as to aura has it's own effect on hitlag or not, since it says other elements are "unkown". The only thing I don't really understand is what exactly is "Floor"?

ex luc fair @ 0% aura
Floor[(3/2.6+5)*1.00*1.00)]
 

KayLo!

Smarter than your average wabbit.
Joined
Dec 9, 2008
Messages
15,480
Location
Philadelphia, PA
3DS FC
3497-1590-7447
Floor basically means round down (unless you're dealing with negative numbers, in which case you'd round up).

It's telling you to go to the largest integer not greater than your answer. =X

I have no idea how aura works, sorry. :(
 

phi1ny3

Not the Mama
Joined
Apr 15, 2008
Messages
9,649
Location
in my SCIENCE! lab
Oh I wasn't wondering about aura, I understand that nobody has that covered yet, I was primarily curious about clarifying "Floor". It says that nobody knows about other elements (fire, slash, etc.) aside from electric. Interesting...
 

KayLo!

Smarter than your average wabbit.
Joined
Dec 9, 2008
Messages
15,480
Location
Philadelphia, PA
3DS FC
3497-1590-7447
Streamlined the damage formula section and added the rest of its multipliers. I got the info from Colin's explanation way back, so if anything is incorrect, let me know. (The staleness section matches up with sun's formula, so I know that stuff is right.)

@Phil and T-Block: y'all might want to look over the aura and fatigue formulas since they apply to your characters. I'm not 100% on those.

EDIT: @rPSI: What is the shield hitlag differential used for? It doesn't seem to have a point.... I'm confused as to why you separated it from the regular shield hitlag formula and changed the normal one.
 

rPSIvysaur

[ɑɹsaɪ]
Joined
Jun 7, 2009
Messages
16,415
Shield Hitlag differential is for calculating how much of a frame difference you recieve for hitlag and hitting someone's shield. It is important to know for calculating advantage on shield.
 

KayLo!

Smarter than your average wabbit.
Joined
Dec 9, 2008
Messages
15,480
Location
Philadelphia, PA
3DS FC
3497-1590-7447
Gotcha. I was confused since it's a little different than the formula Veril has for shield hitlag.

The formula for escape frame on block is still correct then right?
 

KayLo!

Smarter than your average wabbit.
Joined
Dec 9, 2008
Messages
15,480
Location
Philadelphia, PA
3DS FC
3497-1590-7447
varies. I use a damage formula excel which gives me fresh + stale moves 1-9 usage and vice versa.
I used the moves+staleness I needed to get the result I tried to confirm.

The Shield Stun formula doesn't work if you always round down. But it seems to work like I said Y/3 = X.8 = rounded up. everything below = rounded down.
but you have to use decimal places so that it's really exactly.
14% does fresh 14.7%, 14.7/3 = 4.9 = rounded up = does 5 frames shield stun.
22% does fresh 23.1%, 23.1/3 = 7.7 = rounded down = 7 frames shield stun
4% does 2.4% with the first four stale queue entrys = 2.4%/3 = 0.8 = rounded up = 1 frame shield stun.
this seems to be correct. (constant results after a lot of testing :/ )
Shield stun formula updated to reflect this.
 

A2ZOMG

Smash Legend
Joined
Oct 13, 2007
Messages
12,542
Location
RPV, California
NNID
A2ZOMG
Switch FC
SW 8400 1713 9427
Does someone have a bright idea as to how knockback distance in general can be explained as a precise number (we'll factor dumb things like momentum cancels, traction, fall speed, and other stuff later)? The only things we know are things like how knockback and damage share a linear relationship, how knockback is calculated after damage, and the "overall" effects of knockback values.
 

Luxor

Smash Champion
Joined
Jul 13, 2009
Messages
2,155
Location
Frame data threads o.0
Well, we don't know damage and knockback are linear IIRC. A large-scale test dealio like the ones I've described in depth would be needed. And honestly, knockback distance is probably less important than a hitstun formula, and slightly harder to quantify.
 

A2ZOMG

Smash Legend
Joined
Oct 13, 2007
Messages
12,542
Location
RPV, California
NNID
A2ZOMG
Switch FC
SW 8400 1713 9427
I was slacking bored, and I recorded this stuff. Basically I used Falco's B-air as a dummy move to test knockback mechanics on Lucario, with hope that it might give insight as to how knockback might be quantified more precisely with relation to the tumble threshold (we know that precisely 80 bkb reaches tumble, but how much knockback is this really?)

damage ->0, 427 percent required to induce tumble on Lucario with normal growth (103)
damage ->0, growth -> 100, 443 percent induces tumble
damage ->0, growth -> 100, base -> 1, 436 induces tumble
damage ->0, growth -> 100, base -> 2, 429 induces tumble (difference of 7 percent per point of bkb when kbg/dmg = 100/0)
damage ->1, growth -> 100, base -> 0, tumble at 296 (damage before hit is 295)
damage ->1, growth -> 100, base -> 1, tumble at 291 (damage before hit 290)
damage ->1, growth -> 100, base -> 2, tumble at 286 (difference of 5 percent when kbg/dmg = 100/1)
damage ->2, growth -> 100, base -> 0, tumble at 222 (damage before hit 220)
damage ->0, growth -> 1, base -> 79, tumble at 586
damage ->0, growth -> 2, base -> 79, tumble at 229
damage ->0, growth -> 3, base -> 79, tumble at 110
damage ->0, growth -> 4, base -> 79, tumble at 50 (what kind of relationship? Exponential decay?)
damage ->0, growth -> 5, base -> 79, tumble at 15
damage ->1, growth -> 1, base -> 79, tumble at 391 (damage before hit 390)
damage ->1, growth -> 2, base -> 79, tumble at 153 (damage before hit 152)
damage ->1, growth -> 3, base -> 79, tumble at 74 (damage before hit 73)
damage ->13, growth -> 1, base -> 79, tumble at 79 (damage before hit 66)

I'm stupid and I can't make anything really meaningful out of this. Does someone else know more?
 

Luxor

Smash Champion
Joined
Jul 13, 2009
Messages
2,155
Location
Frame data threads o.0
Whoa, that's a lot of numbers.

k

damage ->0, growth -> 1, base -> 79, tumble at 586
damage ->0, growth -> 2, base -> 79, tumble at 229
damage ->0, growth -> 3, base -> 79, tumble at 110
damage ->0, growth -> 4, base -> 79, tumble at 50 (what kind of relationship? Exponential decay?)
damage ->0, growth -> 5, base -> 79, tumble at 15
Running a few regressions online,
Result: y = 1361.78028 e^(-.8562887762x), x = growth, y = tumble percent @ constant bkb = 79 and damage = 0.
Residual Sum of Squares: rss = 414.4587864
TBH idk what the rss means since I never took stats, but I'm assuming a low one means a good fit. The exponential regression fit best anyway.

damage ->1, growth -> 1, base -> 79, tumble at 391 (damage before hit 390)
damage ->1, growth -> 2, base -> 79, tumble at 153 (damage before hit 152)
damage ->1, growth -> 3, base -> 79, tumble at 74 (damage before hit 73)
y = 912.043692 e^(-.8598178949x), x = growth, y = tumble percent @ constant bkb = 79 and damage = 1.
Residual Sum of Squares: rss = 156.0800792
We see that the exponent is roughly the same, ~-.85, but the coefficient varies. That probably has to do with percent, since that's what changed between trials.

Somebody do some more math with that. I went here: http://www.xuru.org/rt/ExpR.asp#CopyPaste

also the tumble % difference against bkb varies with damage as well

What we need is more data like damage = x, growth = constant, base = 79. We can only get two points for that regression atm.
 

KayLo!

Smarter than your average wabbit.
Joined
Dec 9, 2008
Messages
15,480
Location
Philadelphia, PA
3DS FC
3497-1590-7447
Added shield advantage formula.

Shield Advantage = Hit Frame - End Frame + Shield Stun + Shield Hitlag - Hitlag

rPSI, the one you have in Google Docs is a little off. Prime tested some of Pika's moves in-game and consistently got results that were +1 from the spreadsheet..... it's because FAF should actually be End Frame in your formula. ><

EDIT: I went ahead and changed the spreadsheet. Hope you don't mind, just trying to be helpful! ;;
 

KayLo!

Smarter than your average wabbit.
Joined
Dec 9, 2008
Messages
15,480
Location
Philadelphia, PA
3DS FC
3497-1590-7447
Np.

Also, idk how to put this in the spreadsheet formula (doubt it's even possible), but shield stun might be off by 1 for some moves since you round up if the tenths place is 8 or above. :ohwell: Nbd, just something people will have to keep an eye out for.
 

KayLo!

Smarter than your average wabbit.
Joined
Dec 9, 2008
Messages
15,480
Location
Philadelphia, PA
3DS FC
3497-1590-7447
I think fire moves might have a shield hitlag modifier.

According to the formulas we have, Zelda's uair (15.75 damage) should have 11 hl / 11 shl / 5 ss, but in-game it has 11 hl / 10 shl / 5 ss. Block advantage is -36 in-game when it should be -35 according to the calc.

When I tested part 2 of FW (6.3 damage), however, it came out how it should: 7 hl / 7 shl / 2 ss with -26 block adv.

Charizard's ftilt (11.55 damage) should be 9 hl / 9 shl / 4 ss / -25, but it's 9 hl / 8 shl / 4 ss / -26 in-game.*
*This move is weird. On the frame after the first hit frame, Snake slides in his shield like he's in shield stun..... then on the frame after that, he returns to being frozen in normal shield hitlag. Charizard stays in hitlag the entire time, so I counted the weird slide as a misplaced frame of shield stun since he's supposed to have 4 anyway.


Prime tested with Oli + fire pikmin and got these results:

Dsmash (13.65 damage) - 10 hl / 10 shl
Usmash (15.75 damage) - 11 hl / 10 shl
Dair (16.8 damage) - 11 hl / 11 shl


Every other type of move I've done has followed the formula, so it has to have something to do with the fire. :urg: Someone good with math should help!
 

Toomai

Smash Ace
Joined
Aug 17, 2006
Messages
769
Location
Someplace in Canada
While I don't have much time to do much right now, as my first post in this area I'd like to put up the formula I came up with for aura a week or two ago.




This was tested by making Lucario's d-smash deal 500% damage and sticking him in training mode (no SMN and easy-to-set damage).

I ignored the stock modifier here because it was being annoying.

(yeah okay the formula should be outputting numbers like 0.7-1.4 instead of 70-140 but I didn't want to deal with fractions any weirder than these)
 

Yikarur

Smash Master
Joined
May 29, 2007
Messages
4,595
Location
Germany
don't we have a thread locator? I always have to search for this thread If I need something :(
 

MK26

Smash Master
Joined
Jun 29, 2008
Messages
4,450
Location
http://www.mediafire.com/?zj2oddmz0yy for ZSS fix!
Np.

Also, idk how to put this in the spreadsheet formula (doubt it's even possible), but shield stun might be off by 1 for some moves since you round up if the tenths place is 8 or above. :ohwell: Nbd, just something people will have to keep an eye out for.
A Solution!

Code:
=IF((A1/3+0.2)<FLOOR(A1/3+1,1),FLOOR(A1/3,1),FLOOR(A1/3+1,1))
Assuming the base damage of the attack is contained in A1, of course

Everything is possible in excel. There is no room for doubt.
 

KayLo!

Smarter than your average wabbit.
Joined
Dec 9, 2008
Messages
15,480
Location
Philadelphia, PA
3DS FC
3497-1590-7447
@MK26: I meant the Google docs spreadsheet, but if that works there..... too good! :bee:

@Yika: I thought this would've been stickied/put in a directory-type thread or something, but nah. Just gotta search for it.

Or keep it eternally bumped. ;;
 

T-block

B2B TST
Joined
Jan 11, 2009
Messages
11,841
Location
Edmonton, AB, Canada
Let F be the fatigue value of the Pokémon.

F varies as follows:
  • all Pokémon begin the match at 0 fatigue
  • the fatigue value will not exceed 200
  • fatigue increases by 1 for every second that a pokemon is active
  • fatigue increases by 1 for every move that a pokemon makes; exceptions to this are:
    • Squirtle's jab combo - 3rd hit
    • Charizard's jab combo - 2nd hit
    • Charizard's jab combo - 3rd hit
    • Charizard's glide attack
    • Grab pummels
    • walking, dashing, jumping, dodging, rolling, grabbing, throwing, and throwing items do not increase the fatigue value
  • fatigue decreases by 1.67 (5/3) for every second that a pokemon is in its pokeball
  • fatigue is multiplied by 0.3 when a pokemon is KO'd (ie- reduced to 30% of its value)

F affects the multiplier M on the power of the Pokémon as follows:

F | M
F < 120 | 1.00
120 <= F < 130 | 0.80
130 <= F <= 200 | 0.8 - (0.10*(F - 130)/70)

In other words, once fatigue reaches 120, a Pokémon's power is reduced to 80%. It remains at 80% until fatigue reaches 130, when power begins to decrease linearly with fatigue, until it reaches 70%, when fatigue is maxed at 200.
 

MK26

Smash Master
Joined
Jun 29, 2008
Messages
4,450
Location
http://www.mediafire.com/?zj2oddmz0yy for ZSS fix!
@kaylo: i dont know how to get to the google docs spreadsheet, but itll definitely work there lol

@tblock: wow

if im at full fatigue of 200 and get ko'd, then it automatically cuts down to 60 right away, and decreases at a rate of 5/3 points/second to go back to 0 in 36 seconds?
 

T-block

B2B TST
Joined
Jan 11, 2009
Messages
11,841
Location
Edmonton, AB, Canada
That's correct.

So if Squirtle is at full fatigue and you plan on switching to him back to him as soon as possible, it may be worth letting him get KO'd instead of switching.
 

A2ZOMG

Smash Legend
Joined
Oct 13, 2007
Messages
12,542
Location
RPV, California
NNID
A2ZOMG
Switch FC
SW 8400 1713 9427
That's dumb, you get penalized for spamming moves as the PT?

At least Squirtle is insane.
 

Yikarur

Smash Master
Joined
May 29, 2007
Messages
4,595
Location
Germany
does fatique increase for every move you hit with or for every move you do?

Squirtles looping jab#1 ftw :awesome:
 

T-block

B2B TST
Joined
Jan 11, 2009
Messages
11,841
Location
Edmonton, AB, Canada
Hmm...maybe it's easier to get things straight if I wrote it like this?

Let F be the fatigue value of the Pokémon.

F varies as follows:
  • all Pokémon begin the match at 0 fatigue
  • the fatigue value will not exceed 600
  • fatigue increases by 3 for every second that a pokemon is active
  • fatigue increases by 3 for every move that a pokemon makes; exceptions to this are:
    • Squirtle's jab combo - 3rd hit
    • Charizard's jab combo - 2nd hit
    • Charizard's jab combo - 3rd hit
    • Charizard's glide attack
    • Grab pummels
    • walking, dashing, jumping, dodging, rolling, grabbing, throwing, and throwing items do not increase the fatigue value
  • fatigue decreases by 5 for every second that a pokemon is in its pokeball
  • fatigue is multiplied by 0.3 when a pokemon is KO'd (ie- reduced to 30% of its value)

F affects the multiplier M on the power of the Pokémon as follows:

F | M
F < 360 | 1.00
360 <= F < 390 | 0.80
390 <= F <= 600 | 0.8 - (0.10*(F - 130)/70)
Just multiplied every value by 3 so that we don't deal with the 5/3... it was kinda nice to have 1 second, 1 move = 1 point though... what do you guys think?
 
Top Bottom