How does the internal attack list work in Super Smash Bros. Brawl?

Solution 1:

You have the basic idea right: the game keeps track of the last 9 moves you connected with. From SmashWiki's article on stale-move negation, basically:

  1. When a move hits something, the move is put in the stale queue.
  2. The next time you use the move, its damage is reduced based on how often and how early it appears in the queue. Using it twice in a row results in dealing 0.9x damage, for example, while if it's only in the last spot it'll deal 0.98x damage. If the queue is full of the move (you're using it for the tenth time in a row), it'll only deal 0.46x damage - this drastically affects its knockback as well.
  3. If the move is fresh (not in the queue at all) it'll deal 1.05x damage. So most moves in the game doesn't actually ever deal integer damage.

To answer your questions specifically:

  1. Yes, as stated above there is no limit to how many times a move can be in the queue.
  2. The buttons you press are irrelevant, what matters is what move comes out. All characters have 8 ground attacks, 5 aerial attacks, a pummel, 4 throws, and 4 special moves. (I'm kind of confused about how you worded this one.)
  3. If the move doesn't hit anything it doesn't count. If it hits an opponent or other damagable thing, it counts. Shields/invincible opponents I'm not 100% sure but I don't think they count.

A few bonus points:

  1. Most single-player modes have stale-move negation turned off, including Training.
  2. Some moves are immune to stale-move negation, like Zero Suit Samus's neutral air. Some of them are intentional; others are not.
  3. If you interrupt certain moves with themselves (i.e. use it repeatedly without letting the animation finish), all the hits will be put in the queue, but they won't be "applied" until you do something else, so they'll deal full damage each time before dealing a lot less afterward. Marth and Meta Knight's down tilts are good examples of this.