Fboard: the TAS tool and showcase run¶
Written 2026-10-27 from the project's own docs.
A TAS (tool-assisted speedrun, or here tool-assisted run) is a run produced by a program searching over inputs, rather than played live. Fboard has its own TAS tool, fboard_tas. It was built to make a showcase run and, along the way, it stress-tested the game's scoring rules.
Replays¶
A replay is one simulation input per tick, plus a checksum of the game state every 300 ticks (5 seconds). When the game plays a replay back, it checks every checksum, so a replay that drifts from the original says so instead of silently going wrong.
The project's notes record that a headless release build and the full game client agree bit for bit on replays, including grinds, manuals, vert and spins, and that a one-tick change to an input is caught. Replays can also be rendered to video at exactly one simulation tick per frame, with an offline-rendered soundtrack, so the video runs at real speed however slowly the capture runs.
The bot¶
The TAS tool plays under human input limits, so its runs are things a person could in principle do:
- The analog stick can move only 0.34 of its range per tick, inside a round gate.
- A button must be up for 3 ticks before it can be pressed again.
Within those limits it uses exact balance control, a brute-force planner for air time, Dubins paths (the shortest route for a vehicle that can only turn so sharply), and a beam search over route segments (a search that keeps only the best few candidates at each step). Separate commands re-simulate a run to check it, audit it against the human limits, and measure what unrestricted play can break.
The Kitchen showcase run¶
Recorded figures for the showcase run on the Kitchen level, played under the original Arcade physics:
- 7,053,368 points in a single combo, banked at 116.5 s, just before the two-minute buzzer.
- Every goal except the secret tape, which was left out by request.
- Peak speed 14.6 m/s, highest point 2.84 m, longest air 0.92 s, as the tool reports them under Arcade physics (these are not real fingerboard speeds).
- An average of 2.0 button presses per second, with 7 in the busiest second.
The route runs a spawn loop, uses a mug-tray kicker in reverse for a speed boost, clears the Cutting Board Hop gap, picks up letters on the back wall, a spoon grind and a stack of cookbooks, drops onto a butter knife, farms the half-pipe until about 114 s, and exits across the cutting board to bank.
What it revealed about scoring¶
Building the route and running the exploit measurements produced a list of findings for the tuning pass:
- Scoring is unbounded and quadratic. Every trick raises the multiplier, repeats included (the repeat penalty only reduces a trick's points, to a floor of 10%), and nothing ends a combo that keeps chaining. Goals top out at 75,000 points; the showcase scores 7 million.
- A flat manual-ollie-flip chain beats everything: 27.6 million by the buzzer under the same human limits, about four times the showcase. The showcase deliberately doesn't do this.
- The run never ends while a combo continues past the buzzer. The same chain reaches 697 million at ten minutes, still going.
- Spin credit is generous: a spin is rounded to the nearest 180° with 50° of landing tolerance, so a 130° lands as a 180.
- Several smaller exploits: grind-trick switching inflates the multiplier, an ollie off a quarter-pipe face adds speed, and a flip too unfinished to land doesn't bail if the air ends on a grind.
The project's research found that real skateboard judging does the opposite: it penalizes repetition and scores whole runs on a bounded scale (see Competitions and judging). It also found that THPS shares the "repeats still raise the multiplier" flaw but contains it with run-wide repeat tracking and a soft cap (see Fingerboarding in video games). The research proposes two compatible fixes, with the aim that the best TAS score lands within about 5–10 times the top goal, not 100 times. None of these fixes has been built; scoring is shelved.
The music tour run¶
A second TAS run, music_tour, was searched for musical variety instead of score: time spent in each music section, section changes, intensity range covered, music layers heard, and one of each musical cue. Against the demo score it covers four music sections, seven section changes, intensity from 0.2 to 1.0, 17 layers, one deliberate bail and three banked combos, at 1.6 button presses per second. Its purpose is to let someone hear the adaptive music change with play. As of the handoff, nobody has watched or listened to the capture.
Open items¶
- The route and its search grids work only under Arcade physics; the TAS has not been re-run under Real physics.
- A refactor of the route code has not been re-searched to prove the score route is unchanged (the old run still verifies).