A spinner banks energy over time; a ram spends your whole bot's momentum. An arm does something different: it whips a heavy head through an arc, and the tip moves far faster than the pivot. Swing fast, and that tip carries a wallop.
Two things set how fast the head is moving when it lands: how wide the swing is and how fast it gets there. A quicker swing time means a faster tip:
Then the damage is just the head's weight times that tip speed, like a real hammer: a heavy head moving fast.
A flipper barely scratches the paint. It does not need to: flip a bot onto its back and it is helpless for a few seconds, or launch it out of the arena and it is just gone.
How high a flip throws a bot depends on how heavy that bot is. Light bots sail; heavy bots barely lift, and past a point a flipper simply cannot get them off the ground:
That is why flippers feast on lightweights and struggle against bricks. The square root keeps even a heavyweight flippable in principle, just barely.
Here is the rule that trips up new builders: you have to be heavier than your own weapon. Swing a giant hammer on a tiny chassis and Newton's third law bites, the arm does not move the target, it throws you. Your hit is scaled by how well your body outweighs your arm:
So a monster weapon needs a monster body to back it up. An over-armed flyweight just flails.
| Real physics | In BotForge / RumbleBots |
|---|---|
| a faster, wider swing lands a faster tip | tip speed = swingArc / (swingTime × 0.25) × scale |
| damage = head weight × tip speed | armMass × tipSpeed × factor × anchor × 0.45 (hammer 0.75, flipper 0.25) |
| a flipper wins by throwing, not denting | flipper damage is capped at 8; it wins on the launch |
| heavier things are harder to flip | flip magnitude = 1.15 × anchor × √(50/victim), must clear 0.5 to flip |
| swing too heavy an arm and you recoil | anchor = clamp(restMass / (2 × armMass), 0.25, 1) |
Six quick questions. Pick an answer to see why.