Profile Overview
Each user profile page displays:Player Information
Username, avatar, clan badge, online status, and supporter/staff badges
Statistics
Rank, performance points, level, play count, max combo, and playtime
Score History
Best scores, top plays, and recent scores with detailed breakdowns
Social Features
Friend list, relationship status, and mutual friends
Profile Components
Header Section
The profile header displays key player information:- Avatar: Large profile picture with optional clan badge overlay
- Username: Displayed with role-based color coding (staff, supporter, verified)
- Safe Name: Unique handle in
@usernameformat - Status Indicator: Shows online/offline/AFK status with current activity
Mode Switcher
Users can switch between different game modes and rulesets:- Game Modes: osu!standard, osu!taiko, osu!catch, osu!mania
- Rulesets: Different scoring and calculation methods per mode
- Ranking Systems: PPv1, PPv2, RankedScore, TotalScore
Statistics Panel
The statistics section shows comprehensive player metrics:Statistics are calculated per mode/ruleset combination. Switching modes will display different statistics.
Score Sections
The profile displays three types of scores:Best Scores
Top performances ranked by the selected ranking system (PPv1, PPv2, etc.).- Sorted by performance points or score value
- Shows mod combinations used
- Displays accuracy, combo, and rank achieved
- Links to individual score pages for detailed analysis
Top Scores
Highest-scoring plays on individual beatmaps.- One score per beatmap (the highest)
- Useful for tracking map-specific achievements
- Shows beatmap difficulty and star rating
Recent Scores
Latest plays across all beatmaps.- Chronologically ordered
- Includes failed attempts
- Shows recent activity and improvement trends
Score Rank Composition
Visual breakdown of score grades:- SS, S, A, B, C, D grade distribution
- Interactive chart showing grade percentages
- Helps players identify improvement areas
User Relationships
Guccho supports player relationships:Restricted Users
When viewing restricted user profiles:- A warning banner is displayed at the top
- Profile visibility is limited to the user themselves and staff
- Statistics and scores may be hidden or limited
Profile Editing
Players can edit their own profiles:- Navigate to your profile page
- Click the Edit button in the header
- Update your custom profile content
- Save changes
Profile content supports rich text formatting with Markdown.
Navigation Features
The profile page includes a sticky navigation bar that highlights the current section:- Heading: Jump to profile overview
- Statistics: Jump to statistics panel
- Best Scores: View top performances
- Top Scores: See highest beatmap scores
- Recent Scores: Check latest activity
URL Structure
User pages are accessible via multiple URL formats for compatibility:Implementation Details
Page Implementation
Page Implementation
User pages are implemented in
src/pages/user/[handle].vue using Vue 3 composition API with server-side rendering support.Components
Components
Key components:
userpage-heading.vue: Profile header with avatar and user infouserpage-statistics.vue: Statistics paneluserpage-best-scores.vue: Best performance scoresuserpage-top-scores.vue: Top beatmap scoresuserpage-recent-scores.vue: Recent playsuserpage-profile.vue: Custom profile content
Data Loading
Data Loading
User data is loaded server-side for SEO optimization. Statistics and scores are loaded on-demand with intersection observers for performance.
SEO Optimization
User pages include full SEO metadata:- Page title:
{username} - {server name} - Description: Current mode, ruleset, and ranking system
- Open Graph tags with user avatar
- Twitter Card metadata
- Canonical URLs
Related Features
Leaderboards
Compare players globally or by country
Clans
View clan memberships and clan pages