Player Biography (Character Profiles)
View detailed character profiles including stats, titles, accomplishments, and personal bios. Check player status, send mail, and stalk—er, research your fellow students.
What Is a Player Biography?
Every witch and wizard at Hogwarts Live has a public character biography accessible to all students - a comprehensive profile displaying their stats, accomplishments, House membership, current status, and personal description. Think of it as a magical resume meets social media profile meets stalker's dream come true. Access bio pages by clicking player names from the Player List, or navigate directly to bio.php?char=loginname if you're feeling technically inclined.
Bios serve multiple purposes: researching potential PvP targets (checking their level before you embarrass yourself), learning about characters for roleplay purposes (so you know if they're a brooding half-vampire or cheerful Hufflepuff), tracking player activity (when were they last online?), and sending quick Owl Post via the convenient scroll icon. They're also home to the Recent Accomplishments feed - a scrolling chronicle of every forest fight, level gain, death, and resurrection that defines the player's journey through Hogwarts.
Biography Header
Top Section Elements:
Page Title:
- Display: "Biography for [Character Name]" in purple
- Character Name: Uses display name (colorful name), not login
- Format: "`^Biography for %s`^."
Write Mail Icon:
- Display: Small scroll image (newscroll.GIF)
- Function: Click to open Owl Post compose window
- Popup: Opens in popup window (or new tab if popups blocked)
- Pre-Addressed: Recipient automatically filled with player's login name
- Only When Logged In: Anonymous viewers don't see mail icon
Public Profile Link:
- Display: "View [login]'s Public Profile »"
- Links To: user_profile.php (separate public-facing profile system)
- Opens: New tab/window (target="_blank")
- Clean URL: Uses SEO-friendly URL format
- Purpose: More detailed profile system with additional social features
House Membership Display
Common Room Affiliation:
If Player Is in a House:
- Display Format: "[Name] is [rank] [House Name]"
- Example: "Harry Potter is a member of Dumbledore's Army"
- Color: Green for player name and House name
- Shows Only If: clanname is set AND Config::allowclans is enabled
Rank Descriptions:
- Newly Sorted: "newly sorted member of" (CLAN_APPLICANT)
- Member: "a member of" (CLAN_MEMBER)
- Prefect: "a prefect of" (CLAN_OFFICER)
- Senior Member: "a senior member of" (CLAN_LEADER)
- Head of House: "the Head of" (rank 40)
- Module Hook: Custom ranks can be added via "clanranks" hook
If Not in a House:
- Display: Nothing (section omitted entirely)
- Indicates: Player hasn't joined a player-created House (Common Room)
Character Statistics
Core Stats Display:
Username (Login Name):
- Display: "`^Username: `@[login]"
- Purpose: Unique account identifier for sending mail, adding friends
- Colors: Purple label, green value
- Differs From: Display name (which can have color codes and special characters)
Title:
- Display: "`^Title: `@[title]"
- Examples: "First Year Student", "Skilled Wizard", "Dragon Slayer"
- Progression: Changes based on Voldemort Encounters (VE)
- Custom Titles: Donors may have special custom titles
Level:
- Display: "`^Level: `@[number]"
- Range: Typically 1-20+ depending on experience
- Importance: Major indicator of character power and progression
- PvP Relevance: Check before attacking to avoid embarrassing mismatches
Status (Online/Offline):
- Online Display: "`#Online`0" (green)
- Offline Display: "`$Offline`0" (brown/gold)
- Calculation: Online if loggedin=true AND laston within Config::LOGINTIMEOUT seconds
- Real-Time: Updates based on player's last activity
- Use Case: Check before sending important mail (will they respond quickly?)
Resurrections:
- Display: "`^Resurrections: `@[number]"
- Counts: Total number of times player has died and been resurrected
- Badge of Honor: High resurrections indicate active combat participation (or poor survival skills)
- Zero: Either very skilled at staying alive or very new
Race:
- Display: "`^Race: `@[race name]"
- Examples: "Human", "Half-Giant", "Werewolf", "Goblin"
- Unknown: Shows "Unknown" if player hasn't selected a race
- Bonuses: Each race provides different stat bonuses/penalties
- RP Importance: Affects character roleplay and interactions
Pronouns:
- Display: "`^Pronouns: `@[pronouns]"
- Options: He/Him, She/Her, They/Them, or custom
- Custom Pronouns: Players selecting "Other" can enter custom pronouns
- Storage: Custom pronouns stored in profiles table
- Respect: Use these when referring to players in communication
Specialty:
- Display: "`^Specialty: `@[specialty name]"
- Examples: "Dark Arts Expert", "Auror", "Healer", "Enchanter"
- Default: "Unspecified" if player hasn't chosen specialty
- Hook System: Module hook "specialtynames" allows custom specialties
- Gameplay Effect: Provides unique abilities and stat bonuses
Mount:
- Display: "`^Mount: `@[mount name]"
- Examples: "Hippogriff", "Thestral", "Dragon"
- None: Shows "`iNone`i" (italicized) if no mount
- Permanent Buff: Mounts provide permanent stat bonuses
- Module Hook: "bio-mount" hook can modify mount display
Voldemort Encounters:
- Display: "`^Voldemort Encounters: `@[number]"
- Only Shows If: dragonkills > 0 (doesn't display for first-years)
- Progression Metric: Primary measure of character advancement
- Unlocks Content: VE gates access to locations, features, equipment
- Prestige: High VE = veteran player, low VE = newer or inactive
- Correct Terminology: Always "Voldemort Encounters", never "Dragon Kills"
Personal Bio Text
Character Description:
Bio Field:
- Display: "`^Bio: `@[bio text]"
- Only Shows If: Player has written bio text (bio > "")
- Sanitization: Runs through soap() function for safety
- Purpose: Player-written character description, backstory, personality
- Color Codes: Supports LoGD color formatting (backtick codes)
- No Length Limit: Can be as short or long as player desires
What Players Write:
- Physical Description: Appearance, clothing, distinctive features
- Personality Traits: Character quirks, temperament, behavior
- Backstory: Character history, family, motivations
- RP Preferences: How they prefer to interact, RP style
- OOC Info: Sometimes timezone, availability, contact preferences
- Humor: Many players use snarky, witty, or self-aware descriptions
Editing Your Own Bio:
- Access: Edit bio via character settings or profile editor
- Changes: Updates appear immediately on bio page
- Public: All bio text is public - don't include private information
- Guidelines: Follow game rules - no offensive content, no real-world contact info
Module Hooks & Custom Content
Extensibility System:
biotop Hook:
- Fires: After header, before main bio display
- Purpose: Modules can add content to top of bio
- Receives: $target array (all player data)
biostat Hook:
- Fires: After mount display, before Voldemort Encounters
- Purpose: Add custom statistics to bio display
- Examples: Companion stats, special achievements, custom fields
bioinfo Hook:
- Fires: After bio text, before mute status
- Purpose: Additional informational content
- Use Case: Display module-specific player information
bioend Hook:
- Fires: After entire bio, before page footer
- Purpose: Final opportunity for modules to add content
- Navigation: Can add custom navigation links
Recent Accomplishments Feed
Activity Log:
News Feed Display:
- Header: "Recent accomplishments (and defeats) of [Name]" (purple)
- Source: Pulls from news table (last 100 entries)
- Sorting: ORDER BY newsdate DESC, newsid ASC (newest first)
- Date Headers: Bold green date headers group entries by day
- Date Format: "Day, Mon dd" (e.g., "Mon, Dec 27")
- Entry Color: Green for most entries
What Appears in Feed:
- Forest Fights: "Defeated a [creature name] in the Forbidden Forest"
- Deaths: "Was slain by [creature/player name]"
- Resurrections: "Was resurrected by [method]"
- Level Gains: "Advanced to level [X]"
- Voldemort Encounters: "Defeated Voldemort in an epic encounter!"
- Achievements: Module-specific accomplishments
- Special Events: Holiday events, competitions, etc.
Translation System:
- Translatable: All news entries use translation schema
- Arguments: Serialized arguments allow dynamic sprintf formatting
- Schema Switching: Each entry can use different translation schema
- Multilingual: Supports multiple languages if configured
Activity Stalking:
- See Recent Activity: Check what player has been doing lately
- Gauge Power: Lots of forest kills = active player
- Death Frequency: Many deaths might indicate aggressive but reckless play
- Inactivity Check: No recent entries = dormant account
Donation Feature
Donate on Behalf of Player:
PayPal Integration:
- Only Shows When: Viewing someone else's bio (not your own)
- Display: Large centered section with yellow "Donate via PayPal" button
- Header: "Donate on Behalf of [login]"
- Description: "Click on the yellow Donate via PayPal button below to give [login] points:"
- Item Name: "Hogwarts Live Donation for [name] from [your name] for Donator Points (Virtual Goods)"
How It Works:
- Opens PayPal: New tab/window to PayPal donation page
- Recipient Gets Points: Donated amount converted to site points for target player
- Gifting: Way to support friends or favorite players
- Recognition: Donor name included in transaction record
- Virtual Goods: Points can be spent on in-game perks, items, features
Mute Status Display
Chat Restriction Notices:
If Player Is Muted:
- Display: Mute status message in special color (likely red/orange)
- Temp Mute: Shows time remaining (e.g., "Muted for 3 more hours")
- Perm Mute: "Muted forever" or similar message
- Location: After bio text, before accomplishments feed
- Public Warning: Visible to all players as deterrent/warning
Mute Types:
- Temporary Mute: 1+ hour duration, can be extended by staff
- Permanent Mute: Indefinite chat ban until unmuted by staff
- Reason: May display reason for mute
- Duration Tracking: Stored in mutes table with timestamp
Superuser Options
Admin Controls (Staff Only):
Moderation Tools:
- Temp Mute: Mute player for 1 hour (extendable)
- Perm Mute: Permanently mute player's chat
- Unmute: Remove mute status
- Extend Mute: Add 1 more hour to temp mute
- Block/Unblock: Block player from editing bio
Technical Tools:
- Fix User Navs: Clear stuck navigation/output for player
- Kill Player: Instantly send player to Shades (set alive=0, HP=0)
- Grant Newday: Give player fresh forest fights immediately
- Edit User: Jump to full user editor (user.php)
System Mail:
- Mute Notifications: Auto-sends system mail when muted/unmuted
- Includes Reason: Mute reason included in notification
- Warning Message: Reminds players to follow rules
Navigation & Return Links
Getting Back:
Return Navigation:
- Default: "Return to Hogwarts Students" (links to list.php)
- From list.php: Always returns to player list
- Custom Return: Can specify ?ret=pagename.php to return elsewhere
- Go Back: Generic return link if ret parameter set to non-list page
- Translation Ready: Uses tlschema("nav") for multilingual support
Strategy & Tips
Bio Page Mastery
- Pre-PvP Research: Check level, resurrections, recent activity before attacking
- RP Preparation: Read bio text to learn character personality before interaction
- Pronouns Matter: Always check pronouns before referring to players
- Activity Check: Online/Offline status + recent accomplishments = activity level
- House Membership: See which Common Room they belong to for alliance/rivalry info
- Quick Mail: Use scroll icon instead of navigating to mail manually
- VE Comparison: Compare Voldemort Encounters to gauge relative progression
- Mount Envy: See what mounts other players have collected
- Death Frequency: Many recent deaths = active but vulnerable target
- Specialty Scouting: Know opponents' specialty before PvP (counters/weaknesses)
- Race Bonuses: Different races have different stat distributions
- Public Profile Link: Check extended profile for more social/RP information
- Accomplishment Stalking: 100-entry feed shows detailed recent activity
- Login Name Copy: Get exact login name for mail/friend adds
- Donation Gifts: Surprise friends with donated points via PayPal button
- Resurrection Count: High count = either combat enthusiast or terrible at survival
- No Bio = Newbie: Empty bio often indicates new/inactive player
- Color Code Creativity: Use color codes in your own bio for visual appeal
Technical Details
Behind the Scenes:
Database Queries:
- Player Data: Pulls from accounts table by acctid or login
- Custom Pronouns: Separate query to profiles table if sex=3
- Mount Data: Cached query to mounts table (1 hour cache)
- News Feed: Last 100 entries from news table for accountid
- Mute Status: Check mutes table for active mutes
Caching System:
- Mount Data: db_query_cached() with 3600 second TTL
- Pronouns: Cached for 3600 seconds to reduce database load
- Cache Key Format: "mountdata-{mountid}", "pronounsdata-{acctid}"
Security:
- Bio Sanitization: soap() function cleans bio text
- HTML Entities: htmlentities() for PayPal form to prevent injection
- Return URL: cmd_sanitize() on ret parameter
- Access Control: check_su_access() for admin functions
Player Bio Summary: Access via bio.php?char=[login] or click names from Player List. Header shows "Biography for [Name]" with Write Mail scroll icon and Public Profile link. House membership displays rank (newly sorted/member/prefect/senior member/Head of House). Stats: Username, Title, Level, Status (Online/Offline), Resurrections, Race, Pronouns (He/Him, She/Her, They/Them, custom), Specialty, Mount, Voldemort Encounters (if > 0), Bio text. Module hooks: biotop, biostat, bioinfo, bioend. Recent accomplishments feed shows last 100 news entries grouped by date. Donate via PayPal section (when viewing others). Mute status if applicable. Superuser options for staff. Return navigation to Hogwarts Students (list.php) or custom ret parameter.