Trend-Jacking / News Commentary Jul 18, 2026

Godot 4.7 Upgrade Lock - HDR AreaLight3D and Asset Store Before Ship - 2026

Godot 4.7 shipped HDR output, AreaLight3D, and a new Asset Store, with 4.7.1 fixing 78 bugs. A keep-hold-rewrite lock before micro-studios bet a ship date.

By GamineAI Team

Godot 4.7 Upgrade Lock - HDR AreaLight3D and Asset Store Before Ship - 2026

Pixel-art bakery and pastry chef thumbnail - careful, methodical craft as a metaphor for a disciplined Godot 4.7 upgrade lock

Godot Engine shipped 4.7 on 2026-06-18 under the tagline "Lights, Camera, Action!" (official release notes), and followed it with the 4.7.1 maintenance release on 2026-07-14, patching 78 fixes from 42 contributors (maintenance release notes). The headline list reads like a wishlist finally granted: HDR output, a new AreaLight3D node, a rebuilt Asset Store, Control offset transforms, and a built-in VirtualJoystick. Micro-studios see that list and ask the wrong first question - "should we upgrade this afternoon?" The right question is: what do we lock before we bet a ship date?

This is a Trend-Jacking / News Commentary playbook, not a feature tour. It turns the July 2026 release pair into a keep / hold / rewrite decision for small teams, with a one-week schedule, developer gates, a receipt schema, and honest smoke notes for mid-PC and Deck-class hardware. It sits next to GamineAI's other engine-lock pieces without repeating them: the Unreal Engine 5.8 lock playbook covers the cousin format for Epic's engine, the Jolt physics 2D platformer tutorial owns hands-on Jolt setup, and this URL owns Godot 4.7 feature status + upgrade-week ship-date lock.

Evidence note: Primary keyword godot 4.7. Demand signals include Semrush-tracked parent-keyword search volume for "godot" (60,500 monthly, June 2026 US snapshot) and community engagement north of 53,000 views on release-day coverage as of 2026-07-18. The SERP is dominated by official release notes, the HDR deep-dive, and migration docs plus feature roundups; the gap is a micro-studio lock checklist covering HDR, AreaLight3D, the Asset Store, VirtualJoystick, and 4.7.1's maintenance status together, which none of GamineAI's existing Godot posts currently cover.

Why this matters now (July 2026)

Two things happened four weeks apart. First, 4.7 landed with genuinely new rendering and workflow capability - not just polish. Second, 4.7.1 arrived as a maintenance release with no known incompatibilities against 4.7, explicitly recommended as safe for everyone already on 4.7 (maintenance release notes). That combination creates a predictable failure pattern for small teams:

  1. A developer sees "HDR output" and "AreaLight3D" in a feature roundup and starts wiring both into a ship-critical scene the same week, without checking platform and renderer scope.
  2. A producer treats "safe maintenance release" as license to upgrade the whole engine mid-milestone, including the physics and input breaking changes bundled into the 4.6-to-4.7 jump, not just the 4.7-to-4.7.1 patch.
  3. Nobody separates "this is now possible" from "this is safe to ship on this quarter" - the same trap that hits every major engine release, Godot included.

Direct answer: Run a one-week lock. Classify HDR output, AreaLight3D, the new Asset Store, VirtualJoystick, and Control offset transforms as either adopt candidate or hold, resolve the four bundled 4.6-to-4.7 breaking changes (Jolt SoftBody3D, WorldBoundaryShape3D, AudioStreamPlayer mask, input device IDs) on a throwaway branch, smoke mid-PC and Deck-class hardware, file godot_47_upgrade_lock_receipt_v1.json, and only then let marketing print a date. This mirrors the discipline GamineAI already recommends for Unreal Engine 5.8 - different engine, same governance problem.

Who this playbook is for

Audience Outcome
Creators / solo devs A keep/hold/rewrite table to paste into Discord before touching the ship branch
Developers Feature-by-feature adopt-vs-hold calls, migration gates U1-U6, and a receipt schema
Companies / publishers Diligence language for "what changed in the engine upgrade" without inventing claims
Search Primary keyword godot 4.7, with HDR output and AreaLight3D covered as secondary intents

Time: about one focused week, not a month of asset-browsing. Prerequisites: a Godot 4.6 project on Git, one mid-spec PC, one Deck-class or low-spec laptop, and - if you plan to test HDR - at least one HDR-capable display for the honest path (a non-HDR monitor is still useful for the "does the toggle crash" path). If you are new to Godot's node model first, start with the beginner-friendly Godot 4 course setup lesson before touching an upgrade branch.

Keep / hold / rewrite - ship-date lock

Decision Meaning Example on 4.7
Keep Stay on 4.6.x; cherry-pick nothing Ship in under six weeks on 4.6 with known, already-fixed bugs
Hold Upgrade to 4.7 (or 4.7.1) for stability and QoL, freeze new rendering/input features Take 4.7.1's 78 fixes; skip HDR output and AreaLight3D on the ship branch
Rewrite Deliberately rebuild a system around a new 4.7 pillar New lighting pass built around AreaLight3D, or a full HDR color pipeline - new milestone, new date

Print this table before anyone "just tries HDR on main" the same afternoon the release notes went up.

Feature deep-dive - HDR output adopt vs hold

Godot's internal renderer has computed lighting in HDR for a long time; what 4.7 adds is the ability to actually output that range to the display instead of clamping to SDR (HDR output arrives in Godot 4.7). That is a genuinely new capability, not a toggle for an existing look - which is exactly why it needs a lock decision instead of a same-day flip.

Platform and renderer scope (confirm before adopting):

  • Supported platforms: Windows, macOS, iOS, visionOS, and Linux under Wayland only - explicitly not X11. Android support is still work in progress.
  • Renderer scope: Forward+ and Mobile only. The Compatibility renderer and Web exports are not covered.
  • Driver matrix: Direct3D12 on Windows (the default renderer backend for projects created on 4.5 or newer), Metal or Vulkan on Apple platforms, and Vulkan on Linux.
  • Enable path: Project Settings, then Display, then Window, then HDR, then toggle Request HDR Output.
  • Tonemapping context: HDR output builds on the AgX tonemapper and glow pipeline changes introduced in 4.6. If your project already customized AgX or glow curves for SDR, budget time to re-verify the look under HDR - the same curves do not necessarily read the same way once the display can actually show the extended range.

Adopt candidate when:

  • Your primary ship platform is Windows, macOS, or a Wayland-based Linux desktop, and your store page can honestly claim HDR support on capable displays.
  • You already use Forward+ or Mobile and have budget for a short lighting/tonemap re-pass.
  • You are willing to ship an SDR fallback path (Request HDR Output failing gracefully) for players without HDR displays or on X11.

Hold when:

  • You are on the Compatibility renderer, targeting Web export, or your primary platform is Android (still WIP for HDR as of 4.7).
  • Your ship window is inside six weeks and nobody has an HDR-capable test display yet.
  • Your look-dev is finished and signed off in SDR; flipping HDR this close to Gold reopens a closed art pass.

Feature deep-dive - AreaLight3D adopt vs hold

AreaLight3D is a new 3D light node that renders real-time light from a rectangle in space, giving soft radiating glows - a humming television, a neon sign, light through a frosted window - without faking the effect through an emissive material plus baked global illumination (release notes). It produces softer shadows and more realistic reflections than a comparable point or spot light for the same visual target.

Consideration Detail Lock-week default
Novelty Brand-new node type in 4.7, not a refinement of an existing light Treat as new dependency, budget a spike
Use case fit Best for glowing panels, billboards, screens, and soft window light Adopt candidate for scenes that already fake this with emissive tricks
Ship-critical risk New nodes in a .0 release can still have edge-case behavior surfacing in .1/.2 patches Hold for hero cinematic shots two weeks before Gold
Art workflow impact Replaces some emissive-material-plus-GI setups; art may need re-authoring Test on one representative scene, not the whole level set, first

Beginner note: if your current glowing-surface trick already looks good enough and passes your performance budget, you do not owe AreaLight3D a slot on the ship branch just because it is new. Adopt it where it solves a real problem (a scene that never looked convincing with emissive-plus-GI), not because the release notes made it look good in a demo video.

Feature deep-dive - the new Asset Store

Godot's old Asset Library has been replaced with a new Asset Store in 4.7: better-organized asset listings, zoomable preview images, visible asset ratings, and background threading so browsing does not block the editor's main thread (release notes). The 4.7.1 maintenance release also changed the store's default sort to highest scored rather than newest, which quietly changes what shows up first when your team browses for a plugin mid-project (maintenance release notes).

What this changes for micro-studios:

  1. Discovery habits shift. If your team bookmarked specific asset URLs or relied on "recently added" sorting to find community plugins, re-check those workflows - default sort order changed in 4.7.1.
  2. Ratings become a real signal. Visible ratings mean a quick trust check is now built into the browsing flow instead of requiring you to cross-reference GitHub stars separately.
  3. Threading reduces editor stalls, but does not change plugin compatibility. A plugin author still has to ship a 4.7-compatible build; browse faster, but verify version compatibility exactly as carefully as before.

Lock-week action: do not treat "the store looks nicer" as a reason to go on a plugin-adoption spree during upgrade week. Audit existing plugin dependencies for 4.7 compatibility first (see the plugin and add-on audit table below); only browse the new store for new dependencies after the ship-critical plugin list is confirmed green.

Feature deep-dive - VirtualJoystick and Control offset transforms

VirtualJoystick ships as a built-in node in 4.7 with three operation modes - Fixed, Dynamic, and Following - plus built-in theming, removing the need for a third-party add-on or a hand-rolled touch-input rig for mobile projects (release notes). For any micro-studio shipping to touchscreens, this is one of the more immediately useful additions in the release, because it replaces a piece of boilerplate nearly every mobile Godot project used to hand-write or vendor from an add-on.

Adopt-candidate call: VirtualJoystick is a strong adopt candidate for new mobile-facing prototypes and for teams that were about to write their own touch-input rig anyway. It is a hold for a project two weeks from a mobile ship date that already has a working, tested custom joystick - swapping input schemes that close to Gold is exactly the kind of "new dependency near ship" risk this lock exists to prevent. For the step-by-step wiring guide, see Your First Godot 4.7 VirtualJoystick - Mobile Controls One Evening 2026; this article's job is the adopt-vs-hold call, not the evening tutorial.

Control offset transforms solve a long-standing GUI annoyance: Godot's Container nodes apply position, rotation, and scale to their children, so any transform you apply to a child gets wiped out the next time the container re-sorts (which happens whenever children are added, removed, or reordered). The new offset_transform_* properties on Control let you translate, rotate, or scale a control without that transform being lost on re-sort, similar in spirit to the CSS transform property - and you can choose whether the offset affects mouse input, with the default being purely visual so a button never loses hover state just because it slid or scaled into view (release notes).

Adopt-candidate call: this is a low-risk, high-value adopt for UI polish - button slide-ins, hover scale-ups, menu transition juice - because it is additive to existing Container-based UI rather than a replacement for it. The main lock-week task is simply confirming your UI animation code (Tweens, AnimationPlayer tracks) targets the new offset properties instead of fighting the container by animating position/scale directly, which is the old workaround this feature exists to retire.

Migration notes that actually break things

The 4.6-to-4.7 jump is officially described as "relatively safe" for most projects, but four behavior changes are common enough to bite a real ship branch if nobody reads the migration guide line by line (upgrading from 4.6 to 4.7):

Change What breaks Fix during lock week
Jolt SoftBody3D mass and stiffness Under Jolt Physics, SoftBody3D no longer defaults mass to 0 (which previously auto-calculated 1 kg per point, producing very high total mass); it now defaults to 1 kg for the whole body, matching Godot Physics. linear_stiffness also now applies differently. Re-tune linear_stiffness and damping_coefficient on every Jolt SoftBody3D instance by hand; do not assume old values still look right
Jolt WorldBoundaryShape3D.plane.d sign flip Under Jolt Physics only, the sign convention for plane.d on WorldBoundaryShape3D flipped to match Godot's own convention - the opposite of 4.6 behavior. Flip the sign yourself on every Jolt world-boundary plane to preserve 4.6 behavior; test invisible floor/ceiling planes explicitly, they fail silently
AudioStreamPlayer default area_mask Default changed from 1 (layer 1 enabled) to 0 (disabled). If you rely on audio_bus_override on Area2D/Area3D with the old default mask, bus overrides silently stop working. If you used the default mask (only layer 1 ticked) and rely on area-based bus overrides, manually reset the mask to layer 1 after upgrading
Input device IDs for mouse/keyboard Mouse and keyboard device IDs changed from 0 to InputEvent.DEVICE_ID_MOUSE and InputEvent.DEVICE_ID_KEYBOARD, because some joypads also use 0 as their device ID. Compare InputEvent.device against the new named constants instead of hardcoding 0 anywhere in input-handling code

A fifth item is a changed default, not a breaking change per se, but it affects every newly created project: the default stretch mode and stretch aspect for new projects are now canvas_items and expand, replacing the old disabled and keep defaults. Existing projects keep their saved settings, so this only matters for brand-new prototypes started after upgrading - worth knowing before a teammate opens a new project and wonders why scaling behaves differently than the last one.

If your project uses Jolt for 3D physics and touches any of SoftBody3D, WorldBoundaryShape3D, or general Area3D overlap logic, treat physics as a dedicated gate, not an afterthought folded into general smoke testing. Pair this section with the hands-on Jolt physics 2D platformer tutorial if you are setting up Jolt collision shapes for the first time, and cross-check collision layer and area logic against the RigidBody2D and Area2D physics guide - the AudioStreamPlayer mask change specifically interacts with Area2D/Area3D layer setup, so a guide written before this default flipped may assume the old behavior.

One-week lock schedule

Day Outcome
Mon Branch godot47-lock; record baseline behavior on 4.6 for physics, audio bus overrides, and input handling
Tue Upgrade to 4.7.1 directly (skip bare 4.7 since 4.7.1 has no known incompatibilities against it); regenerate project; fix only blocker errors
Wed Resolve the four migration-guide breaking changes explicitly - Jolt SoftBody3D, WorldBoundaryShape3D sign, AudioStreamPlayer mask, input device IDs
Thu Spike HDR output and AreaLight3D on a throwaway scene; compare against SDR/emissive baseline; do not touch ship scenes yet
Fri Freeze decision - lock which of HDR, AreaLight3D, VirtualJoystick, and Control offset transforms are adopt vs hold; file receipt
Sat/Sun Optional art or UI spike on disposable scenes for anything marked hold-but-interesting

Mid-PC and Deck-class / OLED smoke notes for HDR

HDR output is the one 4.7 feature that genuinely needs hardware-specific verification, because "does it render" and "does it look right on the screens players own" are different questions.

Machine What to capture Fail signal
Mid-PC, HDR-capable monitor Enable Request HDR Output; confirm Windows displays the D3D12-backed HDR image without banding or crushed highlights; compare against the SDR/AgX baseline from before the toggle Blown-out highlights, visible banding, or a crash on toggle
Mid-PC, non-HDR monitor Confirm the HDR toggle fails gracefully to an SDR-equivalent image instead of crashing or rendering a broken/over-bright frame Any crash, black screen, or unplayable exposure when HDR is requested but unsupported
Deck-class handheld / OLED panel SteamOS-class handhelds typically run a Wayland-based compositor, which lines up with Godot's Linux (Wayland) HDR support family - but do not assume pass-through works end to end. Test explicitly, in both docked and handheld output modes, and do not claim HDR support on a store page for a device you have not personally verified Toggle silently does nothing, panel washes out, or dock output disagrees with handheld output
X11 desktop Linux Confirm HDR output is not expected to work (by design) and that the game still runs correctly in SDR without the toggle causing errors Any crash or hard-fail specifically because HDR was requested on X11

Why OLED matters specifically: OLED panels have near-infinite contrast and deeper blacks than the LCD panels many mid-PC monitors use, which means both banding artifacts and over-bright highlight clipping are more visible, not less, on an OLED test bench. Treat an OLED Deck-class device as your strictest HDR reviewer, not your easiest pass.

Non-negotiable rule: never enable "Request HDR Output" as the default state for a ship build without a settings-menu path back to SDR. Players on unsupported configurations (Android, X11, Web, Compatibility renderer) or non-HDR displays need a way to get a correct image without editing project files.

Developer gates U1-U6

Gate Pass criterion
U1 Written ship window and current Godot version (4.6.x baseline) recorded before touching the upgrade branch
U2 Keep/hold/rewrite decided explicitly for HDR output, AreaLight3D, VirtualJoystick, and Control offset transforms
U3 All four 4.6-to-4.7 breaking changes (Jolt SoftBody3D, WorldBoundaryShape3D sign, AudioStreamPlayer mask, input device IDs) reviewed and resolved or explicitly not applicable
U4 Plugin/add-on audit complete; no ship-critical plugin marked unknown or blocked without a dated exception
U5 Mid-PC smoke logged for both HDR path (if adopted) and general gameplay regressions
U6 Deck-class / OLED smoke logged, godot_47_upgrade_lock_receipt_v1.json filed, and non-adopted features confirmed absent from the ship branch

Latch: godot_47_lock_ok only when U1-U6 all pass.

Receipt template

{
  "schema": "godot_47_upgrade_lock_receipt_v1",
  "date_iso": "2026-07-18",
  "prior_godot_version": "4.6.x",
  "target_godot_version": "4.7.1",
  "ship_window_iso": "2026-QQ-DD",
  "decision": "hold",
  "hdr_output": "hold_pending_display_test",
  "arealight3d": "adopt_candidate",
  "virtual_joystick": "hold_near_ship",
  "control_offset_transforms": "adopt_candidate",
  "new_asset_store_plugins_added": false,
  "migration_notes_resolved": {
    "jolt_softbody3d_mass_stiffness": true,
    "jolt_worldboundaryshape3d_sign_flip": true,
    "audiostreamplayer_area_mask_default": true,
    "input_device_id_constants": true
  },
  "mid_pc_smoke_ok": true,
  "deck_class_oled_smoke_ok": true,
  "gates": {
    "U1": true,
    "U2": true,
    "U3": true,
    "U4": true,
    "U5": true,
    "U6": true
  },
  "godot_47_lock_ok": true,
  "notes": "HDR output held pending a second HDR-capable display for verification; ship branch stays SDR-only this milestone."
}

Plugin and add-on audit for upgrade week

Every project has a .godot/addons folder full of dependencies nobody has re-checked since the last major bump. Before touching HDR or AreaLight3D, confirm the boring stuff still compiles.

Symptom Likely cause Fix during lock week
Editor opens but a script errors on load Add-on uses a class or property that changed type (for example, is_class now takes a StringName instead of String) Diff the add-on's source against the 4.7 migration guide's Core section; patch or pin the add-on version
Custom RichTextLabel image sizing looks wrong add_image/update_image parameters changed from bool percent flags to typed width_unit/height_unit values Update any BBCode-generation code that manually constructs image tags with the old percent parameters
Old virtual-joystick add-on conflicts with the new built-in node Two joystick implementations registered under similar names Pick one - migrating to the built-in VirtualJoystick is usually the right call for new work, but do not swap mid-milestone near ship
CI export fails only on the build machine Export templates for the CI's target platform were not re-downloaded after the version bump Use the new per-platform export template downloader instead of assuming templates carried over

Lock-week rule: maintain a short plugins_47_audit.csv with columns plugin_name, source (built-in/asset-store/vendored), status_47 (ok/blocked/unknown), owner. Gate U4 fails if any ship-critical row is blocked or unknown without a dated exception recorded in the receipt notes.

Company diligence

Question Answer from the lock
Why upgrade now instead of waiting? 4.7.1 is an explicitly recommended, no-known-incompatibility maintenance release on top of a stable 4.7 - the safety case is stronger than most mid-cycle bumps
What is calendar-safe? Control offset transforms and, for most teams, AreaLight3D on non-hero scenes, after a short spike
What is R&D? HDR output until a second display and platform matrix are verified; VirtualJoystick if it means swapping a working input scheme close to ship
What is the rollback plan? Keep the 4.6.x branch tagged; the four migration-guide breaking changes are the only hard blockers to a clean rollback, so document them explicitly

Cost/ROI: one focused week of lock is materially cheaper than a slipped Steam date caused by an untested HDR toggle or a silently broken audio bus override. Governance: only the producer edits ship_window_iso in the receipt, and only after godot_47_lock_ok is true.

Common mistakes

  1. Flipping "Request HDR Output" to true as the shipped default without a settings-menu fallback to SDR.
  2. Assuming AreaLight3D is a drop-in replacement for every existing emissive-plus-GI trick without a side-by-side comparison.
  3. Treating "4.7.1 has no known incompatibilities" as license to skip the four 4.6-to-4.7 breaking-change checks - 4.7.1's safety claim is about 4.7-to-4.7.1, not about the original 4.6-to-4.7 jump.
  4. Forgetting the AudioStreamPlayer default area_mask change and shipping with silently broken bus overrides that only a QA pass on a build (not the editor) catches.
  5. Adopting the built-in VirtualJoystick two weeks before a mobile ship date instead of scheduling the swap for the next milestone.

Scenarios A-E

ID Situation Action
A Shipping in under six weeks Keep on 4.6.x, or a narrow Hold on 4.7.1 with zero new rendering features touched
B Mobile project already has a hand-rolled joystick Hold on the built-in VirtualJoystick until the next milestone; do not swap input near ship
C New project just starting, targets Windows/macOS desktop Adopt HDR output and AreaLight3D from day one, budget the look-dev time up front
D Project uses Jolt Physics with SoftBody3D or WorldBoundaryShape3D Treat migration notes as a dedicated gate, not optional reading, before any other feature work
E UI has janky slide-in buttons animated by fighting Container sort order Adopt Control offset transforms immediately - low risk, clear win, no ship-date conflict

Diligence zip contents for upgrade week

When a publisher or porting partner asks "what changed in the engine upgrade," a chat message is not governance. Ship a small zip the same day you latch godot_47_lock_ok:

godot47_diligence_<date>/
  README.txt                         # one-page keep/hold/rewrite summary
  godot_47_upgrade_lock_receipt_v1.json
  plugins_47_audit.csv
  smoke/
    hdr_midpc_notes.txt
    hdr_deck_oled_notes.txt
    baseline_vs_47_gameplay_notes.txt
  migration/
    jolt_softbody3d_retune_notes.md
    worldboundary_sign_flip_checklist.md
    audiostreamplayer_mask_check.md
  rollback/
    prior_tag.txt                    # git tag + Godot version on 4.6.x

Company-facing language: "Engine baseline is Godot 4.7.1. Calendar-safe additions are Control offset transforms and, after smoke, AreaLight3D on non-hero scenes. HDR output is R&D-flagged pending display-matrix verification, consistent with the platform and renderer scope in the official HDR write-up. Rollback target is the tagged 4.6.x branch, with the four documented breaking changes reversed."

Key takeaways

  • Godot 4.7 (2026-06-18) plus the 4.7.1 maintenance release (2026-07-14, 78 fixes, no known incompatibilities) form the current stable pair - lock a decision before betting a ship date on either.
  • HDR output is real but scoped - Windows/macOS/iOS/visionOS/Linux Wayland only, Forward+ and Mobile only, D3D12/Metal/Vulkan drivers, and an explicit Request HDR Output toggle that needs a graceful SDR fallback.
  • AreaLight3D and Control offset transforms are strong adopt candidates after a short spike; the new Asset Store changes default sort behavior, so re-check plugin discovery habits.
  • VirtualJoystick is a genuine adopt candidate for mobile projects, but hold it near a ship date if a working custom joystick already exists.
  • Four migration-guide breaking changes (Jolt SoftBody3D, WorldBoundaryShape3D sign flip, AudioStreamPlayer default mask, input device ID constants) are the real risk in the 4.6-to-4.7 jump - resolve them explicitly, then smoke mid-PC and Deck-class/OLED hardware and latch godot_47_lock_ok.

FAQ

Should micro-studios upgrade straight to Godot 4.7.1, or go through 4.7 first?

Go straight to 4.7.1. It carries no known incompatibilities against 4.7 and includes 78 additional fixes, so there is no upgrade-safety reason to stop at the intermediate 4.7.0 release.

Is HDR output safe to ship on in Godot 4.7?

It is real and functional on its supported platform and renderer combinations, but it is scoped - not available on X11, Android is still work in progress, and it only applies to Forward+ and Mobile, not Compatibility or Web. Ship it only after testing on an actual HDR-capable display and confirming a graceful SDR fallback.

What is AreaLight3D and should I replace my existing glow effects with it?

AreaLight3D is a new node type that renders real-time light from a rectangle, useful for glowing panels, signage, and soft window light. Replace an existing emissive-plus-GI trick only where a direct comparison shows a clear visual or performance win - not automatically because it is new.

Does the new Asset Store change how my existing plugins work?

No, the Asset Store change is a browsing and discovery interface update, including a 4.7.1 change to default sort order (highest scored instead of newest). Plugin compatibility with 4.7 still depends entirely on whether the plugin author shipped a compatible build.

What breaks when upgrading a Jolt Physics project from 4.6 to 4.7?

Four things matter most: SoftBody3D mass and stiffness defaults changed, WorldBoundaryShape3D.plane.d sign convention flipped under Jolt, AudioStreamPlayer default area_mask changed from enabled to disabled, and mouse/keyboard input device IDs changed from 0 to named constants. All four are documented in the official upgrade guide.

Is Godot's built-in VirtualJoystick better than a third-party joystick add-on?

For new mobile projects, yes - it removes an entire category of boilerplate and comes with three built-in modes and theming. For a project two weeks from a mobile ship date with a working custom joystick already tuned, hold the swap until the next milestone.

When is it safe to bet a Steam or mobile ship date on Godot 4.7?

After the lock week completes: keep/hold/rewrite is written for HDR, AreaLight3D, VirtualJoystick, and Control offset transforms; all four migration-guide breaking changes are resolved; the plugin audit shows no unknown ship-critical rows; and mid-PC plus Deck-class/OLED smoke both pass. If you ship in under six weeks, Keep on 4.6.x with a tagged rollback remains a fully valid choice - 4.7 is not mandatory for every calendar.

Does "no known incompatibilities" in the 4.7.1 release notes mean I can skip testing entirely?

No. That language describes the 4.7-to-4.7.1 patch step specifically. It does not cover the separate, documented breaking changes introduced in the original 4.6-to-4.7 jump, which every project migrating from 4.6 still needs to review and resolve.

Conclusion

Godot 4.7 and its 4.7.1 maintenance patch give micro-studios real new tools - HDR output, AreaLight3D, a better Asset Store, VirtualJoystick, and Control offset transforms - without forcing a rewrite of anything that already works. The risk is not the engine; it is skipping the one-week lock and letting feature excitement or a "safe maintenance release" headline substitute for an actual smoke test on the hardware players own. Decide keep, hold, or rewrite for each headline feature, resolve the four documented breaking changes, smoke mid-PC and Deck-class/OLED hardware, file the receipt, and only then let marketing print a date.

Related reads