Challenges & Community Hooks Jul 11, 2026

5-Night FMOD Desktop Menu Snapshot Spot Challenge Before December Playtest - 2026

2026 FMOD challenge—five nightly gates for menu snapshot RTPC spot checks after state changes, desktop vs WebGL duck table, fmod_menu_snapshot_spot_receipt_v1.json before December playtest.

By GamineAI Team

5-Night FMOD Desktop Menu Snapshot Spot Challenge Before December Playtest - 2026

Pixel-art hero for five-night FMOD desktop menu snapshot spot challenge December playtest 2026

Monday playtest: menu sounds fine. Tuesday hotfix: credits screen adds a new Menu snapshot transition. Wednesday Discord: “combat music on title screen.” Your desktop QA lead ran Combat=1 in Profiler once—never re-spotted after the menu state machine changed.

December 2026 fest teams ship FMOD 2.03 desktop builds while facilitators also test itch WebGL. Bevy menu flush fixes ECS schedule hitches—different failure class. WebGL snapshot playbook fixes integration boot order; playtest snapshot spot preflight owns one-shot duck delta—this Challenges & Community Hooks sprint is the five-night menu RTPC accountability ladder: log before/after menu state bus levels, require WebGL row, file fmod_menu_snapshot_spot_receipt_v1.json—hashtag #FMODMenuSnapshotSpot2026.

Non-repetition note: Lesson 228 owns 90 s itch fest BUILD_RECEIPT; menu snapshot after state change preflight (Guide) forward owns ninety-second P1–P6; Lesson 275 forward owns BUILD_RECEIPT milestone. This URL is five-night facilitator rhythm before December pins.

Why this matters now (December 2026)

  1. Menu state changes nightly — Settings, credits, and options screens alter RTPC curves without combat code changes.
  2. Desktop-only spot checks lie — Half your cohort plays WebGL on itch.
  3. Fest hitches ≠ loud busesBevy flush Lesson 259 is frame timing; this challenge is snapshot/RTPC truth.
  4. Playtest threads amplify audio bugs — One loud menu clip becomes “game is broken.”
  5. BUILD_RECEIPT rowsThursday row review needs menu_snapshot_spot_ok beside demo_smoke.

Direct answer: Five weeknights (~15 minutes each); gates P1–P6; artifacts under release-evidence/audio/menu-snapshot-challenge/; file fmod_menu_snapshot_spot_receipt_v1.json with five_night_ladder; no December playtest pin until P6 and WebGL row pass.

Who this challenge is for

Audience You will…
Beginner Log one RTPC screenshot before/after opening menu
Audio lead Stop trusting Monday spot on Friday build
Producer Block playtest pin until Night 5 receipt
Working dev Wire desktop + WebGL rows in one JSON

Engines: FMOD 2.03 + Unity/Godot desktop + itch WebGL export.
Time: ~75 minutes total over five nights (15 min/night).

Challenge vs playbook vs fest lesson (format ladder)

Artifact Role
This challenge 5-night menu RTPC spot ladder + #FMODMenuSnapshotSpot2026
WebGL snapshot playbook W1–W6 integration boot
Playtest spot preflight One-shot duck delta (cousin schema)
Bevy menu hitch blog ECS schedule graph
Lesson 228 itch fest BUILD_RECEIPT
Lesson 275 forward Menu spot BUILD_RECEIPT

Order: WebGL boot receipts GREEN → this 5-night ladder when menu states change mid-week → Wednesday smoke on same build_label.

Before you start — readiness checklist

  • [ ] release-evidence/audio/menu-snapshot-challenge/ folder exists
  • [ ] FMOD Studio 2.03 project pinned in build_label README
  • [ ] Menu snapshots documented: Menu, Explore, Combat (names match code)
  • [ ] Desktop playtest build with visible build label
  • [ ] itch WebGL URL on same build_label
  • [ ] Profiler or bus meter access for RTPC screenshots
  • [ ] Producer agrees: no Discord playtest pin until Night 5 receipt filed

Do not run the ladder on a week with zero menu changes—the challenge proves spot after state change, not generic audio hygiene.

Rules of the challenge

  1. One owner signs each night (night_N_pass).
  2. Fail stops the ladder—do not start Night 4 if Night 3 menu RTPC drifted > 2 dB without documented intent.
  3. WebGL row required on Night 4—desktop-only pass does not count.
  4. Post nightly progress with #FMODMenuSnapshotSpot2026.
  5. Pair Friday Block 5: menu_snapshot_spot_ok Y/N.

Five-night calendar at a glance

Night Gates Primary artifact Pass signal
Night 1 (Mon) P1–P2 menu_rtpc_baseline_v1.json Snapshot names pinned + pre-menu RTPC logged
Night 2 (Tue) P3 menu_open_spot_desktop.png After main menu OnEnter RTPC within spec
Night 3 (Wed) P4 submenu_state_spot_desktop.png Settings/credits transition spot
Night 4 (Thu) P5 menu_loop_webgl_spot.json Cold-tab WebGL menu loop within 1.5 dB of desktop
Night 5 (Fri) P6 fmod_menu_snapshot_spot_receipt_v1.json menu_snapshot_spot_ok: true + BUILD_RECEIPT row

Weekend between nights is allowed—re-run the prior night if menu code changed.

Beginner path — nightly 15-minute devlog

Night 1 tweet template:

Night 1/5 #FMODMenuSnapshotSpot2026 — pinned Menu/Explore/Combat snapshot names + menu RTPC baseline logged. build_label: december-playtest-2026-rc1

Night 4 trap: Click game canvas, not browser chrome—cousin to gesture parity preflight.

Nights 2–5 devlog templates:

Night 2/5 #FMODMenuSnapshotSpot2026 — main menu OnEnter RTPC spot desktop GREEN. Combat snapshot on title: NO. screenshot: menu_open_spot_desktop.png

Night 3/5 #FMODMenuSnapshotSpot2026 — settings submenu RTPC drift 0.8 dB vs Night 2. credits screen: PASS P4.

Night 4/5 #FMODMenuSnapshotSpot2026 — WebGL cold-tab 60 s menu loop. delta vs desktop: 0.6 dB (≤1.5). gesture: canvas click.

Night 5/5 #FMODMenuSnapshotSpot2026 — filed FMOD_MENU_SNAPSHOT_SPOT_RECEIPT.json. menu_snapshot_spot_ok: true. playtest pin: ALLOWED.

Posting all five threads creates a public audit trail—producers can verify you did not skip WebGL on Night 4.

Night-by-night failure modes (working dev)

Night Common fail Fix without restarting ladder
1 Snapshot renamed in Studio, code stale Update RegisterSnapshots() list; re-run Night 1 only
2 Combat audible on title Audit menu scene Combat RTPC default; fix code; re-run 2–5
3 Credits music +2 dB surprise Intentional? Document in receipt notes[]; else fix snapshot blend
4 WebGL delta 3 dB Re-check canvas gesture; compare bank list vs desktop
5 jq gate fails Trace which gates.P* is false—do not set menu_snapshot_spot_ok manually

Fail-closed: If Night 4 fails, do not paste itch URL to Discord—even if desktop Nights 2–3 passed Monday.

Developer path — gates P1–P6

Gate Check Fail when
P1 Snapshot names match Studio export Code registers stale snapshot after menu refactor
P2 Pre-menu RTPC baseline No screenshot/log before first menu open
P3 Desktop after main menu OnEnter Combat bus auditions on title without input
P4 Desktop after submenu state Credits/settings RTPC drift > 2 dB undocumented
P5 WebGL menu loop spot Delta > 1.5 dB vs desktop or loud pre-gesture
P6 fmod_menu_snapshot_spot_receipt_v1.json menu_snapshot_spot_ok false at playtest pin

Night 1 — menu_rtpc_baseline_v1.json (P1–P2)

{
  "schema": "menu_rtpc_baseline_v1",
  "build_label": "december-playtest-2026-rc1",
  "fmod_studio_version": "2.03.xx",
  "snapshots": ["Menu", "Explore", "Combat"],
  "rtpc_before_menu_open": {
    "master_bus_db": -12.4,
    "music_bus_db": -18.2,
    "sfx_bus_db": -24.0
  },
  "profiler_screenshot": "release-evidence/audio/menu-snapshot-challenge/night1_baseline.png"
}

Night 2–3 — desktop spot protocol (P3–P4)

  1. Boot desktop build from cold start.
  2. Before first menu open—confirm P2 baseline still matches (±0.5 dB).
  3. Open main menu—capture Profiler screenshot (P3).
  4. Navigate to Settings or Credits—capture second screenshot (P4).
  5. Log whether Combat snapshot triggered—must be false on title without gameplay input.

Red flag: Bevy menu hitch one-frame stall with correct RTPC—fix schedule separately; still file spot receipt.

Night 4 — WebGL menu loop (P5)

{
  "schema": "menu_webgl_spot_v1",
  "build_label": "december-playtest-2026-rc1",
  "browser": "chrome_guest",
  "pre_gesture_silent": true,
  "gesture_probe": "pointerdown_on_canvas",
  "menu_loop_seconds": 60,
  "desktop_menu_music_db": -18.2,
  "webgl_menu_music_db": -17.6,
  "delta_db": 0.6,
  "within_tolerance": true,
  "combat_snapshot_heard_on_menu": false
}

Tolerance 1.5 dB matches Lesson 228 F5 parity—cousin row, not merged schema.

Night 5 — fmod_menu_snapshot_spot_receipt_v1.json (P6)

{
  "schema": "fmod_menu_snapshot_spot_receipt_v1",
  "build_label": "december-playtest-2026-rc1",
  "fmod_studio_version": "2.03.xx",
  "five_night_ladder": {
    "night1": "pass",
    "night2": "pass",
    "night3": "pass",
    "night4": "pass",
    "night5": "pass"
  },
  "menu_state_spots": {
    "main_menu_on_enter_db": -18.0,
    "settings_submenu_db": -19.2,
    "credits_submenu_db": -20.1
  },
  "surfaces": {
    "desktop_playtest": { "menu_music_db": -18.2, "pass": true },
    "webgl_itch_playtest": { "menu_music_db": -17.6, "pass": true }
  },
  "cousin_receipts": {
    "fmod_webgl_snapshot": "release-evidence/audio/FMOD_WEBGL_SNAPSHOT_RECEIPT.json",
    "fmod_playtest_snapshot_spot": "release-evidence/audio/FMOD_PLAYTEST_SNAPSHOT_SPOT_RECEIPT.json"
  },
  "gates": {
    "P1_snapshot_names": "pass",
    "P2_baseline": "pass",
    "P3_menu_on_enter": "pass",
    "P4_submenu_state": "pass",
    "P5_webgl_row": "pass",
    "P6_receipt": "pass"
  },
  "menu_snapshot_spot_ok": true,
  "december_playtest_pin_allowed": true
}

Pin under release-evidence/audio/FMOD_MENU_SNAPSHOT_SPOT_RECEIPT.json.

Fail-closed jq:

jq -e '.menu_snapshot_spot_ok == true' release-evidence/audio/FMOD_MENU_SNAPSHOT_SPOT_RECEIPT.json

BUILD_RECEIPT row (after P6)

{
  "build_label": "december-playtest-2026-rc1",
  "menu_snapshot_spot_ok": true,
  "fmod_menu_snapshot_spot_receipt_path": "release-evidence/audio/FMOD_MENU_SNAPSHOT_SPOT_RECEIPT.json",
  "demo_smoke": "pending_wednesday"
}

RTPC spot table (fill every night)

State transition Desktop (dB) WebGL (dB) Δ Pass
Pre-menu baseline P2
Main menu OnEnter P3
Settings open ≤2 vs P3 P4
60 s menu loop ≤1.5 P5

Proof table

Evidence Path Proves
Baseline menu_rtpc_baseline_v1.json P1–P2
Desktop spots night2_*.png, night3_*.png P3–P4
WebGL spot menu_webgl_spot_v1.json P5
Receipt FMOD_MENU_SNAPSHOT_SPOT_RECEIPT.json P6

Scenarios A–G

ID Situation Action
A First December playtest week Run full five nights
B No menu changes Skip—document waiver
C Menu code changed Night 3 Re-run Nights 2–5
D Desktop pass, WebGL fail Night 4 only—gesture/canvas
E Hitch + loud bus Bevy flush + this ladder
F itch only cohort Still require P5 WebGL row
G Pin without receipt Block—P6

Common mistakes

  1. Combat=1 on title — P3 fail.
  2. Spot once Monday, ship Friday — re-run after state changes.
  3. Desktop-only Discord pin — P5 required.
  4. Merge with fmod_playtest_snapshot_spot_receipt — cousin paths only.
  5. Confuse with WebGL boot W-gatesplaybook first.
  6. Skip Night 3 when credits screen added—P4 catches RTPC drift.

Troubleshooting

Symptom Lane
Loud combat on menu desktop P3 snapshot trigger audit
WebGL flat, desktop OK WebGL bank-load W3
Pre-click loud WebGL Gesture parity G2–G5
One-frame hitch, audio OK Bevy menu flush
Wrong build in thread Lesson 201

Facilitator README snippet

## December playtest audio pin

1. Confirm Night 5 `FMOD_MENU_SNAPSHOT_SPOT_RECEIPT.json` GREEN.
2. Paste itch URL only after P5 WebGL row passes.
3. Attach duck table screenshot to Discord pin.
4. Separate `#audio` from `#hitch`—link Bevy flush if frames, this receipt if buses.

Menu state vs hitch decision tree (developer)

Playtest reports "menu feels broken"
├─ One-frame pop / empty UI frame? → [Bevy schedule blog](/blog/bevy-0-17-ecs-plugin-schedule-order-debug-fest-demo-menu-hitch-2026) + Lesson 259 flush
├─ Combat music on title / loud buses? → This 5-night challenge (P3–P5)
├─ Silent WebGL until click? → [WebGL playbook W4](/blog/fmod-2-03-bus-snapshots-silent-webgl-after-integration-upgrade-2026)
├─ Silent after click? → [Bank-load preflight W3](/guides/fmod-studio?chapter=fmod-2-03-webgl-bus-snapshot-registration-after-bank-load-preflight-2026-preflight)
└─ Wrong build in thread? → [Lesson 201 build_label](/courses/ai-powered-rpg-game/lessons/201-triple-channel-html5-build-label-and-channel-label-match-receipt-2026-rpg-live-ops)

Facilitators should tag Discord threads with hitch vs bus before engineers open Profiler—saves half the December triage week.

Cousin receipt pairing matrix

Schema When This challenge
fmod_webgl_snapshot_receipt_v1 Boot registration Prerequisite—Night 4 assumes W6 GREEN
fmod_playtest_snapshot_spot_receipt_v1 One-shot duck delta Cousin path in P6 cousin_receipts
fmod_webgl_fest_snapshot_receipt_v1 90 s itch fest Lesson 228—after this ladder for fest pin
fmod_menu_snapshot_spot_receipt_v1 Menu state RTPC spots This URL

Do not merge JSON—reference paths only on BUILD_RECEIPT.

Producer time-box (December fest week)

Day Audio task Minutes
Mon Night 1 baseline 15
Tue Night 2 after menu merge 15
Wed Night 3 if credits/settings ship 15
Thu Night 4 WebGL + Wednesday smoke 25
Fri Night 5 receipt + Thursday review 20

Pair founder time-box worksheet—audio spot nights are engineering floor, not marketing deferrals.

Tools and sibling reads

Key takeaways

  1. Five nights—menu RTPC spots after state changes, not one Monday Profiler pass.
  2. fmod_menu_snapshot_spot_receipt_v1 is distinct from fmod_playtest_snapshot_spot_receipt_v1.
  3. Night 4 WebGL row is mandatory for mixed desktop + itch cohorts.
  4. 1.5 dB tolerance aligns with Lesson 228 fest parity cousin.
  5. Bevy menu hitch fixes frames; this challenge fixes buses.
  6. Guide #37 forward is ninety-second recap when shipped.
  7. Lesson 275 forward promotes BUILD_RECEIPT column.
  8. #FMODMenuSnapshotSpot2026 — community accountability hook.
  9. Pair Thursday row review on Night 5.
  10. Forward Unreal OTLP case study when Q4 diligence runs same week.

FAQ

Same as Lesson 228?
228 = 90 s itch fest session; this challenge = five-night menu RTPC before playtest pin.

Same as playtest spot preflight?
Preflight = one-shot duck; this challenge = nightly after menu state changes.

Same as WebGL playbook?
Playbook = W1–W6 boot; this challenge = menu loop RTPC after boot GREEN.

Can we run 3 nights instead of 5?
Minimum 1+3+4+5 if no submenu changes—document waiver for Night 3.

Wwise teams?
Adapt RTPC spot table; keep receipt schema lanes separate per engine.

Does this replace Wednesday smoke?
No—smoke proves binary golden path; this challenge proves menu audio on same build_label.

What if only Steam desktop playtest?
Still run Nights 1–3; document F waiver for P5 with producer sign-off on receipt.

Conclusion

December playtest audio bugs cluster around menu state changes facilitators never re-spotted. Five nights: baseline, desktop OnEnter, submenu transition, WebGL row, receipt—then pin.

Next reads: menu snapshot after state change preflight (Guide), playtest snapshot spot preflight, Lesson 275 forward, WebGL snapshot playbook, Wednesday smoke.

Log Night 1 baseline before you paste the December playtest link—not after the #audio-broken thread.