Lesson 218: Godot Deck Static Menu Render Scale Receipt on BUILD_RECEIPT (2026)

Direct answer: File deck_static_menu_receipt_v1.json on BUILD_RECEIPT only after Godot Deck static menu preflight passes D1–D6, you export an installed Steam Deck build, and a 15-minute MangoHud idle log sets gpu_idle_smoke_pass: true—continuing from Lesson 217 H1 capstone into H2 fest hardening.

Lesson hero for Godot Deck static menu render scale receipt on BUILD_RECEIPT

Why this matters now (July 2026 Deck fest menus)

July 2026 teams close H1 trust with Lesson 217 then promote fest builds whose title menus still peg GPU despite green menu_fps_cap_receipt rows. The MangoHud recovery case study separates FPS overlay from GPU %; menu FPS opinion sets policy.

This lesson is the first H2 2026 milestone—it does not repeat Lesson 205 protocol alone; it requires Godot export discipline (static camera, render scale, menu max_fps) plus Deck install smoke before deck_static_menu_receipt promotes. October 2026 letterboxing after desk play is Lesson 255 (deck_aspect_reset_receipt)—parallel column, not a substitute.

Beginner path (Godot audit + Deck idle)

Step Action Success check
1 Pass guide D1–D6 on menu scene deck_static_menu_receipt draft GREEN
2 Export Windows/Deck depot for fest menu build Not editor F5 only
3 Install from Steam on Deck Same build_label as receipt
4 MangoHud log 15 min idle on title menu idle_menu_mangohud.log archived
5 Peak GPU % below team threshold gpu_idle_smoke_pass: true
6 Merge into menu_fps_cap_receipt if separate Both columns agree
7 Pin receipt on BUILD_RECEIPT D6 pass

Time: ~25 min Godot preflight + 15 min mandatory idle + ~25 min first-time export—65 minutes total.

Developer path (gates D1–D6)

Gate Check Fail when
D1 Menu scene path matches export Wrong entry scene
D2 Camera static (guide audit) Transform keys on idle
D3 render_scale_menu ≤ policy 1.0 on UI-heavy Deck menu
D4 menu_target_fps on boot Uncapped after autoload
D5 VFX/SubViewport idle Particles spinning under logo
D6 Deck idle smoke + receipt GPU peak over threshold

Inherit Godot preflight (do not duplicate)

Copy values from Deck static menu guide—lesson adds BUILD_RECEIPT + installed Deck proof only. Unreal SKUs: use UE 5.6 Deck fest static lighting preflight with the same deck_static_lighting_receipt_v1 schema.

Fifteen-minute idle protocol (D6)

Minute block Action
0–1 Launch installed build; reach title menu
1–16 No input except one brightness check; MangoHud logging
16 Stop log; record mangohud_gpu_percent_15min_peak

Pass example policy: peak GPU < 50% on Steam Deck OLED for UI-only menu (set your studio number in #perf-deck).

Crosswalk Lesson 205 mangohud_idle_recovery_receipt_v1.json when recovery fixes were required.

deck_static_menu_receipt_v1.json

{
  "schema": "deck_static_menu_receipt_v1",
  "build_label": "deck-fest-2026-rc9",
  "menu_scene_path": "res://scenes/main_menu.tscn",
  "menu_target_fps": 60,
  "render_scale_menu": 0.85,
  "camera_static_audit": "release-evidence/deck/menu_camera_static.png",
  "vfx_idle_discipline": "particles_off_subviewport_paused",
  "idle_test_minutes": 15,
  "mangohud_gpu_percent_15min_peak": 42,
  "gpu_idle_smoke_pass": true,
  "menu_fps_cap_pass": true,
  "gates": {
    "D1_menu_scene": "pass",
    "D2_camera_static": "pass",
    "D3_render_scale": "pass",
    "D4_max_fps": "pass",
    "D5_vfx_idle": "pass",
    "D6_deck_idle_smoke": "pass"
  },
  "paired_receipts": {
    "menu_fps_cap": "release-evidence/deck/MENU_FPS_CAP_RECEIPT.json",
    "mangohud_idle": "release-evidence/deck/MANGOHUD_IDLE_RECOVERY.json"
  },
  "promotion_allowed": true
}

Pin under release-evidence/deck/DECK_STATIC_MENU_RECEIPT.json.

BUILD_RECEIPT columns

Column Value
deck_static_menu_receipt Path + pass/fail
render_scale_menu e.g. 0.85
gpu_idle_smoke_pass true after D6
menu_fps_cap_pass Must not contradict D6
build_label Fest Deck row

Thursday row review — add deck_static_menu_receipt beside menu_fps_cap_receipt.

Proof table (Deck menu week)

build_label render scale FPS cap GPU peak 15m Promote?
deck-fest-2026-rc9 0.85 60
deck-fest-2026-rc8 (old) 1.0 60 99 blocked

Key takeaways

  1. FPS cap ≠ GPU idle—file both columns.
  2. Godot preflight is editor truth; Deck install is promotion truth.
  3. render_scale_menu is menu-only—do not blur combat scenes.
  4. Static camera means no transform keys—not “barely moving” cinematic drift.
  5. Lesson 205 owns recovery narrative; 218 owns BUILD_RECEIPT wiring for H2.
  6. H1 capstone (217) stays required—H2 does not replace trust receipts.
  7. Lesson 219 continues H2 with Unity string tables—not Deck perf.

Prerequisites

Common mistakes

  • Filing receipt after editor play only—Deck install never tested.
  • Skipping render scale because “menu looks fine on PC.”
  • Leaving animated Camera3D for “premium feel” on Deck.
  • Setting gpu_idle_smoke_pass: true without 15-minute log file.
  • Promoting when H1 217 capstone still RED.

Troubleshooting

Symptom Lane
FPS 60, GPU 99% Guide D2–D5 + Lesson 205 recovery
Receipt GREEN, players say hot Re-run D6 on installed build
Gameplay blurry Render scale applied globally—scope to menu scene
Planned help #12 MangoHud GPU fix when live

Mini exercise (60 minutes)

  1. Fail D3 intentionally (scale 1.0)—confirm promotion blocked.
  2. Fix per guide; re-export Deck build.
  3. Run 15-minute MangoHud idle; archive log.
  4. File deck_static_menu_receipt_v1.json.
  5. Add BUILD_RECEIPT row; run Thursday review.

Continuity — H2 2026 arc (218–223)

Lesson Receipt focus
218 (this) Deck static menu + gpu_idle_smoke_pass
219 Addressables string tables
220 VOD concat batch
221 Facilitator amendment
222 CORP/COEP fest HTML5
223 H2 capstone (arc close)

Prior arc: H1 212–217.

Next: Lesson 219 — Unity Addressables string table fest receipt.

FAQ

Unity-only RPG, no Godot menu?
deck_static_menu_receipt may be n/a with engine note—still run Deck idle smoke on your menu scene if you ship Deck.

Same build_label as H1 receipts?
Yes—H2 rows extend the same fest promotion train; Lesson 217 must stay GREEN.

Battery drain but GPU pass?
Track idle_power_smoke_pass separately per Deck battery help—do not conflate columns.


Deck menu receipts need Godot discipline and Deck proof—not overlay screenshots from the editor.