id: wavelength-static engine: dial category: co-op title: "Wavelength: Static" tagline: One-word clues. Narrow targets. And the guesser can only see half the dial. estimatedMinutes: 20 difficulty: 5 players: { min: 2, max: 2 } theme: { primary: "#8338ec", accent: "#3a86ff", background: "#06040d", headingFont: "JetBrains Mono" } roles: A: name: Partner A blurb: You give the clue in odd rounds and guess in even rounds. B: name: Partner B blurb: You guess in odd rounds and give the clue in even rounds. intro: | ☠️ **Nightmare rules.** - Clues are **exactly one word**, and you can **never reuse a word** used earlier in the game. - The guesser only sees the **left** label. The right label is lost in static. Work it out from the clue... and from each other. - The guesser's dial has **no numbers**. - Scoring bands are razor thin. 10 rounds. Three keys. dial: rounds: 10 range: [0, 100] targetMargin: 5 # hidden target is a random integer from 5 to 95 scoring: # distance from target → points (first band that fits) - { within: 2, points: 4 } - { within: 5, points: 3 } - { within: 8, points: 2 } clue: maxWords: 1 maxChars: 30 banLabelWords: true # clue can't contain any word from either label (normalized, case-insensitive) noRepeatWords: true # if true, no clue word may be reused within the game guesserSeesLabels: left # both | left | none guesserSeesNumbers: false # whether the dial shows 0–100 tick numbers to the guesser keys: - { at: 12, name: Static Key } - { at: 20, name: Signal Key } - { at: 26, name: Clear Channel Key } spectra: - { id: s01, left: "Cold", right: "Hot" } - { id: s02, left: "Ordinary", right: "Magical" } - { id: s03, left: "Past", right: "Future" } - { id: s04, left: "Bitter", right: "Sweet" } - { id: s05, left: "Simple", right: "Complicated" } - { id: s06, left: "Silent", right: "Deafening" } - { id: s07, left: "Fake", right: "Genuine" } - { id: s08, left: "Temporary", right: "Permanent" } - { id: s09, left: "Safe", right: "Dangerous" } - { id: s10, left: "Nobody knows it", right: "Everybody knows it" } - { id: s11, left: "Square", right: "Round" } - { id: s12, left: "Fiction", right: "Fact" } - { id: s13, left: "Smooth", right: "Rough" } - { id: s14, left: "Light", right: "Heavy" } - { id: s15, left: "Weird", right: "Normal" } - { id: s16, left: "Sacred", right: "Silly" } - { id: s17, left: "Harmless", right: "Deadly" } - { id: s18, left: "Bad advice", right: "Good advice" } - { id: s19, left: "Introvert", right: "Extrovert" } - { id: s20, left: "Ancient", right: "Brand new" } - { id: s21, left: "Dull", right: "Shiny" } - { id: s22, left: "Soft skill", right: "Hard skill" } - { id: s23, left: "Mainstream", right: "Niche" } - { id: s24, left: "Peaceful", right: "Violent" } - { id: s25, left: "Tasteless", right: "Delicious" } - { id: s26, left: "Low quality", right: "High quality" } - { id: s27, left: "Calm", right: "Panicked" } - { id: s28, left: "Childish", right: "Mature" } - { id: s29, left: "Guilty pleasure", right: "Proud pleasure" } - { id: s30, left: "Overpriced", right: "Bargain" } - { id: s31, left: "Messy", right: "Tidy" } - { id: s32, left: "Rural", right: "Urban" } successEnding: | Through all that static, you still found each other. 📡🔑