Level Up Your Shot: Skill Points Unlocked

Up until today, leveling up in Free Flick Football was cosmetic. You'd cross a threshold, a confetti modal popped, and you'd unlock a new ball color or aim style. Past level 15 or so, the rewards dried up entirely and the number on your profile stopped meaning anything. That changes now. From this release forward, every level-up — from 2 all the way to 100 — grants you a skill point that permanently shapes how the ball responds to your flick.

There are three skills and they're all physical: Strength, Accuracy, and Curve. Strength caps at 33 points and gives you +20% max flick power at full; a maxed-out Strength player shoots harder than they physically could on day one. Accuracy also caps at 33 and cancels a small (~1.5°) random jitter that we added to every player flick. At zero Accuracy your shots scatter slightly; at 33 they go exactly where you aim. Curve caps at 34 and grants +30% max curl — enough to bend shots around defenders that previously would've been blocked. The three skills add up to exactly 100 points, one per level-up from 2 to 101, with the 34th Curve point landing at level 100 as the capstone.

The skill tree itself opens from a yellow dot on your profile menu — the dot only shows up when you have unspent points waiting. There's also a 'Spend skill point' button on the level-up celebration overlay so you never miss the moment. Inside the modal, each skill has a segmented bar, a + button, and a live effect line that tells you exactly what the next point buys you. If you build wrong, there's a one-time free reset so you can try a different allocation.

Competitive fairness was the interesting design problem. Skills apply in vs AI, Local 2P, and unranked online — that's where the reward lives. But Daily Challenge and Season mode force skills to flat zero for everyone regardless of your allocation, so leaderboards stay honest. Everybody competes on the same physics in the modes where the score actually gets ranked. If you've ground your way to level 50, that's rewarded in casual play, not by pushing lower-level players off the daily leaderboard.

Online integrity was the other one. The wire format for a flick (angle, power, curve, ball position) hasn't changed, but the sender now bakes their skill modifiers into power and curve *before* sending. Your opponent just replays the exact shot you fired, whether you have 0 Strength or 33. Authority for what your skills actually are lives in Supabase, not in localStorage — the game reads from the server on login, and every allocation writes back to the server before updating the UI. A tampered local client can't forge a higher Strength than it actually has.

The accuracy jitter was new to the codebase and deserves its own note. Before today, human flicks were perfect — the angle you dragged was the angle the ball took. Adding ±1.5° of jitter at zero Accuracy means that some of the 'how did I miss that' moments are now real physics, not user error. Investing in Accuracy literally buys you back that precision. It's a small effect, but once you've played with it maxed and then play an alt at level 3, you can feel the difference.

If you're returning from before this release, don't worry about migrations. Your available points equal `currentLevel - 1`, computed on the fly from your existing XP — no data move needed. Open the skill tree from your profile menu and you'll find however many points you've earned waiting for you. Pick a build, fire some shots, and see which one fits your game.

← All posts