Godot 4.6 Jolt Physics Default - Existing Project Switch Keep Hold 2026
![]()
If you searched godot 4.6 jolt physics after upgrading, you probably hit the same confusion Discord loves: "Jolt is the default now - so my shipped game is already on Jolt, right?" No. Godot 4.6 makes Jolt the default 3D physics engine for new projects. Existing projects keep their previous setting until you change it. This URL owns the existing-project switch keep/hold - one evening, one Save & Restart, honest smoke of the differences that break ships, and a written KEEP or HOLD before you treat a default-marketing sentence as a pipeline fact.
This is not the first Jolt 2D platformer evening (greenfield CharacterBody smoke). It is not the Godot 4.7 upgrade lock (version jump calendar). It is the switch an already-tuned GodotPhysics3D 3D project to built-in Jolt ritual.
Why this matters now
Godot's 4.6 release notes are explicit: Jolt was integrated as an option earlier, proven in real projects, then promoted - Jolt is the default for all new 3D projects, existing projects are not forcibly migrated, and you change engines in Project Settings. The how-to lives in Using Jolt Physics: set Physics → 3D → Physics Engine to Jolt Physics, then Save & Restart.
Here is why an evening still matters in August 2026:
- Default marketing travels faster than project settings. New templates start on Jolt; your 4.4/4.5 production branch may still be on Godot Physics until someone opens the dropdown.
- The differences are ship-real. Joint soft limits, SoftBody/Area interactions, collision margins, ghost collisions, kinematic contacts, and WorldBoundary size behave differently under Jolt. Official docs list them - this evening makes you read them against your game, not against a blog vibe.
- The old godot-jolt extension is maintenance-mode. Built-in Jolt is the path; the extension remains for specific joint parity cases. Confusing the two is how teams double-install physics and chase ghosts (godot-jolt releases).
- Catalog already owns the cousin. The platformer tutorial teaches first contact. This URL teaches migration honesty for a game that already feels tuned.
Non-repetition: not Modern Theme keep/hold, not multiplayer rejoin, not opaque editor agents. One physics engine switch. One receipt.
Who this is for
| Reader | What you get tonight |
|---|---|
| Beginners | Plain "new vs existing" rule, Project Settings path, time box, common mistakes |
| Developers / TAs | Difference checklist from official docs, smoke gates, extension vs module |
| Creators | Discord paste + Monday steps so "we are on Jolt now" has a date and owner |
| Search | Primary keyword godot 4.6 jolt physics near the front; FAQ in query phrasing |
Time estimate: 60–90 minutes for a small 3D scene smoke; budget a second evening if you have heavy joints, SoftBody, or ConcavePolygon terrain. Prerequisites: Godot 4.6+, a copy of your project (or a branch you can revert), and a scene that exercises your real physics (not only an empty World3D).
Plain facts before you touch settings
What "default" means
- New 4.6 3D project: Jolt is already selected.
- Project upgraded from older Godot: physics setting stays as it was (usually Godot Physics) until you change it.
- 2D physics: unchanged. Jolt is a 3D story. GodotPhysics2D remains the 2D engine.
Built-in Jolt vs godot-jolt extension
| Path | When to use |
|---|---|
| Built-in Jolt Physics (Project Settings) | Default path on 4.6+ for almost everyone |
| godot-jolt GDExtension | Maintenance mode; mainly if you still need extension-only joint nodes not in the module |
Official docs: the extension is kept compatible until the built-in module reaches feature parity; substitute joint nodes from the extension are the big remaining gap (Using Jolt Physics).
What you will not do tonight
- Delete your Godot Physics tuning "because default"
- Switch on the Steam ship branch without a revert plan
- Crank every
physics/jolt_physics_3dslider on night one - Stack a engine version upgrade + physics switch + SoftBody rewrite in one commit
A concrete 75-minute evening schedule
Use this when a lead says "just flip Jolt on" without calendar space:
| Minutes | Gate | Done when |
|---|---|---|
| 0–10 | G1 branch + baseline clip | Branch exists; 60s video or notes of current feel |
| 10–20 | G2 switch + Save & Restart | Setting shows Jolt after reopen |
| 20–40 | G3 motion smoke | Same path as baseline; PASS/FAIL written |
| 40–60 | G4 docs matrix | Every Y feature in your game has a result cell |
| 60–70 | G5 extension audit | One physics path; no double stack |
| 70–75 | G6 receipt + Discord paste | KEEP/HOLD/REWRITE with owner |
If you blow past 90 minutes without a G3 result, stop. HOLD and schedule a SoftBody/joint specialist night - do not "finish" by merging vibes.
What "feels different" usually means (motion notes)
Teams often fail KEEP because they expected identical feel. Official differences explain many "weird" reports without a bug:
- Baumgarte / penetration: Jolt applies stabilization to position more than spring-like velocity kicks; stacks may settle differently than Godot Physics.
- Margins: Jolt uses convex radius / margin fraction differently than Godot Physics (which largely ignored Shape3D margins). Tiny colliders and sharp corners can produce surprising normals until you understand the shrink-then-shell behavior described in the docs.
- Ghost hits on meshes: Concave and heightmap edges need active-edge / enhanced internal edge removal awareness - especially open-world floors.
- Single-body joints: World-as-other-body behavior differs (node_a vs node_b framing). If you hung doors or hinges off "world," re-test limits on Jolt day one.
Write these as observations on the receipt ("crate stack settles slower") rather than instant ROLLBACK panic - unless the difference breaks a ship gate (speedrun jump height, puzzle timing, vehicle suspension).
Godot Physics vs Jolt - when HOLD is the mature call
| Situation | Lean KEEP | Lean HOLD |
|---|---|---|
| CharacterBody + basic RigidBody props | Yes, after G3 | — |
| Ship in < 14 days, physics already certified | Only with full G4 clean | Default HOLD |
| SoftBody cloth/hair driven by Area wind | — | HOLD / REWRITE |
| Heavy soft-limit joint tuning | After dedicated joint night | HOLD until joint smoke |
| Concave world mesh with known ghost issues | After edge settings pass | HOLD if no TA owner |
| Already on godot-jolt extension happily | Migrate carefully to built-in | HOLD until extension joints inventory done |
HOLD is not failure. Shipping a broken jump because a release note said "default" is failure.
Week-two playtest sheet (after KEEP)
If G6 says KEEP, do not merge and ghost the topic. Book a second short pass:
- Full loop: title → first combat/puzzle → save/load if physics-affecting.
- Worst mesh: your noisiest ConcavePolygon or HeightMap floor.
- Fast movers: Continuous CD projectiles / vehicles.
- Multiplayer if any: authority-side physics assumptions still hold (Jolt does not invent netcode for you).
- Export smoke: one release export on the target platform; editor-only KEEP is incomplete.
Latch a line on the build receipt: jolt_switch_ok: true with engine version and date.
Project settings rename (extension veterans)
If you previously used the godot-jolt extension, expect category moves from physics/jolt_3d to physics/jolt_physics_3d and renames documented in Using Jolt Physics (sleep, margins, CCD fractions, solver iterations → position/velocity steps, etc.). Night one: do not port every old tweak. Night two+: port only settings that map to a current symptom. Blindly copying extension JSON into the new tree is how teams invent new bugs.
CapEx / publisher talking points (expanded)
When a partner asks "are you on Jolt yet?":
- Accuracy: "We evaluated built-in Jolt on Godot 4.6.x for this title on <date>; default-for-new-projects does not auto-migrate catalogs."
- Scope: "3D only; 2D unchanged."
- Gaps: "SoftBody↔Area and some joint soft properties remain documented limitations; listed on our G4 matrix."
- Control: "Ship branch stays reversible to Godot Physics until KEEP merges with playtest sign-off."
That four-pack beats a slide that only quotes the release blog headline.
Format ladder (do not cannibalize)
| URL | Job |
|---|---|
| First Jolt platformer evening | Greenfield first contact / CharacterBody tutorial |
| This switch keep/hold | Existing GodotPhysics3D → built-in Jolt decision |
| 4.7 upgrade lock | Version upgrade calendar (may mention Jolt as a gate, not own the switch) |
| Modern Theme keep/hold | Editor chrome - not physics |
If your team only has energy for one Godot evening this week, pick based on pain: unstable jump after upgrade → this URL; never touched Jolt and learning nodes → platformer URL.
The one-evening keep/hold plan (G1–G6)
Each gate ends with a written line. The receipt is the deliverable.
G1 - Branch, version, and baseline
- Confirm Editor version is 4.6.x (or newer if your team pinned 4.7 - write the exact build).
- Create branch
physics/jolt-switch-smoke(or duplicate the project folder). - Note current setting: Project Settings → Physics → 3D → Physics Engine (probably
Godot Physics). - Record a 60-second baseline play of your critical physics scene (jump feel, crates, vehicles, joints - whatever you ship).
Write G1: Engine = <4.6.x>, was = Godot Physics, branch = physics/jolt-switch-smoke, baseline clip = attached.
G2 - Flip to Jolt and Save & Restart
- Set Physics → 3D → Physics Engine to Jolt Physics.
- Click Save & Restart (required - do not "test later without restart").
- When the Editor reopens, open the same scene and confirm the setting still reads Jolt.
Write G2: Switched to Jolt Physics, Save & Restart = Y, setting persists = Y.
G3 - Core motion smoke (character + rigid)
Run the same 60-second path as baseline:
- CharacterController / CharacterBody3D jump, slide, stairs if you have them
- RigidBody3D stacks or pushables
- Any Continuous CD / fast projectiles you rely on
Ask honestly: does it feel acceptably close, better, or broken? "Different" is allowed; "unshipable" is a HOLD signal.
Write G3: Motion smoke = PASS / FAIL, notes = <jump/crate/projectile>.
G4 - Difference honesty (read docs against your features)
Open Using Jolt Physics and check only the rows that exist in your game:
| Topic | Why it bites | Your game uses it? | Result |
|---|---|---|---|
| Unsupported joint soft-limit properties | Warnings / ignored tuning | Y/N | |
| Single-body joints / world node | Limit frame can invert vs Godot Physics | Y/N | |
| Collision margins / margin fraction | Small shapes, odd normals | Y/N | |
| Ghost collisions (active edges / enhanced removal) | Mesh terrain, heightmaps | Y/N | |
| SoftBody3D ↔ Area3D | Wind/gravity on soft bodies unsupported | Y/N | |
| WorldBoundaryShape3D size | Smaller effective plane under Jolt | Y/N | |
| Kinematic contact generation | Opt-in cost if you need static/kinematic contacts | Y/N | |
| Ray-cast face index | Default -1 unless enabled (memory cost) |
Y/N |
Write G4: Features touched = <list>, blockers = <none/list>, docs page reviewed = Y.
If SoftBody+Area wind is load-bearing for your ship fantasy, that alone can be a HOLD or a REWRITE milestone - not a silent KEEP.
G5 - Extension / double-stack audit
- Search the project for godot-jolt /
JoltPhysicsServer3DExtension/ Asset Library Jolt leftovers. - If both extension and built-in are present, pick one path and document it.
- Confirm you are not selecting "Jolt Physics (Extension)" unless you knowingly need extension joints.
Write G5: Extension present = Y/N, active path = built-in / extension / removed, conflict = Y/N.
G6 - Keep / hold / rewrite receipt
GODOT 4.6 JOLT SWITCH KEEP/HOLD - 2026-08-16
Engine: <4.6.x>
Branch: physics/jolt-switch-smoke
Was: Godot Physics
G2 restart: PASS
G3 motion: PASS / FAIL
G4 blockers: <none / SoftBody+Area / joints / ...>
G5 extension: clean / cleaned / needs joint extension
DECISION: KEEP (merge after playtest) / HOLD (stay Godot Physics) / REWRITE (milestone)
Next Monday step: <one sentence>
Discord paste: <one sentence>
Keep / hold / rewrite - decision table
| Decision | When it is honest | Monday action | Refuse |
|---|---|---|---|
| KEEP | G3 pass; G4 no blockers; extension clean | Merge branch after one more playtest night | Claiming "we always were on Jolt" |
| HOLD | Motion feel wrong; SoftBody/Area needed; ship date < 2 weeks | Stay on Godot Physics; schedule revisit | Silent half-switch on main |
| REWRITE | Need extension joints or SoftBody redesign | Named milestone + owner + acceptance tests | Folding rewrite into "optimization" |
Most mid-ship teams with simple CharacterBody + RigidBody stacks can KEEP after a clean G3/G4. SoftBody fashion projects and exotic joint soft-limits often HOLD or REWRITE.
Beginner path - first safe switch (no jargon prerequisites)
- Duplicate your project or make a git branch.
- Open Project Settings → Physics → 3D → Physics Engine → Jolt Physics.
- Save & Restart.
- Play your main level for two minutes. If the character still jumps and crates still fall, you passed the beginner bar.
- Write KEEP or HOLD on a sticky note with today's date.
- Do not publish a Steam build from the smoke branch until G4 is checked by someone who knows your SoftBody/joint usage.
Common beginner mistakes:
- Forgetting Save & Restart and thinking "Jolt is broken"
- Switching on
mainwithout a revert - Assuming 2D platformers need Jolt (they do not for 2D)
- Installing the Asset Library extension on top of built-in "to be safe"
Developer depth - settings you may touch later (not night one)
Official docs move many knobs under physics/jolt_physics_3d. After KEEP, only change settings that match a named symptom:
- Collision Margin Fraction - small-shape oddness (do not zero casually)
- Active Edge Threshold / Enhanced Internal Edge Removal - mesh terrain ghost hits
- Baumgarte Stabilization Factor - penetration resolve feel
- Generate All Kinematic Contacts - if you need kinematic-static contacts (costly)
- Enable Ray Cast Face Index - if you need
face_index(memory on concave meshes) - World Boundary Shape Size - if infinite planes clip too small
- Joints → World Node - single-body joint compatibility with older Godot Physics assumptions
Night-one rule from the companion platformer tutorial still holds: if the jump already works, leave advanced sliders alone and write the receipt.
Thread safety note
The built-in module supports running physics on a separate thread, but docs call thorough testing incomplete - treat Physics → 3D → Run On Separate Thread as experimental for your KEEP decision, not a free performance checkbox.
Creator Monday checklist (Discord-ready)
Godot 4.6.x Jolt switch smoke on branch
physics/jolt-switch-smoke: Save & Restart done, motion smoke PASS/FAIL, blockers <none/list>. Decision: KEEP / HOLD / REWRITE. Godot Physics remains revertible until merge. Receipt in#engineering.
Monday actions:
- File the G6 receipt in
/docs/or your war room. - If KEEP: one more full playtest; then merge; tag build notes "3D physics = Jolt".
- If HOLD: leave setting on Godot Physics; link this URL when someone cites "4.6 default."
- If REWRITE: create the milestone before anyone "just flips it on staging."
Company / diligence four-liner
- Status: Evaluated built-in Jolt on Godot
<version>for existing project<name>on dated branch. - Evidence: G3 motion + G4 feature matrix attached; SoftBody/joint gaps called out.
- Ship default: KEEP merged / HOLD on Godot Physics until milestone
<id>. - Risk note: Extension joint parity and SoftBody↔Area interactions remain explicit non-goals unless scheduled.
Failure modes
| Failure | Symptom | Fix |
|---|---|---|
| Default myth | Team thinks upgrade auto-switched physics | G1 read of Project Settings |
| No restart | "Jolt does nothing" | Save & Restart |
| SoftBody surprise | Wind/gravity areas dead | HOLD or redesign; docs honesty |
| Double stack | Extension + built-in chaos | G5 clean to one path |
| Margin zeroing | Worse collisions after "fix" | Revert fraction; don't vibe-tune |
| Main-branch switch | Can't ship hotfix | Always smoke on a branch |
Key takeaways
- Godot 4.6 defaults Jolt for new 3D projects only - existing projects keep Godot Physics until you switch (4.6 release).
- Switch path: Project Settings → Jolt Physics → Save & Restart (docs).
- Ship risk lives in differences - joints, SoftBody/Area, margins, ghost collisions, kinematic contacts - not in the marketing sentence "Jolt is default."
- Prefer built-in Jolt; treat godot-jolt extension as maintenance / special-joint cases.
- KEEP / HOLD / REWRITE with a written receipt beats Discord folklore.
FAQ
Is my upgraded Godot 4.6 project already on Jolt?
Only if Project Settings already say Jolt Physics. Upgrades keep the previous engine until you change it.
Do I need Jolt for a 2D game?
No. Jolt replaces the 3D engine path. 2D continues on GodotPhysics2D.
Should I install the godot-jolt Asset Library extension on 4.6?
Usually no. Use built-in Jolt. Keep the extension only if you knowingly need extension joint nodes still missing from the module (releases note).
Will SoftBody still get Area wind under Jolt?
Official docs state SoftBody3D and Area3D interactions (wind/gravity) are not currently supported under Jolt. Treat that as a HOLD/REWRITE trigger if your ship depends on it.
How long should the switch smoke take?
About 60–90 minutes for CharacterBody + RigidBody games. Longer if you must validate joints, concave terrain, or SoftBody.
Where is the first-time Jolt tutorial?
For greenfield first contact, use Your First Godot 4 Jolt Physics 2D Platformer - different job from this existing-project switch.
Related reading
- Godot Wild Jam 96 - 9-Day August Challenge Playbook 2026 — August jam finish cousin (not this physics switch)
- Your First Godot 4 Jolt Physics 2D Platformer - One Evening 2026
- Godot 4.7 Upgrade Lock - HDR AreaLight3D Asset Store Before Ship 2026
- Godot 4.6 Modern Theme - First Indie Editor Keep Hold Evening 2026
- Godot guide
- RigidBody2D and Area2D physics guide