Preferences (Game Settings)
Customize your HogwartsLive experience. Change password, email, timestamps, notifications, bio, and module-specific settings. Make the magical world yours.
What Are Preferences?
The Preferences page (prefs.php) is your personal control panel for customizing how HogwartsLive looks, behaves, and communicates with you. Think of it as the magical equivalent of a Remembrall crossed with a wardrobe mirror crossed with a very organized filing cabinet - except instead of remembering what you've forgotten, it remembers exactly how you want your game experience configured. Change your password, adjust email notifications, select visual themes, set your timezone (or let your device decide), edit your character bio, and configure dozens of module-specific options.
Preferences are divided into categories: Account Preferences (password, email), Display Preferences (UI layout), and Game Behavior Preferences (notifications, timestamps, commentary behavior). Modules can add their own preference sections, creating a dynamic system that grows with the features you use. All changes are saved immediately when you click Submit and take effect right away.
Accessing Preferences
How to Get There:
- Navigation Link: "Preferences" appears in main navigation menu
- Alive Players: Can access from village navigation
- Dead Players: Can still access preferences (return link goes to news)
- Public Profile Link: "View Your Public Profile" link also provided (alive players only)
- Direct URL: prefs.php
Account Preferences
Security & Contact:
Password:
- Two Fields: "Password" and "Retype" must match
- Minimum Length: 4 characters (will show error if shorter)
- Encryption: MD5 hashed before submission (network sniffing protection)
- Storage Hash: Server runs that MD5 value through bcrypt for storage, not a second plain MD5 pass - a materially stronger scheme than the old double-MD5 the game shipped with. Any account still holding a legacy double-MD5 hash gets it quietly upgraded to bcrypt the next time it logs in successfully
- Leave Blank: If you don't want to change password, leave both fields empty
- Confirmation: "Your password has been changed." on success
- Error Messages: "Your passwords do not match." or "Your password is too short. It must be at least 4 characters."
- JavaScript Validation: Client-side check before submission
Email Address:
- Validation: Must be valid email format (checked by is_email() function)
- Server Restrictions: If Config::requirevalidemail=1, email changes blocked
- Locked Email Message: "Your email cannot be changed, system settings prohibit it. Use the Petition link to ask the server administrator to change your email address if this one is no longer valid."
- Purpose: Used for Owl Post notifications, password recovery, system announcements
- Privacy: Email never displayed publicly to other players
- Optional: If Config::requireemail=0, email can be invalid/blank
- Confirmation: "Your email address has been changed." on success
Display Preferences
Visual Customization:
Show Config Sections in Tabs:
- Type: Boolean (checkbox)
- Default: True (enabled)
- Purpose: Organizes preference form into tabbed sections
- When Disabled: All preferences show as single long form
- Recommendation: Keep enabled for easier navigation
Show in Chat As:
- Field: chatdisplaymode
- Type: Enum (dropdown with 2 options)
- Option - Club Tag (if you're in one): Default. Shows your Club's tag (e.g.
<C42>, in the Club's own color) next to your name in chat instead of your House tag. - Option - House Tag: Shows your House tag (
<GRY>,<HUF>,<RAV>,<SLY>) instead, as chat always did before Clubs existed. - Fallback: If your preferred one isn't available — you're in no Club, or you haven't been Sorted yet — chat quietly shows whichever tag you actually have instead of showing nothing.
- Interacts with: "Hide house tags in chat?" — enabling that hides whichever tag this preference selects, House or Club.
Game Behavior Preferences
Gameplay Customization:
Email Notifications:
- Send email when you get new owl?: Boolean - receive email notifications for Owl Post
- Send email for system generated messages?: Boolean - receive emails for system messages
- Use Case: Stay notified of messages even when not logged in
- Note: Requires valid email address set
Allow Profanity in Received Owls:
- Field: dirtyemail
- Type: Boolean (checkbox)
- When Enabled: Profanity filter disabled for mail you receive
- When Disabled: Profanity in received Owl Post censored
- Default: Usually disabled (censored)
- Note: Doesn't affect outgoing mail or commentary
Timestamp Display:
- Type: Enum (dropdown with 3 options)
- Option 0 - None: No timestamps shown in commentary
- Option 1 - Real Time: Shows actual date/time (e.g., "12/25 1:27pm")
- Option 2 - Relative Time: Shows time elapsed (e.g., "1h35m", "2 days ago")
- Affects: Commentary timestamps across all chat areas
- Personal Preference: Doesn't affect what others see
Timezone:
- Field: timezone
- Type: Enum (dropdown of named timezones)
- Default: Automatic - your device's own clock is detected and used, no configuration required
- Override: Pick a named zone (e.g., America/New_York) only if you want times shown in a clock that isn't your device's
- DST: Handled automatically; the realm does not observe a separate Daylight Saving negotiation with you
- How it works: The server records every event in one universal time and your browser quietly translates it into yours. Two players reading the same message see the same instant, each in their own clock.
- Affects: Chat, Owl Post, forum posts, receipts, and other readable timestamps throughout the game
- Retired: The old free-form format string and manual hour-offset fields are gone; they did, on reflection, less than they claimed.
Don't Jump to Comment Areas:
- Field: nojump
- Type: Boolean (checkbox)
- When Enabled: Page doesn't auto-scroll to commentary after posting/refreshing
- When Disabled: Automatically scrolls to commentary section (default behavior)
- Use Case: Prefer to stay at top of page after commenting
- Anchor Tags: Disables #commentary anchor jumping
Character Biography
Bio Editing:
Short Character Biography:
- Field: bio
- Type: String (255 character maximum)
- Display: Shows on your player biography page (bio.php)
- Public: Visible to all players
- Content: Character description, personality, backstory, RP preferences
- Sanitization: comment_sanitize() removes unsafe content
- Color Codes: Supports LoGD backtick color formatting
- Timestamp: biotime updated when bio changes
Bio Blocking:
- Admin Lock: Admins can block bio editing (biotime > "9000-01-01")
- Blocked Message: "You cannot modify your bio. It has been blocked by the administrators!"
- Reason: Usually for inappropriate content violations
- Appeal: Use Petition system to request unblock
Module Preferences
Dynamic Module Settings:
How Module Prefs Work:
- Auto-Discovery: System queries modules with 'prefs' infokey
- Namespace: Module prefs prefixed with "modulename___setting"
- Types: user_* (user-editable) and check_* (permission-based)
- Sections: Modules can add titled sections to form
- Storage: Saved in module_userprefs table
- Per-User: Each player has own module preference values
Module Pref Examples:
- Combat Modules: Auto-use healing items, preferred spell selection
- Notification Modules: Alert preferences, spam filtering
- UI Modules: Display options, layout preferences
- Feature Modules: Feature-specific toggles and settings
Hooks:
- checkuserpref Hook: Modules can validate/modify pref before display
- notifyuserprefchange Hook: Called when module pref changes
- Dynamic Defaults: Modules can set conditional defaults
- Permission Checks: check_* prefs can be gated by permissions
Strategy & Tips
Preferences Optimization
- Change Password Regularly: Good security practice, especially if account shared
- Valid Email Important: Needed for password recovery and notifications
- Timezone: Leave it on Automatic and your device's clock is used; only override if you want a different one
- Relative Timestamps: "1h35m ago" more useful than "12/25 1:27pm" for active chat
- Email Notifications: Enable for Owl Post if you want offline notifications
- Disable System Emails: If you get too many, turn off system message emails
- Profanity Filter: Keep enabled unless you prefer uncensored mail
- No Jump Pref: Enable if commentary auto-scroll annoys you
- Tab Config: Keep enabled for organized preference display
- Bio Editing: Use all 255 characters - make your character memorable
- Color Codes in Bio: Backtick codes work - use sparingly for emphasis
- Module Prefs: Explore module sections - they often have useful options
- Save After Each Section: Submit button saves all changes at once
- Password Length: 4 character minimum is low - use longer for security
- JavaScript Required: Password encryption requires JS enabled
Preferences Summary: Access via prefs.php to customize game settings. Account: Password (4+ chars, MD5 hashed), Email (validated, may be locked). Display: Tab Config (default true). Game Behavior: Email on Owl Post, System mail, Profanity filter (dirtyemail), Timestamps (None/Real/Relative), Timezone (Automatic device-clock default, optional named override; the browser localizes server time), No jump to comments. Bio: 255 char max, public, can be admin-blocked. Module prefs: user_* and check_* settings, modulename___setting namespace, stored in module_userprefs. Save process: Change detection via serialized oldvalues, selective updates, Settings Saved confirmation. Security: Client MD5 hash, server bcrypts that MD5 value for storage (legacy double-MD5 hashes auto-upgrade to bcrypt on next successful login), comment_sanitize() for bio, is_email() validation. Form uses showform(), JavaScript md5pass() for password encryption.