Stop Shipping Godot 4.8 C Sharp Projects Without .NET 10 - 2026
![]()
If you searched godot 4.8 dotnet after 4.8-dev7 raised the C# floor, you do not need another “C# just works if you have any recent SDK” thread. You need a refusal.
Stop shipping Godot 4.8 C Sharp projects without .NET 10. On September 29, 2026, Godot published Dev snapshot: Godot 4.8 dev 7 and the matching download archive: the .NET build (mono) still includes C#, and the page is explicit — .NET 10.0 or newer is required, changing the minimum supported version from .NET 8 to 10. That sentence is the whole refusal. Feature freeze did not grandfather your old SDK checklist. Evaluating 4.8 C# on a machine that only has .NET 8 is not diligence — it is folklore.
This is not the live Stop shipping production Godot on 4.8-dev (refuse Steam pins on pre-release). It is not the live Godot 4.8 .NET 10 C# migrate worksheet (fill-in lab gates). It is not the AccessKit mobile smoke worksheet. Those own production branch refusal, migrate smoke, and a11y lab. This URL owns the SDK floor refusal: do not treat 4.8 C# as “same as 4.7 .NET 8” because Discord still has last year’s install notes.
Platform cousins (Stop Spark closed beta as ship plan, Stop DEVELOPMENT_BUILD diagnostics folklore) refuse premature lanes. This refusal refuses SDK wallpaper — treating an old Target Framework floor as still valid after the download page moved.
Why this matters now
October 2026 sits weeks after 4.8-dev7 feature freeze. C# teams chase animated decals, symbol renaming, and AccessKit on the .NET editor build — then burn an evening on cryptic restore failures, IDE “works on my machine” fights, and CI agents still pinned to .NET 8. Someone declares “Godot C# is broken again” when the failure was a documented minimum bump.
Direct answer: Run the honesty ladder. Prefer SIT_OUT, LAB_SDK on a disposable C# project with .NET 10 installed, or PAIR with a second machine that proves the SDK. Refuse SHIP_NET8_48 — shipping or solemnly evaluating 4.8 C# without .NET 10 evidence. Production Steam pins still belong on the 4.8-dev production Stop — this Stop only owns the SDK floor.
Who this refusal is for
| Audience | Use it to… |
|---|---|
| Beginners | Know .NET 10 is required for 4.8 .NET builds — not optional polish |
| Developers | Separate SDK fails from engine “C# is dead” folklore |
| Creators | Paste a sit-out when Discord says “any recent SDK is fine” |
| Companies | CapEx — CI image + IDE upgrades before 4.8 C# evaluation |
Time: 20 minutes for the ladder; 10 minutes for the Discord paste.
Honest limit: Godot’s snapshot and download pages are authorities for the .NET 10 floor. 4.8 is still pre-release — SDK honesty does not authorize production pins. Re-read 4.8-dev7 and the archive page before arguing. Fill-in migrate steps live on the worksheet sibling.
Non-repetition
| URL | Job |
|---|---|
| Production 4.8-dev pin Stop | Refuse Steam pins on pre-release |
| .NET 10 C# migrate worksheet | Fill-in lab smoke (live) |
| AccessKit mobile smoke worksheet | a11y lab sibling |
| 4.8-dev snapshot what-changed (July) | Earlier snapshot commentary |
| Godot guide | Engine hub |
| This URL | Stop 4.8 C# without .NET 10 |
Pair community paste with 25 free game development Discord servers. Store timing stays on Steam worksheets — not this SDK refusal.
The claim I am refusing
Claim (false): “We already have .NET 8 from Godot 4.x C# work, so 4.8-dev7 .NET builds will just work — feature freeze means the toolchain is settled, and CI can stay on last year’s SDK image.”
Counter-claim: The 4.8-dev7 download notes change the minimum from .NET 8 to .NET 10. That is a hard floor for the .NET editor/export path called out on the archive page. Keeping .NET 8-only agents is not “conservative” — it is evaluating the wrong dependency graph. Feature freeze does not freeze your host SDK requirement at the previous major.
Same disease as other Stops: freeze-as-stable, checkbox folklore, partnership wallpaper. This is SDK wallpaper.
What Godot actually says (read before you argue)
From 4.8-dev7 and 4.8-dev7 downloads:
| Fact | Meaning for your C# team |
|---|---|
| .NET build includes C# | You still pick the mono/.NET editor flavor |
| .NET 10.0 or newer required | Host SDK floor moved |
| Minimum changed from .NET 8 to 10 | Old install notes are stale |
| Feature freeze | Engine feature intake stopped — not an SDK grandfather clause |
| Pre-release / testing | Still not a production Steam pin (see production Stop) |
C# call optimizations / TFM net10.0 called out in highlights |
Toolchain intent matches the download note |
If your board strategy is “C# on Godot never needed SDK upgrades mid-cycle,” you skipped the download page paragraph.
Excuse ladder
| Excuse | Why it fails | What to do instead |
|---|---|---|
| “We have .NET 8 — close enough.” | Floor moved to 10. | Install .NET 10; prove dotnet --list-sdks. |
| “Feature freeze = toolchain frozen.” | Freeze ≠ host SDK freeze. | Read archive .NET note aloud. |
| “VS / Rider will paper over it.” | IDE ≠ required runtime/SDK. | Evidence both SDK and editor .NET build. |
| “CI passed on 4.7.” | Different minimum era. | New image for 4.8 C# evaluation. |
| “GDScript path doesn’t need this.” | True — then don’t claim C# evaluation. | Separate lanes. |
| “We’ll ship Steam on 4.8-dev anyway.” | Production pin Stop. | Stay on 4.7.x for ship. |
| “NuGet restored fine once.” | One machine ≠ agent fleet. | PAIR second machine / CI. |
| “Competitors still on 8.” | Peer pressure ≠ docs. | Sit-out paste. |
Honesty ladder (run before any 4.8 C# ticket)
| Rung | Question | Pass if… |
|---|---|---|
| H1 | Did you read the .NET 10 requirement on the archive page? | Quote the sentence |
| H2 | Is this a .NET / mono Godot build (not GDScript-only)? | Yes — else this Stop N/A |
| H3 | dotnet --list-sdks shows 10.x+ on the eval machine? |
Evidence pasted |
| H4 | IDE / editor can open a disposable C# project on that SDK? | Lab open succeeds |
| H5 | CI agent image includes .NET 10 if CI claims C#? | Image note or HOLD |
| H6 | Production ship still on supported 4.7.x (not 4.8-dev pin)? | Yes — or production Stop |
| H7 | Disposable project only for 4.8 C# eval? | Lab scope written |
| H8 | CapEx owner named for SDK/CI upgrade? | Signature |
Fail H3–H5 and you do not get to lecture Discord about “Godot C# regressions.”
Decision table — SIT_OUT / LAB_SDK / PAIR / SHIP_NET8_48
| Decision | Meaning |
|---|---|
| SIT_OUT | No 4.8 C# evaluation tonight; finish current 4.7.x milestone |
| LAB_SDK | Install .NET 10; open disposable C# project on 4.8-dev .NET build; no Steam pin |
| PAIR | Second machine/CI proves same SDK evidence |
| SHIP_NET8_48 | Refused — claim 4.8 C# ship/eval success while on .NET 8-only hosts |
Default after this article: LAB_SDK or SIT_OUT. SHIP_NET8_48 is never a diligence outcome. Production pins stay refused on the sibling Stop.
CapEx four-liner (paste to board)
- Asset at risk: Eval evenings, CI green folklore, and false “C# is broken” narratives.
- Change proposed: Evaluate or ship Godot 4.8 C# on hosts/agents still at .NET 8.
- Cost if wrong: Lost weeks, wrong bug reports upstream, and partner demos that only open on one laptop.
- Decision owner: Tech lead; default = LAB_SDK after .NET 10 evidence — never SHIP_NET8_48.
What the .NET 10 bump actually teaches
| Lesson | Steal this | Do not steal this |
|---|---|---|
| Read download footnotes | SDK floors move with TFM | “Editor zip is enough” |
| Separate GDScript vs C# | Two evaluation lanes | Claiming C# without .NET builds |
| Lab before CI | One machine proof then image | Fleet-wide thrash first |
| Pre-release honesty | SDK OK ≠ production pin OK | Steam on 4.8-dev because SDK works |
| Migrate worksheet handoff | Fill gates on live worksheet | Treating this Stop as install tutorial |
Beginner path — 25 minutes (refusal) + handoff
- Open the 4.8-dev7 archive; read the .NET 10 sentence aloud.
- Run
dotnet --list-sdks(or equivalent) — note presence/absence of 10.x. - If missing: latch SIT_OUT or schedule LAB_SDK install — do not “try the .NET editor anyway.”
- If present: open a disposable C# project only; refuse Steam pin (production Stop).
- Paste Discord shortlist; file refusal receipt.
- Hand migrate fill-ins to the live worksheet.
Common beginner mistakes:
- Equating “I have Visual Studio” with “I have .NET 10 SDK.”
- Mixing GDScript success with C# readiness.
- Pinning Steam to 4.8-dev because the SDK upgraded.
- Updating one laptop and declaring the studio ready.
- Filing upstream C# bugs without SDK evidence.
- Using this Stop as the full migrate tutorial.
Developer path — failure-mode separation
Fail taxonomy
| Symptom | Likely class | Refusal action |
|---|---|---|
| Restore / TFM errors on net8 | SDK floor | Install .NET 10; refuse SHIP_NET8_48 |
| Editor opens, CI fails | Agent image drift | H5 — upgrade image or HOLD CI claims |
| GDScript fine, C# fails | Wrong lane | Separate evaluations |
| “Works on my machine” only | PAIR missing | Second machine evidence |
| Steam build on 4.8-dev | Production pin | Production Stop — not this URL |
| NuGet auth / private feed | Different class | Fix feed; still need .NET 10 |
Evidence minimum before any “4.8 C# ready” claim
| Required | Example |
|---|---|
| Archive quote | “.NET 10.0 or newer is required” |
| SDK list | Screenshot / log of 10.x present |
| Build flavor | .NET / mono Godot build noted |
| Lab scope | Disposable project path |
| CI note | Image tag or “CI not claiming C# yet” |
No evidence → SIT_OUT.
CI / agent anti-patterns
- Reusing 4.7-era .NET 8 containers for 4.8 C# jobs.
- Caching global.json that pins net8.0 for 4.8 eval.
- Green GDScript export jobs labeled “C# pipeline OK.”
- Matrix that skips Linux/macOS agents where SDK install differs.
Failure modes this Stop catches
| Failure | Symptom | Fix |
|---|---|---|
| SDK wallpaper | Eval on .NET 8 only | H3 refuse |
| Freeze folklore | “Freeze freezes SDK too” | H1 quote |
| CI drift | Laptop 10 / agents 8 | H5 |
| Lane merge | GDScript success → C# claim | H2 |
| Prod pin sneak | SDK OK → Steam 4.8-dev | Production Stop |
| Upstream noise | Bug reports without SDK | Evidence first |
| Worksheet skip | Stop as install guide | Queued migrate sibling |
Anti-patterns (reject in review)
- “.NET 8 is fine for 4.8 C#.”
- “Feature freeze means no toolchain changes.”
- “IDE version implies SDK version.”
- “CI green on GDScript = C# ready.”
- “This Stop replaces the production 4.8-dev pin Stop.”
- “This Stop replaces the migrate worksheet.”
- “One developer laptop = studio standard.”
- “Ship Steam on 4.8-dev because .NET 10 installed.”
Worked decisions
Studio A — three C# indies, still on .NET 8 SDKs
Do: SIT_OUT / schedule LAB_SDK; CapEx four-liner for image upgrade.
Don’t: SHIP_NET8_48.
Studio B — lead laptop has .NET 10, CI does not
Do: HOLD CI C# claims; PAIR after image bump.
Don’t: “Works on my machine” as board status.
Studio C — GDScript production, curious about C
Do: Separate lanes; this Stop only if evaluating .NET builds.
Don’t: Block GDScript milestones on C# SDK politics.
Studio D — wants AccessKit + C# on 4.8-dev Steam
Do: Production Stop for pin; this Stop for SDK; AccessKit worksheet for a11y lab.
Don’t: One megathread titled “just upgrade everything.”
Studio E — worksheet ready, needs refusal first
Do: Latch refusal; open migrate worksheet for fill-ins.
Don’t: Skip H1–H8 and jump into half-migrated csproj thrash.
Studio F — Rider/VS2022-era tooling
Do: Confirm IDE supports .NET 10 workflows; upgrade or HOLD.
Don’t: Assume last year’s IDE notes still apply.
Studio G — NuGet private feed + SDK bump
Do: Fix feed auth and prove .NET 10 — two classes.
Don’t: Blame only NuGet when TFM is net10.0.
Discord shortlist (paste)
Stop shipping Godot 4.8 C# projects without .NET 10
1) 4.8-dev7 .NET builds require .NET 10.0+ (was .NET 8)
2) Quote the download archive note before arguing
3) Evidence: dotnet --list-sdks shows 10.x on eval + CI if claimed
4) Decision: SIT_OUT / LAB_SDK / PAIR — refuse SHIP_NET8_48
5) Production Steam pins still refused on 4.8-dev (sibling Stop)
6) Migrate fill-ins: godot-48-dotnet-10-first-indie-csharp-migrate-worksheet-2026
Receipt: godot_48_csharp_dotnet10_refusal_receipt_v1.json
Sources: Godot 4.8-dev7 snapshot · 4.8-dev7 download archive
≠ production 4.8-dev pin Stop · ≠ AccessKit worksheet
Two-week calendar (if you insist on evaluating C#)
| Day | Focus |
|---|---|
| Mon | Read archive .NET 10 note; inventory SDKs |
| Tue | CapEx four-liner; CI image plan |
| Wed | Install .NET 10 on lab machine; disposable project open |
| Thu | PAIR second machine or CI agent |
| Fri | Receipt + Discord; still no Steam 4.8-dev pin |
| Next week | Worksheet migrate gates on live sibling — else stay on 4.7.x ship |
Night-of runbook (Discord “C# broken” spiral)
- Freeze the claim. Paste: “4.8 C# needs .NET 10 — check SDKs before blaming Godot.”
- Ask for H1–H3. Archive quote +
dotnet --list-sdks. - Separate production pin — point to production Stop if Steam talk starts.
- CapEx four-liner aloud if a producer is present.
- File the receipt the same hour.
Company diligence appendix
| Diligence question | Pass answer |
|---|---|
| What SDK does 4.8 .NET require? | .NET 10.0+ per archive |
| Are we evaluating on .NET 8 only? | No — or we are not claiming C# readiness |
| Is CI claiming C#? | Only if agents show .NET 10 |
| Does SDK upgrade authorize Steam on 4.8-dev? | No — production Stop |
| What’s the default ship lane? | Supported 4.7.x until stable policy allows otherwise |
What success looks like after this Stop
| Outcome | Evidence |
|---|---|
| Refusal latched | Discord paste + receipt ship_net8_48_refused: true |
| SDK evidence | 10.x listed on eval hosts |
| CI honesty | Agents match or C# claims held |
| Prod pin separate | Production Stop still governs Steam |
| Sibling handoff | Live migrate worksheet for fill-ins |
Success is not “everyone on .NET 10 tonight.” Success is “we never claimed 4.8 C# readiness on .NET 8 folklore.”
Receipt — godot_48_csharp_dotnet10_refusal_receipt_v1.json
{
"receipt_type": "godot_48_csharp_dotnet10_refusal_receipt_v1",
"filled_at": "2026-10-14",
"archive_net10_requirement_quoted": true,
"dotnet_sdk_10_plus_on_eval_machine": false,
"godot_dotnet_build_flavor": true,
"ci_claims_csharp": false,
"ci_agents_net10": false,
"production_48dev_pin_refused": true,
"decision": "SIT_OUT",
"ship_net8_48_refused": true,
"gates_h1_h8_pass": false,
"owner": "",
"notes": ""
}
Latch the same hour you paste the sit-out.
Key takeaways
- Stop shipping or solemnly evaluating Godot 4.8 C# without .NET 10.
- 4.8-dev7 archive: minimum moved .NET 8 → 10.
- Feature freeze does not grandfather old SDKs.
- Default: LAB_SDK or SIT_OUT.
- Refuse SHIP_NET8_48.
- Prove
dotnet --list-sdks— IDE folklore is not evidence. - CI agents need the same floor if they claim C#.
- Production Steam pins stay on the 4.8-dev production Stop.
- GDScript success ≠ C# readiness.
- Migrate fill-ins → live worksheet sibling.
- File the refusal receipt.
- Primary keyword: godot 4.8 dotnet.
FAQ
Does Godot 4.8-dev7 really require .NET 10 for C#?
Yes for the .NET builds — the download archive states .NET 10.0 or newer, changing the minimum from .NET 8 to 10. See also the dev 7 snapshot.
Can I keep using .NET 8 for Godot 4.7 C#?
Supported 4.7.x workflows are a different lane. This Stop targets 4.8 C#/.NET evaluation and ship claims. Do not mix floors.
Does installing .NET 10 mean I can pin Steam to 4.8-dev?
No. SDK readiness ≠ production pin. See Stop shipping production Godot on 4.8-dev.
How is this different from the migrate worksheet?
The worksheet is the fill-in smoke. This URL is the refusal when teams claim 4.8 C# readiness on .NET 8 folklore.
What about GDScript-only teams?
This Stop is N/A for GDScript-only evaluation. Do not block GDScript milestones with C# SDK politics — and do not claim C# readiness without the .NET build path.
What primary keyword does this page target?
godot 4.8 dotnet — Stop opinion against 4.8 C# without .NET 10.
Related reading
- Godot 4.8 .NET 10 First Indie C Sharp Migrate Worksheet 2026 — lab sibling (live)
- Stop Shipping Production Godot Games on 4.8-dev After Feature Freeze - 2026 — production pin sibling
- Godot 4.8-dev AccessKit Mobile Smoke - First Indie Worksheet 2026
- Godot 4.8 Dev Snapshot - What Changed for Indie Devs July 2026
- Stop Quoting Unity Spark Closed Beta as Your Studio Ship Plan - 2026
- Steam Winter Sale 2026 Prep Worksheet - Lock Before Dec 17
- Godot Guide
- 25 Free Game Development Discord Servers
Primary sources: Dev snapshot: Godot 4.8 dev 7 · Download Godot 4.8 (dev7).
Conclusion
Feature freeze moved Godot 4.8 toward beta — it did not leave your C# host SDK at .NET 8. Stop shipping or solemnly evaluating Godot 4.8 C# without .NET 10. Prove the SDK. Align CI. Keep production pins on supported lines. Hand migrate steps to the live worksheet.
Paste the sit-out. Install the floor. File the receipt. Ship C# claims you can evidence — not last year’s install folklore.