Charm Display

Charm stat visibility module with optional self-esteem boost system. Displays charm value in character stats (user opt-in). Shows complimentary title based on charm thresholds with 5 levels. Gender-specific titles: Female progression (Plain → Cute → Pretty → Gorgeous → Beautiful), Male (Plain → Muscular → Handsome → Ravishing → Debonair), Neutral (Simple → Fit → Attractive → Dazzling → Charming). Admin-configurable thresholds + titles. Where the game tells you you're "Dazzling" based on a number in a database.

How It Works

Two Display Options:

  • user_showcharm: Display raw charm number (bool, default 0)
  • user_esteem: Display self-esteem compliment title (bool, default 0)
  • Both are user preferences (players control visibility)
  • Can enable one, both, or neither
  • Added to "Personal Info" section of charstats

Charm Number Display:

  • If user_showcharm = 1: Shows "Charm: [number]"
  • Example: "Charm: 47"
  • Straightforward numerical display
  • Updates in real-time as charm changes

Self-Esteem Title Display:

  • If user_esteem = 1: Shows "Compliment: [title]"
  • Example: "Compliment: Gorgeous" (if female with charm 72)
  • Title calculated based on charm value + gender
  • Uses admin-configured thresholds and labels

Charm Threshold System

Five Levels (Default Thresholds):

  • Level 1: Charm < 10 (Threshold: 10)
  • Level 2: Charm 10-29 (Threshold: 30)
  • Level 3: Charm 30-49 (Threshold: 50)
  • Level 4: Charm 50-69 (Threshold: 70)
  • Level 5: Charm 70+ (No upper limit)

How Thresholds Work:

  • Thresholds define MINIMUM for each level
  • Level 5 = "anything above Level 4 threshold"
  • Example: If charm = 47:
    • 47 >= 10 (passes Level 1)
    • 47 >= 30 (passes Level 2)
    • 47 < 50 (fails Level 3)
    • Result: Level 2 title

Gender-Specific Titles

Female Titles (sex = 1):

  • Level 1: Plain (default, charm < 10)
  • Level 2: Cute (charm 10-29)
  • Level 3: Pretty (charm 30-49)
  • Level 4: Gorgeous (charm 50-69)
  • Level 5: Beautiful (charm 70+)

Male Titles (sex = 0):

  • Level 1: Plain (charm < 10)
  • Level 2: Muscular (charm 10-29)
  • Level 3: Handsome (charm 30-49)
  • Level 4: Ravishing (charm 50-69)
  • Level 5: Debonair (charm 70+)

Neutral/Other Titles (sex = neither 0 nor 1):

  • Level 1: Simple (charm < 10)
  • Level 2: Fit (charm 10-29)
  • Level 3: Attractive (charm 30-49)
  • Level 4: Dazzling (charm 50-69)
  • Level 5: Charming (charm 70+)

All titles admin-configurable via module settings.

Admin Configuration

Threshold Settings:

  • one: Level 1 threshold (int, default 10)
  • two: Level 2 threshold (int, default 30)
  • three: Level 3 threshold (int, default 50)
  • four: Level 4 threshold (int, default 70)
  • Note: "These values mark the MINIMUM of the Level. For Level Five it will be anything above Level Four."

Female Title Settings:

  • onef: Level 1 title (text, default "Plain")
  • twof: Level 2 title (text, default "Cute")
  • threef: Level 3 title (text, default "Pretty")
  • fourf: Level 4 title (text, default "Gorgeous")
  • fivef: Level 5 title (text, default "Beautiful")

Male Title Settings:

  • onem: Level 1 title (text, default "Plain")
  • twom: Level 2 title (text, default "Muscular")
  • threem: Level 3 title (text, default "Handsome")
  • fourm: Level 4 title (text, default "Ravishing")
  • fivem: Level 5 title (text, default "Debonair")

Neutral Title Settings:

  • onegn: Level 1 title (text, default "Simple")
  • twogn: Level 2 title (text, default "Fit")
  • threegn: Level 3 title (text, default "Attractive")
  • fourgn: Level 4 title (text, default "Dazzling")
  • fivegn: Level 5 title (text, default "Charming")

User Preferences

Enabling Display:

  • Navigate to Preferences page
  • Find "Charm Display Preferences" section
  • Options:
    • ☐ Do you wish for Charm to be displayed (shows number)
    • ☐ Do you wish for the Charm to give you a Self Esteem Boost (shows title)
  • Check desired options, save
  • Character stats immediately update

Visibility Combinations:

  • Both disabled: Charm stat completely hidden
  • Showcharm only: See "Charm: 47" (number)
  • Esteem only: See "Compliment: Gorgeous" (title)
  • Both enabled: See both "Charm: 47" AND "Compliment: Gorgeous"

Example Scenarios

Scenario 1: Female Character, Charm 23:

  • Charm value: 23
  • Gender: Female (sex = 1)
  • Level calculation:
    • 23 >= 10 (passes Level 1)
    • 23 < 30 (fails Level 2)
    • Result: Level 1 = "Cute"
  • Display: "Compliment: Cute"

Scenario 2: Male Character, Charm 85:

  • Charm value: 85
  • Gender: Male (sex = 0)
  • Level calculation:
    • 85 >= 70 (passes Level 4)
    • Result: Level 5 = "Debonair"
  • Display: "Compliment: Debonair"

Scenario 3: Neutral Character, Charm 5:

  • Charm value: 5
  • Gender: Neutral (sex ≠ 0 and ≠ 1)
  • Level calculation:
    • 5 < 10 (fails Level 1)
    • Result: Below Level 1 = "Simple"
  • Display: "Compliment: Simple"

Technical Details

charstats Hook:

  • Fires when character stats panel generated
  • setcharstat("Personal Info", "Charm", $amnt) for number
  • setcharstat("Personal Info", "Compliment", $level) for title
  • Both added to same section (grouped display)

Title Calculation Logic:

  • Reads all threshold + title settings
  • Checks $session['user']['sex'] for gender
  • Series of if statements comparing charm to thresholds
  • Last matching threshold determines level
  • Returns appropriate title for gender + level

Gender Detection:

  • if ($session['user']['sex'] == 1) → Female titles
  • else if ($session['user']['sex'] == 0) → Male titles
  • else → Neutral titles (catches all other values)

Customization Ideas

Alternative Title Schemes:

  • Vampiric: Alluring → Mesmerizing → Irresistible → Hypnotic → Enthralling
  • Academic: Bookish → Studious → Scholarly → Erudite → Brilliant
  • Regal: Common → Noble → Elegant → Majestic → Divine
  • Comedic: Awkward → Tolerable → Pleasant → Delightful → Impossibly Sexy

Threshold Adjustments:

  • Tight progression (10/20/30/40/50): More granular levels
  • Steep curve (20/50/100/150/200): Hard to reach top tier
  • Flat (10/15/20/25/30): Easy progression for everyone

Player Strategy

When to Enable:

  • High charm: Show off "Beautiful" or "Debonair" title
  • Roleplay purposes: Display fits character concept
  • Pride in stat investment: Showing off your charm grinding
  • Just like seeing the numbers (stat tracking enthusiasts)

When to Disable:

  • Low charm: Don't want "Plain" or "Simple" displayed
  • Privacy: Don't want others knowing charm value
  • Clutter reduction: Minimize stat panel
  • Don't care: Charm not important to character

Limitations

  • No Mechanical Effect: Titles purely cosmetic (doesn't affect gameplay)
  • Binary Gender: Only 3 title sets (male/female/neutral)
  • Fixed Thresholds: All players use same thresholds (can't personalize)
  • No Negative Titles: Level 1 = "Plain", not "Ugly" (no insults)
  • Static Display: Doesn't show progress to next level

Charm Display: where the game tells you you're "Debonair" because your charm stat hit 70, or "Simple" because it's only 5, as if a number in a database has any bearing on your actual attractiveness. You can optionally display this self-esteem boost in your character stats so everyone knows you're "Gorgeous" (charm 55) instead of merely "Pretty" (charm 35), which is definitely an important distinction that changes absolutely nothing about gameplay. At least the module gives you three gender options for titles: Female gets "Beautiful," Male gets "Debonair," and Neutral gets "Charming" at max level, because even fantasy RPG stat modules need to acknowledge that gender is more complicated than a boolean.