Lesson 285: GameMaker October RC Branch Label Summer Freeze Receipt on BUILD_RECEIPT (2026)
Direct answer: Before July–August 2026 summer content freeze, promote october_rc_branch_label_receipt_v1.json with L1–L6—bump fest-demo-2026-10-rc*, screenshot Steamworks branch + GameMaker player footer, enumerate summer_freeze_defer_list_v1, and fail-close october_rc_label_ok on BUILD_RECEIPT so September setlive cannot ship a June label. Pair Guide #44, October RC evening, and cousin Lesson 270 (later promote rehearsal—not freeze lock).

Why this matters now (July lock → October Next Fest)
July 2026 sits ~eleven weeks before October 2026 Steam Next Fest. Teams declare “content freeze Monday” while Game Options Version, Steam branch, and BUILD_RECEIPT still say june-demo. Lesson 284 closed March debrief wiring; 285 opens the October prep lane on the same RPG track—without merging February 2027-02 RC strings into October receipts.
Guide #44 is the ninety-second GameMaker paint gate; this lesson is the BUILD_RECEIPT milestone + verify script for the course project.
Beginner path (55-minute freeze lock)
| Step | Action | Success check |
|---|---|---|
| 1 | Bump build_label to fest-demo-2026-10-rc* |
jq pattern pass |
| 2 | Screenshot Steamworks Branches | Branch name visible |
| 3 | Set GM Version + on-screen footer | Exported player matches |
| 4 | Pin both PNGs under october-rc/ |
Paths exist |
| 5 | Write summer-freeze defer list | DEFER-00N rows |
| 6 | File receipt + run verify | Exit 0 |
| 7 | Latch BUILD_RECEIPT october_rc_label_ok |
Boolean after verify |
Time: ~55 minutes first July lock; ~15 minutes when templates exist.
Prerequisites: GameMaker Steam export preset; Lesson 270 optional cousin; write access to release-evidence/steam/october-rc/.
Developer path (gates L1–L6)
| Gate | Check | Fail when |
|---|---|---|
| L1 | build_label matches ^fest-demo-2026-10-rc |
February 2027-02 string reused |
| L2 | Steamworks branch screenshot | Branch missing / typo |
| L3 | GM Version + exported footer | IDE-only version bump |
| L4 | Evidence PNG paths | Broken links after move |
| L5 | summer_freeze_defer_list_v1.json |
Freeze declared with empty deferrals theater |
| L6 | Receipt + BUILD_RECEIPT | october_rc_label_ok without verify |
Cross-cutting: summer_content_freeze_allowed only after october_rc_label_ok: true. Do not treat fest-day depot audit as a substitute for July freeze.
Cousin receipt crosswalk
| Field | Lesson 270 setlive dry-run | February RC evening | This lesson (285) |
|---|---|---|---|
| Schema | gm_steam_setlive_dry_run_receipt_v1 |
february_rc_branch_label_receipt_v1 |
october_rc_branch_label_receipt_v1 |
| Window | Promote rehearsal | Pre–Feb fest | Pre–summer freeze → Oct fest |
| Pass field | setlive_dry_run_ok |
February RC OK | october_rc_label_ok |
Reference cousins in cousin_receipts—do not flatten schemas.
L3 — GameMaker paint (course project)
- Game Options → General → Version =
fest-demo-2026-10-rc1(match BUILD_RECEIPT). - Draw footer on boot/pause:
display_label = game_display_name + " | " + GM_version;
- Export Windows player—not IDE Play alone.
- Screenshot footer →
release-evidence/steam/october-rc/label_footer_fest-demo-2026-10-rc1.png.
L5 — summer_freeze_defer_list_v1.json
{
"schema": "summer_freeze_defer_list_v1",
"freeze_start_utc": "2026-07-20T00:00:00Z",
"october_rc_label": "fest-demo-2026-10-rc1",
"deferred": [
{ "id": "DEFER-001", "item": "New biome art pass", "reason": "post-freeze September" },
{ "id": "DEFER-002", "item": "Experiment HOTFIX save wipe", "reason": "not numbered HOTFIX yet" }
]
}
L6 — october_rc_branch_label_receipt_v1.json
{
"schema": "october_rc_branch_label_receipt_v1",
"fest_window": "2026-10-next-fest",
"build_label": "fest-demo-2026-10-rc1",
"steam_branch": "fest-demo-2026-10-rc1",
"engine": "gamemaker",
"gm_version_setting": "fest-demo-2026-10-rc1",
"evidence": {
"branch_screenshot": "release-evidence/steam/october-rc/branch_fest-demo-2026-10-rc1.png",
"label_screenshot": "release-evidence/steam/october-rc/label_footer_fest-demo-2026-10-rc1.png",
"defer_list": "release-evidence/steam/october-rc/summer_freeze_defer_list_v1.json"
},
"cousin_receipts": {
"setlive_dry_run": "release-evidence/steam/gamemaker-setlive/GM_STEAM_SETLIVE_DRY_RUN_RECEIPT.json"
},
"gates": {
"L1_label_pattern": "pass",
"L2_branch_shot": "pass",
"L3_gm_footer": "pass",
"L4_paths": "pass",
"L5_defer_list": "pass",
"L6_receipt": "pass"
},
"october_rc_label_ok": true,
"summer_content_freeze_allowed": true
}
Pin at release-evidence/steam/october-rc/OCTOBER_RC_BRANCH_LABEL_RECEIPT.json.
BUILD_RECEIPT row
{
"build_label": "fest-demo-2026-10-rc1",
"october_rc_label_ok": true,
"october_rc_branch_label_receipt": "release-evidence/steam/october-rc/OCTOBER_RC_BRANCH_LABEL_RECEIPT.json",
"summer_content_freeze_allowed": true
}
verify_october_rc_branch_label.sh
#!/usr/bin/env bash
set -euo pipefail
REC="${1:-release-evidence/steam/october-rc/OCTOBER_RC_BRANCH_LABEL_RECEIPT.json}"
jq -e '.schema == "october_rc_branch_label_receipt_v1"' "$REC"
jq -e '.october_rc_label_ok == true' "$REC"
jq -e '.build_label == .gm_version_setting and .build_label == .steam_branch' "$REC"
jq -e '.build_label | test("^fest-demo-2026-10-rc")' "$REC"
test -f "$(jq -r '.evidence.branch_screenshot' "$REC")"
test -f "$(jq -r '.evidence.label_screenshot' "$REC")"
test -f "$(jq -r '.evidence.defer_list' "$REC")"
echo "october_rc_branch_label verify: OK"
Relationship to Guide / evening / Help / setlive
| Artifact | Role |
|---|---|
| Guide #44 | Ninety-second GM paint + capture |
| October RC evening | Full evening ritual |
| This lesson | BUILD_RECEIPT milestone |
| Lesson 270 | Later setlive dry-run |
| Help #43 forward | Recovery after freeze broke label proof |
Order: L1–L6 / evening → summer freeze merges → Lesson 270 dry-run → October upload week.
Common mistakes
- Reusing February
fest-demo-2027-02-rc*in October receipts. - Declaring freeze without a defer list.
- IDE Version bump without re-export.
- Flipping
october_rc_label_okbefore verify. - Treating Lesson 270 dry-run as freeze proof.
Troubleshooting
| Symptom | Lane |
|---|---|
| Wrong year in label | L1 regex; October evening FAQ |
| Footer stale after export | Re-export; Guide #44 L3 |
| Freeze already merged, label wrong | Help #43 forward |
| setlive blocked later | Lesson 270 |
| Partner asks “which build?” | Visible footer + label opinion |
Mini exercise (50 minutes)
- Set
fest-demo-2026-10-rc1on BUILD_RECEIPT + GM Version. - Capture branch + footer screenshots.
- Add two DEFER rows.
- Intentionally mismatch
gm_version_setting—confirm verify fails. - Fix crosswalk; file receipt; latch
october_rc_label_ok.
Key takeaways
- October RC ≠ February RC—different fest string and freeze defer list.
october_rc_label_okgates summer freeze—not setlive dry-run alone.- Guide #44 paints; 285 promotes on BUILD_RECEIPT.
- Exported player footer must match Steam branch string.
- Empty defer list is theater—enumerate what waits until after freeze.
- Next March/October prep continues at Lesson 286 (wishlist velocity).
Continuity — March debrief + October prep (284–288)
| Lesson | Receipt focus |
|---|---|
| 284 | Post-fest debrief facilitator card |
| 285 (this) | GameMaker October RC branch label |
| 286 forward | Construct post-fest wishlist velocity |
| 287 forward | Unity March weekly sprint jsonl |
| 288 forward | OBS post-fest Whisper clips_index handoff |
Previous: Lesson 284 — Post-fest debrief facilitator card
Next: Lesson 286 — Construct post-fest wishlist velocity (forward)
FAQ
Does 285 replace Lesson 270?
No—270 is setlive dry-run; 285 is July October RC + freeze latch.
Can Unity hybrid teams skip GM footer?
Still lock Steam branch + BUILD_RECEIPT; GM footer is required for GameMaker SKUs on this lesson.
Is Help #43 required first?
Only when freeze already broke proof—prevention is Guide #44 + this lesson.
Related GamineAI reads
- October RC branch label evening
- GameMaker October RC preflight (Guide #44)
- GameMaker setlive dry-run Lesson 270
- February RC label evening
- October Next Fest timeline
- Stop shipping without visible build label
- Help #43 forward — October RC fails after summer Addressables freeze
- Official: Steamworks SteamPipe · GameMaker Manual
Summer freeze without an October RC label ships June bytes in October—bump fest-demo-2026-10-rc*, prove GM footer + branch screenshots, file the defer list, verify, then latch october_rc_label_ok.