⚽ Player Profile
Your player profile is your digital football identity on 4league. It stores your attributes, match history, career statistics, badges, and achievements in one place — visible to coaches, teammates, and opponents. Whether you play in a Sunday league or a regional cup, your profile grows with every match you participate in.
This guide is for players. If you are a Team Manager looking to manage your squad's roster, see the Team Profile guide. If you want to understand the Player role's permissions, see User Roles.
Creating a Player Profile
When you sign up for 4league and select the Player role during onboarding, the app guides you through setting up your player profile. This is your one-time setup — you can update every field at any time afterwards.
Step-by-step setup
Choose the Player role
On the role selection screen during onboarding, tap Player. You can hold this role alongside others (for example, a player who also manages a team).
Upload your photo
Add a profile photo so teammates, coaches, and opponents can recognise you. Tap the avatar placeholder to choose a photo from your camera roll or take one in-app.
Enter your details
Fill in your full name, date of birth, height, and weight. These are used for registration cards and official player lists.
Select your position
Choose your primary playing position from the list: Goalkeeper, Defender, Central Midfielder, Winger, Attacking Midfielder, Striker, and more. You can also add a secondary position.
Set your preferred foot
Select Right, Left, or Both. This is displayed on your public profile and visible to Team Managers browsing for players.
Save your profile
Tap Save to create your profile. You will land on your Player Profile home screen, which shows your stats, attribute radar, and recent match history.
David, a 22-year-old midfielder, creates his player profile. He uploads his photo, sets his preferred position as Central Midfielder, selects right foot as dominant, and enters his height (178 cm) and weight (74 kg). His profile is now live and visible to Team Managers in his area.
Your player profile is your football CV. Keep it updated to stand out when coaches browse players. A complete profile with a photo, attribute ratings, and an up-to-date match history receives significantly more views than an incomplete one.
Player Skills & Attributes
4league uses a six-attribute model inspired by professional football video games. The six attributes — PAC, SHO, PAS, DRI, DEF, PHY — start at a base value and grow over time. Together they form a radar chart displayed prominently on your public profile. Your overall rating is calculated as the weighted average across all six attributes.
Player profile attributes, posters, and skill-point allocation are currently mobile-only — managed from the iOS and Android apps. Players viewing the web are read-only for these features.
| Attribute | What it measures | Sub-skills included |
|---|---|---|
| PAC — Pace | How fast you move with and without the ball | Sprint speed, acceleration, burst of pace over short distances |
| SHO — Shooting | Quality and power of your shots on goal | Shot power, finishing, accuracy, long shots, volleys |
| PAS — Passing | Ability to distribute the ball to teammates | Short passing, long passing, crossing, vision, through balls |
| DRI — Dribbling | Ball control and ability to beat opponents | Ball control, agility, balance, close control, tricks |
| DEF — Defense | Ability to win the ball back from opponents | Tackling, marking, interceptions, positioning, heading (defensive) |
| PHY — Physical | Physical presence and endurance on the pitch | Strength, stamina, jumping, aggression, balance |
Attribute Points
Attributes are not free-form sliders. Each of the six attributes starts at a base value and is increased by spending attribute points (skillPoints) that you earn through achievements. Every time the app awards you an achievement that grants attribute points, your available points pool grows, and you decide which of the six attributes to invest them in from the Edit Skill Points screen on the mobile app.
| Achievement | Attribute points granted |
|---|---|
| Tournament MVP | +50 |
| Tournament Goalgetter | +25 |
| Player of the Week | +20 |
| Finalist | +20 |
| Player of the Match | +10 |
| Team Player | +10 |
See the full list of achievements and the experience points (XP) they award in Player Achievements & Experience below. Source of truth: backend/config/achievements.js.
Allocating Skill Points
When you have unspent attribute points available, your Player Profile shows a Skill Points indicator. Tap it to open the Edit Skill Points screen, where you can choose how many of your available points to add to each of the six attributes. Confirm to save — your radar chart on the profile updates immediately, and the points you allocated are deducted from your pool.
Allocating skill points the first time also unlocks the Skill Points onboarding achievement (+5 XP), so it is worth doing as soon as you earn your first points.
David wins his first Player of the Match award, which credits +10 attribute points to his pool. He opens Edit Skill Points, adds 6 to PAC and 4 to PAS, and confirms. His radar chart updates instantly to reflect his new ratings, and his pool resets to 0 until his next achievement.
Spread your points to match your real playing style. Coaches browsing players use the radar chart as a first filter, so concentrating points into your strongest attributes is a quick way to communicate your role on the pitch.
Player Matches & History
The Matches tab on your player profile shows every match you have been registered for — both past and upcoming. Match data is populated automatically when a Team Manager or organizer records match results in 4league.
What you can see in match history
A chronological list of every match you have played, including date, opponent, final score, and competition name.
Scheduled fixtures from all competitions you are registered in, so you never miss a match date.
Goals, assists, yellow cards, and red cards recorded for each match.
Tap any match to see the full lineup, all match events, the final score breakdown, and which team won.
David opens his Matches tab to check his recent form. He can see that in the last 5 matches, he scored 3 goals and provided 2 assists. He taps the match against Atletico City to see the full event timeline — his goal came in minute 67 and his assist in minute 82. The match finished 3–1 to his team.
Player Statistics
The Statistics tab aggregates your performance data across all competitions and seasons. Stats are computed at read time from your recorded match data, so they update automatically every time a match result is confirmed in the app.
Career statistics
The aggregator pulls events from your matches in two ways: lineup-level events (recorded by the Team Manager directly on the match sheet) and detailed Match Stats (recorded with the optional Match Stats feature on a per-match basis). The table below lists every stat the backend currently surfaces on your profile.
| Stat | Source | Description |
|---|---|---|
| Appearances | Match lineup | Total number of matches you were listed in |
| Goals | Lineup events or Match Stats | Total goals scored across all competitions and seasons |
| Assists | Match Stats | Total assists recorded against your name |
| Yellow Cards | Lineup events | Total yellow cards received |
| Red Cards | Lineup events | Total red cards received |
| Wins / Draws / Losses | Match results | Computed from the final scores of matches your team played |
| Shots | Match Stats | Total shots, summed from per-match Match Stats entries |
| Corners | Match Stats | Total corners taken or won |
| Offsides | Match Stats | Total offside calls against you |
| Attacks | Match Stats | Total attack involvements |
| Tackles | Match Stats | Total tackles made |
| Passes | Match Stats | Total passes completed |
| Fouls | Match Stats | Total fouls committed |
| Goals Saved | Match Stats | Total saves (relevant for goalkeepers) |
The profile only tracks the stats listed above. Match Stats fields are optional — if a Team Manager does not record per-match Match Stats for a fixture, only lineup-level events (goals, cards) are aggregated for that match. Per-match averages, minutes played, and clean sheets are not aggregated by the backend.
Stats per competition and per season
Below your career totals you will find a breakdown by competition. This lets you see how you perform across different leagues, cups, or tournaments. Tap any competition to drill into a season-level view.
At the end of the season, David's career stats read: 20 appearances, 15 goals, 8 assists, 3 yellow cards, 0 red cards, 12 wins / 5 draws / 3 losses. He taps the competition breakdown and sees the split: 10 goals in the Sunday League (14 appearances) and 5 goals in the City Cup (6 appearances).
Connecting to a Team
To have your match data tracked, you must be connected to a team. Your stats, goals, assists, and cards are all recorded at the team level — meaning they only appear in your history when you are a registered player in a team that participates in a competition.
There are two ways your profile becomes linked to a team in 4league: you can join a team by entering the Team Manager's join code, or you can claim an unowned roster slot that a Team Manager already added for you by name. Both flows notify the Team Manager.
Flow A — Join with a team code
Ask your Team Manager for the team's join code, then enter it on the Connect to Team screen. The app verifies the code, lets you confirm the matching team, then sends a GET /players/connectToTeam/:teamId request. That call adds the team's id to your connectedTeams list, notifies the Team Manager, and (on your first ever team link) awards you the Team Player achievement (+100 XP, +10 attribute points).
Get the join code from your Team Manager
The Team Manager generates and shares a join code from their Team Profile. The code is what links your account to that specific team.
Open Connect to Team and enter the code
From your Player Profile, open Connect to Team, type or paste the code, and tap Verify. The app checks the code against the backend and shows the matching team (or a list, if the code resolves to more than one).
Confirm the team and connect
Review the team details (name, manager, location, kit) and tap Connect to Team. Once the connection is saved, the Team Manager is notified and your match stats start being tracked for every fixture that team plays.
Flow B — Claim an unowned roster slot
Team Managers can build out a roster before all players have downloaded the app — they simply add players by name. These names create unowned Players documents on the backend (no owner field set). When the real person installs 4league and connects to the team, the app shows the roster's existing entries so you can claim the one that matches your identity.
Connect to the team first
Complete Flow A above to connect to the team. After the connection is saved, the app navigates you to the Matching Players screen with the team's existing roster.
Select your roster entry
Pick the unowned roster entry that matches your identity (or pick create new if your name isn't on the list yet) and confirm. The app sends POST /players/linkPlayer/:teamId with the selected player document as the body.
Backend stamps ownership and merges details
When the body identifies an existing player (no new flag), the handler stamps owner on that Players document, merges your profile name, logo, shirt number, and position into the roster entry, and notifies the Team Manager that you have claimed the slot. If the body has new: 1, the handler creates a fresh Players document for you instead.
Coach Elena added David to FC Thunder's roster a week before pre-season, using just his name. When David installs 4league, Elena shares the team's join code with him. David opens Connect to Team, enters the code, confirms FC Thunder, and the app then routes him to Matching Players — where he spots his unowned roster entry and picks it. The backend links that entry to his user account, merges his profile photo and shirt number into it, and pings Elena that David is now active. From that point on, every goal, assist, and card David earns in FC Thunder's matches is automatically added to his player profile.
You can be connected to multiple teams simultaneously — for example, if you play for a club team on Saturdays and a five-a-side team on Wednesdays. Your stats are tracked separately per team and per competition. Career totals on your profile aggregate everything across all your teams.
Player Achievements & Experience
4league includes a gamification system built around achievements and experience points (XP). Every milestone you reach on the pitch — or in the app — can grant XP and, for the on-pitch achievements, attribute points you can spend on your six core attributes. Earning XP advances your player level, which is shown as a badge on your profile and in any team roster your coach views.
How XP is earned
XP comes from completing in-app actions and earning achievements. The list of achievements is curated — there is no infinite ladder of milestones — and every entry has a clearly defined trigger and reward. The achievement source of truth is backend/config/achievements.js.
Player achievements
These achievements are available only to users with the Player role. Several of them also grant attribute points that feed into the attribute pool.
| Achievement key | How to earn | XP | Attribute points |
|---|---|---|---|
| tournamentMVP | Be named MVP of a tournament | +300 | +50 |
| tournamentGoalgether | Finish a tournament as the top scorer | +100 | +25 |
| playerOfTheWeek | Win the weekly Player of the Week vote | +100 | +20 |
| finalist | Reach a tournament final with your team | +100 | +20 |
| playerOfTheMatch | Be named Man of the Match in a fixture | +80 | +10 |
| teamPlayer | Connect to your first team | +100 | +10 |
| sharePlayer | Share your player profile from the app | +5 | — |
| finishProfile | Complete every field on your player profile | +5 | — |
| skillPoints | Open the Edit Skill Points screen for the first time and allocate points | +5 | — |
Universal achievements
These achievements are available to all users regardless of role. They reward app engagement and community support — none of them grants attribute points.
| Achievement key | How to earn | XP | Frequency |
|---|---|---|---|
| rateUs | Rate 4league on your app store | +20 | One-time |
| followUs | Follow 4league on social media | +20 | One-time |
| viewAd | Watch a rewarded ad in the app | +2 | Daily |
| viewSevenAds | Watch seven rewarded ads in a single week | +20 | Weekly |
| oneMonthAds | Engage with rewarded ads across a full month | +40 | Monthly |
| tagUs | Tag 4league in a social media post | +2 | Daily |
After the cup final, the organizer marks David as the tournament MVP. The app awards him the tournamentMVP achievement, crediting +300 XP and +50 attribute points to his pool. The XP bumps him up a level, and the next time he opens Edit Skill Points he has 50 fresh points to distribute across PAC, SHO, PAS, DRI, DEF, and PHY.
Registration Card
A registration card is an official document generated by 4league when a player is formally registered within an organization (such as a regional football association or a club federation). It serves as proof of registration for official competitions under that organization.
What the registration card contains
A unique identifier assigned by the organization, used in official match sheets and transfer records.
The season year or period for which the registration is valid (e.g., 2024–2025).
Whether the player has a valid medical clearance on file, and its expiry date if applicable.
The profile photo pulled from your player profile, used for identity verification on the card.
How to get a registration card
Registration cards are issued by an organizer or organization administrator — you cannot generate one yourself. When an organization admin registers you in the system, your card becomes visible in your Player Profile under My Registration Cards. If you are registered in multiple organizations, you will have a separate card for each one.
David's coach submits his registration to the local football association through the organization admin panel in 4league. A few hours later, David opens his player profile and sees a new Registration Card notification. His card shows: Registration #2024-1234, Season 2024–2025, Medical Clearance: Valid until December 2025, and his player photo. He can share a PDF of the card directly from the app when required for official match day documentation.
Registration cards are linked to your organization registration, not just your team. If you transfer to another team within the same organization, your existing registration number may carry over. If you move to a club in a different organization, a new registration process is required.
Player Navigation Tabs
When you are signed in as a Player, the bottom navigation bar of the mobile app gives you direct access to the five screens you use most often. The tabs are configured in Manager/navigation/BottomTabNavigatorForPlayer.js.
| # | Tab | Icon | Opens |
|---|---|---|---|
| 1 | My Profile | account-outline |
Your Player Profile home — attributes, recent matches, badges |
| 2 | Matches | soccer |
Your match list — past results and upcoming fixtures. Shows a badge count for unread match notifications. |
| 3 | Statistics | chart-bar |
Your aggregated career statistics, with per-competition and per-season breakdowns |
| 4 | Messages | message-text-outline |
In-app messages from Team Managers, organizers, and the system. Shows a badge count for unread messages. |
| 5 | More | dots-horizontal |
Account settings, language, packages, privacy, and the full menu of secondary screens |
The Matches and Messages tabs (and the More tab for account-level alerts) display a coloured count badge when there is pending activity for you — for example, a newly added fixture, an unread message from a coach, or a connection request. Tap the tab to clear the badge once you have reviewed the items.