{ "screenSize": { "width": { "value": 1536, "type": "number", "description": "Game width in pixels" }, "height": { "value": 1024, "type": "number", "description": "Game height in pixels" } }, "debugConfig": { "debug": { "value": false, "type": "boolean", "description": "Enable debug mode" }, "skipDialogue": { "value": false, "type": "boolean", "description": "Skip dialogue (debug)" } }, "renderConfig": { "pixelArt": { "value": true, "type": "boolean", "description": "Enable pixel art rendering" } }, "gameplayConfig": { "textSpeed": { "value": 22, "type": "number", "description": "Typewriter speed (ms per character)" }, "autoAdvanceDelay": { "value": 0, "type": "number", "description": "Auto-advance delay (0 = manual)" }, "defaultMusicVolume": { "value": 0.3, "type": "number", "description": "Music volume (0-1)" }, "defaultSFXVolume": { "value": 0.5, "type": "number", "description": "SFX volume (0-1)" } }, "battleConfig": { "playerMaxHP": { "value": 100, "type": "number", "description": "Player starting max HP" }, "enemyMaxHP": { "value": 80, "type": "number", "description": "Enemy starting max HP" }, "handSize": { "value": 3, "type": "number", "description": "Cards drawn per turn" }, "quizTimeLimit": { "value": 0, "type": "number", "description": "Quiz time limit in seconds (0 = none)" }, "comboTiers": { "value": [ { "minStreak": 0, "multiplier": 1.0, "label": "" }, { "minStreak": 2, "multiplier": 1.2, "label": "GOOD" }, { "minStreak": 4, "multiplier": 1.5, "label": "GREAT" }, { "minStreak": 6, "multiplier": 2.0, "label": "PERFECT" } ], "type": "array", "description": "Combo multiplier tiers" } }, "dialogueConfig": { "boxWidth": { "value": 900, "type": "number", "description": "Dialogue box width" }, "boxHeight": { "value": 150, "type": "number", "description": "Dialogue box height" }, "boxY": { "value": 650, "type": "number", "description": "Dialogue box Y position" }, "backgroundAlpha": { "value": 0.85, "type": "number", "description": "Dialogue box background opacity" } }, "audioConfig": { "backgroundMusicKey": { "value": "", "type": "string", "description": "Default background music key" }, "clickSFXKey": { "value": "", "type": "string", "description": "Button click sound key" } }, "characterSelectConfig": { "enabled": { "value": false, "type": "boolean", "description": "Enable character select" }, "maxColumns": { "value": 4, "type": "number", "description": "Grid columns" }, "cardWidth": { "value": 180, "type": "number", "description": "Character card width" }, "cardHeight": { "value": 240, "type": "number", "description": "Character card height" } }, "dualPlayerConfig": { "enabled": { "value": false, "type": "boolean", "description": "Enable 2-player mode" }, "mode": { "value": "BUZZER_RACE", "type": "string", "description": "PVP mode type" }, "scoreToWin": { "value": 10, "type": "number", "description": "Score needed to win" }, "correctPoints": { "value": 1, "type": "number", "description": "Points for correct answer" }, "wrongPenalty": { "value": 0, "type": "number", "description": "Points deducted for wrong answer" }, "buzzerTimeLimit": { "value": 10000, "type": "number", "description": "Buzzer time limit (ms)" } }, "mafiaConfig": { "playerCount": { "value": 7, "type": "number", "description": "Total seats at the table" }, "mafiaCount": { "value": 2, "type": "number", "description": "Number of Mafia roles" }, "detectiveCount": { "value": 1, "type": "number", "description": "Number of Detective roles" }, "doctorCount": { "value": 1, "type": "number", "description": "Number of Doctor roles" }, "villagerCount": { "value": 3, "type": "number", "description": "Number of Villager roles" }, "phaseBannerHoldMs": { "value": 1500, "type": "number", "description": "Phase banner transition duration" }, "initialSuspicion": { "value": 10, "type": "number", "description": "Initial AI suspicion score" }, "suspicionSilenceWeight": { "value": 2, "type": "number", "description": "Suspicion for silence" }, "suspicionAccusationWeight": { "value": 4, "type": "number", "description": "Suspicion vs accused" }, "suspicionCounterAccuseWeight": { "value": 5, "type": "number", "description": "Suspicion for counter-accuse" }, "suspicionVoteTownWeight": { "value": 3, "type": "number", "description": "Suspicion for voting Town" }, "suspicionVoteMafiaWeight": { "value": -4, "type": "number", "description": "Suspicion drop for voting Mafia" }, "suspicionContradictionWeight": { "value": 8, "type": "number", "description": "Suspicion for contradicted claim" }, "suspicionProtectedPartnerWeight": { "value": -6, "type": "number", "description": "Mafia avoid partner weight" }, "suspicionDetectiveHintWeight": { "value": 6, "type": "number", "description": "Detective hint pressure" }, "aiConfidenceRevealThreshold": { "value": 18, "type": "number", "description": "Detective reveal threshold" }, "aiVoteThreshold": { "value": 14, "type": "number", "description": "AI vote threshold" }, "aiMafiaRedirectThreshold": { "value": 12, "type": "number", "description": "Mafia redirect threshold" }, "maxDiscussionLinesPerAI": { "value": 2, "type": "number", "description": "Max AI chat lines per discussion" } } }