Tutorials & Beginner-First Jul 17, 2026

Your First SteamFest Branch Unset and Default Branch Return Receipt After October Live - One Evening 2026

2026 beginner tutorial—Steam unsetlive after Next Fest in one evening; post_fest_branch_unset_receipt_v1.json, U1–U6 gates, branch_unset_ok before November sprint store edits.

By GamineAI Team

Your First SteamFest Branch Unset and Default Branch Return Receipt After October Live - One Evening 2026

Pixel-art hero for SteamFest branch unset and default branch return receipt after October live one evening 2026

Tuesday 10:04 a.m., first week after October Next Fest: marketing wants to refresh the store capsule. Steamworks Branches tab still shows october_fest_demo as the live default. Friday upload capstone latched fest_live_allowed: true eleven days ago. Nobody ran unsetlive or filed proof that default again points at the trunk build you intend for November edits. A contractor runs a post-fest hotfix against what they think is default—but players still download the fest RC because the branch never returned.

November 2026 micro-studios treat fest end like a calendar flip. Post-fest week needs a machine-readable branch-unset receipt tied to BUILD_RECEIPT—not a Slack thread saying "we should unset soon." This Tutorials & Beginner-First guide spends one evening creating post_fest_branch_unset_log.jsonl, post_fest_branch_unset_receipt_v1.json, and gates U1–U6 so branch_unset_ok: true on BUILD_RECEIPT means the same thing to producers, release engineers, and forward Wednesday post-fest smoke #10 in the November cluster.

Non-repetition note: 12 setlive checks owns promotion preflight before fest live. SETLIVE exception opinion owns default authorization during upload week. Wrong default branch case study owns recovery when setlive targeted default mid-upload. October upload capstone owns fest_live_allowed before fest live. This URL owns first post-fest unset evening + U1–U6 + branch_unset_ok after fest ends.

Pair BUILD_RECEIPT beginner if receipts are new, GameMaker setlive dry-run evening when dry-run habit is missing, and forward blog #10 Wednesday post-fest smoke when unset receipt exists.

Why this matters now (November 2026 post-October fest)

  1. fest_live_allowed is not unset proofOctober upload capstone green-lit fest live; this receipt proves fest branch returned before November store edits.
  2. Capsule edits against wrong default lie — Store team edits metadata while fest RC still serves players.
  3. Post-fest patches hit the wrong buildPost-fest patch opinion forward #9 assumes branch truth; unset comes first.
  4. November closeout cousins need clean defaultFriday November closeout indexes child receipts; half-done unset fails capstone crosswalk.
  5. One evening beats post-fest archaeology — Template tonight; ten minutes per branch audit after.

Direct answer: Create release-evidence/steam/post_fest_branch_unset_log.jsonl, run U1–U6, file post_fest_branch_unset_receipt_v1.json, set BUILD_RECEIPT branch_unset_ok: true only when fest branch is unset, default returns to documented trunk build_id, and capstone fest_live_allowed crosswalk still matches.

Who this one-evening ritual is for

Audience Outcome
Solo dev, first post-fest week Screenshot + log habit before store refresh
Producer Answer "which branch is live?" without opening Steamworks twice
Release engineer Wire verify_post_fest_branch_unset.sh before November sprint merges
Studio lead / partner diligence Attach unset receipt to post-fest zip instead of branch screenshots

Time: ~90 minutes first pass (templates + one real unset or documented dry-run); ~10 minutes per subsequent branch audit.
Prerequisites: Steamworks app with fest RC branch from October live, existing BUILD_RECEIPT habit, fest_live_allowed: true from October upload capstone (or documented waiver).

Official references: Steamworks Builds, SteamPipe branches, steamcmd wiki.

Format ladder — November post-October cluster #1

Row Format Owns
#1 (this) One-evening branch unset + U1–U6 branch_unset_ok
#2 forward Post-fest analytics tools listicle T1–T14 bookmarks
#3 forward Five-night retention challenge R1–R5
#10 forward Wednesday post-fest smoke W1–W10 midweek latch
#12 forward Friday first-week capstone F1–F10 november_sprint_allowed
October capstone Upstream fest live fest_live_allowed
SETLIVE opinion Upload-week default policy setlive_exception_list_ok

Evening overview (four blocks)

Block Minutes Output
1 — Branch inventory + log template 15 post_fest_branch_unset_log.jsonl schema
2 — unsetlive + default return 25 steamcmd log + Steamworks screenshots
3 — Receipt JSON 25 post_fest_branch_unset_receipt_v1.json
4 — Verify + BUILD_RECEIPT 25 U1–U6 GREEN, branch_unset_ok

Stop when jq -e '.branch_unset_ok == true' passes on the receipt path you committed.

Block 1 — Folder layout and log schema

release-evidence/
  steam/
    post_fest_branch_unset_log.jsonl
    post_fest_branch_unset_receipt_v1.json
    unset/
      2026-11-04_unsetlive.log
    screenshots/
      branches_before_unset_2026-11-04.png
      branches_after_default_return_2026-11-04.png
  05-operations/
    BUILD_RECEIPT.json

Append-only jsonl — never edit prior lines; add correction rows with "event": "correction".

Log line schema (post_fest_branch_unset_log_v1)

Each line is one JSON object:

{
  "schema": "post_fest_branch_unset_log_v1",
  "event": "branch_unset",
  "unset_started_utc": "2026-11-04T15:10:00Z",
  "unset_finished_utc": "2026-11-04T15:18:22Z",
  "app_id": "1234560",
  "fest_branch_name": "october_fest_demo",
  "fest_branch_build_id_before": "2026-10-06-rc04",
  "fest_steam_build_id_before": "18472931",
  "default_branch_name": "default",
  "default_build_id_after": "2026-11-01-trunk01",
  "default_steam_build_id_after": "18491002",
  "unsetlive_log": "release-evidence/steam/unset/2026-11-04_unsetlive.log",
  "capstone_pointer": "release-evidence/october/capstone/october_upload_capstone_receipt_v1.json",
  "fest_live_allowed_at_unset": true,
  "operator": "release_owner",
  "notes": ""
}

Beginner field guide:

  • fest_branch_name — exact Steamworks branch slug from October fest (not a nickname).
  • default_build_id_after — your receipt naming for trunk after return; must match BUILD_RECEIPT header.
  • default_steam_build_id_after — Steam build ID on default after promotion/return.
  • fest_live_allowed_at_unset — copy from October capstone at time of unset.
  • unsetlive_log — archived steamcmd output; required for U4.

Copy post_fest_branch_unset_log.template.jsonl with one commented example line into release-evidence/steam/README.md so contractors know append rules.

Block 2 — unsetlive and default return

Before touching steamcmd, capture Steamworks Branches screenshot (branches_before_unset_*.png). Note which branch is Live on default.

Step A — Document fest branch state (U2)

Record in a scratch file:

  • Fest branch name
  • Build ID on fest branch at fest end
  • Whether default still points at fest RC (common failure)

Step B — Run unsetlive on fest branch

Use your studio partner account (not personal Steam):

steamcmd +login YOUR_PARTNER +app_set_config 1234560 betakey october_fest_demo -betapassword "" +quit 2>&1 | tee release-evidence/steam/unset/2026-11-04_unsetlive.log

Exact steamcmd verbs vary by workflow—some teams use Steamworks UI Deactivate on the fest branch instead. Pass criteria for U4: log or UI audit shows fest branch no longer owns default live slot; no Access Denied or wrong AppID.

Step C — Promote trunk to default (if needed)

If trunk build is not yet on default, promote with documented build_id:

steamcmd +login YOUR_PARTNER +app_build_setlive 1234560 18491002 default +quit 2>&1 | tee -a release-evidence/steam/unset/2026-11-04_unsetlive.log

Beginner rule: Do not promote a build you cannot name from BUILD_RECEIPT. If trunk moved during fest support, update root build_id before U5 pass.

Capture after screenshot (branches_after_default_return_*.png).

Step D — Append jsonl row

Append one branch_unset line with before/after IDs from screenshots + steamcmd log—do not guess Steam build IDs from memory.

Block 3 — post_fest_branch_unset_receipt_v1.json

Receipt summarizes latest unset and gate results:

{
  "schema": "post_fest_branch_unset_receipt_v1",
  "receipt_version": "1.0",
  "branch_unset_ok": false,
  "app_id": "1234560",
  "fest_branch_name": "october_fest_demo",
  "fest_branch_build_id_before": "2026-10-06-rc04",
  "default_branch_name": "default",
  "default_build_id_after": "2026-11-01-trunk01",
  "default_steam_build_id_after": "18491002",
  "unset_log_path": "release-evidence/steam/post_fest_branch_unset_log.jsonl",
  "unsetlive_log_path": "release-evidence/steam/unset/2026-11-04_unsetlive.log",
  "capstone_pointer": "release-evidence/october/capstone/october_upload_capstone_receipt_v1.json",
  "fest_live_allowed_at_unset": true,
  "gates": {
    "U1": false,
    "U2": false,
    "U3": false,
    "U4": false,
    "U5": false,
    "U6": false
  },
  "notes": ""
}

Set branch_unset_ok: true only when U1–U6 all true. Keep post-fest patch flags false until forward #9 opinion schema exists—unset receipt ≠ patch authorization.

Gates U1–U6

Gate Name Pass criteria
U1 Fest live upstream fest_live_allowed: true on October capstone or documented waiver in notes
U2 Fest branch documented fest_branch_name + fest_branch_build_id_before match pre-unset screenshot
U3 Unset executed jsonl has ≥1 branch_unset line for this fest branch
U4 unsetlive clean Linked log/UI audit shows fest branch no longer live on default
U5 Default parity Root BUILD_RECEIPT build_id / build_label match default_build_id_after + after screenshot
U6 Receipt committed post_fest_branch_unset_receipt_v1.json in repo; latch set honestly

U1 waiver example: "notes": "Capstone archived offline—EXCEPTION-UNSET-001 approved with partner email 2026-11-03" with ticket ID in BUILD_RECEIPT.

U5 fail pattern: Trunk hotfix 2026-11-02-trunk02 shipped during fest support but receipt still lists 2026-11-01-trunk01.

verify_post_fest_branch_unset.sh

#!/usr/bin/env bash
set -euo pipefail
R="${1:-release-evidence/steam/post_fest_branch_unset_receipt_v1.json}"
LOG="$(jq -r '.unset_log_path' "$R")"
UNL="$(jq -r '.unsetlive_log_path' "$R")"

jq -e '.schema == "post_fest_branch_unset_receipt_v1"' "$R" >/dev/null
jq -e '.branch_unset_ok == true' "$R" >/dev/null
test -f "$LOG"
test -f "$UNL"
FEST="$(jq -r '.fest_branch_name' "$R")"
jq -e --arg f "$FEST" 'select(.fest_branch_name == $f) | .event == "branch_unset"' "$LOG" >/dev/null
CAP="$(jq -r '.capstone_pointer // empty' "$R")"
if [[ -n "$CAP" && -f "$CAP" ]]; then
  jq -e '.fest_live_allowed == true' "$CAP" >/dev/null
fi
BR="$(jq -r '.default_build_id_after' "$R")"
jq -e --arg b "$BR" '.build_id == $b' release-evidence/05-operations/BUILD_RECEIPT.json >/dev/null
echo "post-fest branch unset verify: OK"

Wire in CI: run after unset step, before November store metadata merges.

PowerShell facilitator (Windows)

$Receipt = "release-evidence/steam/post_fest_branch_unset_receipt_v1.json"
jq -e '.branch_unset_ok == true' $Receipt
if ($LASTEXITCODE -ne 0) { throw "branch unset latch failed" }
$Log = jq -r '.unset_log_path' $Receipt
Get-Content $Log -Tail 1 | jq .

BUILD_RECEIPT columns to add

Extend root BUILD_RECEIPT:

{
  "branch_unset_ok": true,
  "post_fest_branch_unset_receipt_path": "release-evidence/steam/post_fest_branch_unset_receipt_v1.json",
  "fest_branch_name": "october_fest_demo",
  "default_build_id_after_unset": "2026-11-01-trunk01",
  "post_fest_branch_unset_log_path": "release-evidence/steam/post_fest_branch_unset_log.jsonl"
}

Forward #10 Wednesday post-fest smoke and #12 first-week capstone consume these columns—file them before November sprint rituals assume they exist.

Beginner Quick Start — tonight only

  1. Create release-evidence/steam/unset/ + screenshots/ folders.
  2. Screenshot Steamworks Branches before unset.
  3. Run unsetlive or UI deactivate per Block 2.
  4. Promote trunk to default if needed; screenshot after.
  5. Append jsonl branch_unset row with before/after IDs.
  6. Fill receipt JSON; set gates honestly (U6 false until committed).
  7. Run verify script; fix RED gates.
  8. Update BUILD_RECEIPT; commit receipt + log + unset log + screenshots.

Success check: Teammate opens jsonl last line and names fest branch + default build_id without Steamworks login.

Working dev — unset ritual checklist

# After successful unset + default return
FEST_BRANCH="october_fest_demo"
DEFAULT_BID="2026-11-01-trunk01"
jq -nc \
  --arg fb "$FEST_BRANCH" \
  --arg db "$DEFAULT_BID" \
  '{
    schema: "post_fest_branch_unset_log_v1",
    event: "branch_unset",
    unset_started_utc: (now | strftime("%Y-%m-%dT%H:%M:%SZ")),
    fest_branch_name: $fb,
    default_build_id_after: $db
  }' >> release-evidence/steam/post_fest_branch_unset_log.jsonl

Refresh receipt default_build_id_after, re-run U1–U6, bump branch_unset_ok only on GREEN.

Integration with November cluster + October cousins

Cousin Relationship
October capstone #12 U1 reads fest_live_allowed
SETLIVE opinion #9 consumed Upload-week default policy—not post-fest unset
Wrong default case study #4 Recovery narrative; this URL is prevention after fest
12 setlive checks Upstream promotion; unset is downstream
November closeout cousin Expects branch_unset_ok in child crosswalk
Forward #10 Wednesday smoke W3 consumes unset receipt path
Forward #12 first-week capstone Indexes branch_unset_ok in F4 cousin sweep

Enterprise and partner diligence notes

  • Access control: Only studio partner accounts with branch permission run unsetlive—log operator field for audit.
  • Change management: Attach before/after screenshots + receipt to partner ticket; do not email screenshots without jsonl.
  • Rollback: Keep fest RC build ID in jsonl; re-promote only with numbered exception (forward #9).
  • Multi-SKU: If dual-depot dress applied, unset Steam branch independently from itch channel labels.

Proof table (sample GREEN row)

Field Value Source
fest_branch_name october_fest_demo Steamworks Branches
fest_branch_build_id_before 2026-10-06-rc04 capstone child receipt
default_build_id_after 2026-11-01-trunk01 BUILD_RECEIPT
default_steam_build_id_after 18491002 after screenshot
fest_live_allowed_at_unset true October capstone
U4 PASS unsetlive log clean
branch_unset_ok true receipt after U6

Scenarios A–G

A — Fest ended but capstone archived offline

U1 fails unless waiver—document EXCEPTION-UNSET-001 in notes and BUILD_RECEIPT before latch.

B — Default already trunk; fest branch idle

Still run U2–U6: prove fest branch documented and default parity—do not skip receipt because "it looks fine."

C — Trunk hotfix during fest week changed build_id

U5 fails until BUILD_RECEIPT updated to 2026-11-02-trunk02 before unset receipt latch.

D — Contractor unset with personal Steam

U4 fails with access errors—re-login studio partner; new unset log before retry.

E — Marketing edited capsule before unset

Store edits may reference fest overlay assets—pair forward #6 badge-strip pass after unset GREEN.

F — Team wants post-fest patch same evening

Unset receipt first; patch exception list (forward #9) is separate latch.

G — February fest cousin team reusing template

Swap fest_branch_name to february_fest_demo_2027; keep schema—do not fork receipt version without migration note.

Common mistakes

  • Assuming fest end date auto-unsets branches in Steamworks.
  • Setting branch_unset_ok when only screenshot exists—jsonl required for U3.
  • Promoting default to fest RC "one more time" without SETLIVE exception during upload week—different window, same pain.
  • Editing jsonl lines instead of appending corrections.
  • Skipping after screenshot—U5 audit fails under partner diligence.
  • Running November store refresh before unset—forward #6 capsule work needs clean default truth.

Troubleshooting

"Default still shows fest build in Steamworks." Re-run promotion to trunk; append correction jsonl row; do not delete original line.
"verify script cannot find capstone." Set capstone_pointer empty and document U1 waiver—or restore capstone JSON from October capstone archive.
"jq parse error on jsonl." One JSON object per line—no trailing commas, no array wrapper.
"unsetlive succeeds but players still get fest build." CDN delay—document timestamp; re-check Builds tab after 30 minutes before U4 pass.

RED / YELLOW / GREEN routing

Color Condition Action
RED U4 fail or U5 mismatch Block November store merges; fix before forward #10
YELLOW U1 waiver or trunk ID pending hotfix Unset allowed with documented exception
GREEN U1–U6 pass Proceed to post-fest analytics + retention cluster rows

Printable facilitator card

Store in release-evidence/steam/POST_FEST_UNSET_EVENING_CARD.md:

# Post-fest branch unset — one evening (U1–U6)
Date: __________  fest_branch: __________  operator: __________

[ ] Folders: unset/ + screenshots/ + jsonl template
[ ] Screenshot BEFORE unset (branches tab)
[ ] fest_branch_name + build_id_before documented (U2)
[ ] unsetlive or UI deactivate executed — log archived (U4)
[ ] default promoted to trunk build_id — screenshot AFTER
[ ] jsonl branch_unset line appended
[ ] post_fest_branch_unset_receipt_v1.json — gates U1–U6 honest
[ ] verify_post_fest_branch_unset.sh exit 0 (or documented waiver)
[ ] BUILD_RECEIPT branch_unset_ok + paths updated
[ ] October capstone fest_live_allowed checked (U1)
[ ] Forward #10 Wednesday smoke scheduled

Sign: __________  UTC: __________

Pin beside October capstone card in release-evidence/steam/.

Comparison pack — unset vs setlive vs recovery

Workflow When Latch This URL
12 setlive checks Before fest live setlive_allowed Upstream
October capstone Friday before fest fest_live_allowed Upstream
This evening First week after fest branch_unset_ok Owns
Wrong default case study After mistake default_branch_recovery_ok Recovery cousin
Forward #10 smoke Midweek after unset post_fest_smoke_ok Downstream

Security and ops notes

  • Store steamcmd credentials in CI secrets—not in jsonl.
  • Restrict release-evidence/steam/unset/*.log if logs contain partner account names.
  • Partner zip exports: include receipt JSON + screenshots; redact login tokens from logs before share.

Key takeaways

  1. fest_live_allowed does not unset the fest branch — file proof the first week after October live.
  2. Gates U1–U6 run on post_fest_branch_unset_receipt_v1.json with before/after branch IDs.
  3. Latch branch_unset_ok: true only when default matches BUILD_RECEIPT trunk build_id.
  4. Append-only jsonl beats Slack screenshots for partner diligence.
  5. U4 and U5 are hard blockers before November store edits and forward #10 smoke.
  6. Pair October capstone for upstream fest_live_allowed.
  7. Pair SETLIVE opinion for upload-week default policy—not a substitute for unset.
  8. SteamCMD tools bookmark partner login sanity before unsetlive.
  9. Depot label mismatch help when promoted build label disagrees with receipt after return.
  10. Forward #10 Wednesday post-fest smoke consumes this receipt path—schedule after GREEN unset.
  11. Pair post-fest analytics tools listicle #2 for T1 branch_unset_ok crosswalk before post_fest_analytics_ok.

FAQ

How is this different from the October upload capstone?

The October capstone latches fest_live_allowed before fest live with a child receipt crosswalk across upload week. This evening tutorial latches branch_unset_ok after fest ends when default must return to trunk.

Do I need steamcmd or can I use Steamworks UI?

Either works if U4 evidence exists—archive UI screenshot paths in jsonl notes or save UI export alongside unsetlive.log.

Can I skip unset if we never setlive'd fest branch?

If default never left trunk, still document U2–U6 with "notes": "fest branch inactive—default never moved" and honest gate flags—do not set branch_unset_ok true without proof.

What if post-fest hotfix already shipped to default?

Update BUILD_RECEIPT build_id first (U5), then file unset receipt—order matters for verify script.

Where does Wednesday post-fest smoke fit?

Run after this receipt GREEN—forward blog #10 W3 reads post_fest_branch_unset_receipt_path on BUILD_RECEIPT.

Related reads

Closing

The first week after October fest is when the fest RC branch must stop owning default—before marketing refreshes the store and before November sprint receipts assume trunk truth. Run the one-evening unset ritual, walk gates U1–U6, and let branch_unset_ok be a decision you made on purpose—not a branch state you hope Steamworks fixed when the calendar flipped. When forward Wednesday smoke reads one green latch backed by jsonl and screenshots, post-fest week stops being a branch guessing game and becomes a row you already filed.