Programming & Technical Aug 16, 2026

Godot 4.6 Jolt Physics Default - Existing Project Switch Keep Hold 2026

Godot 4.6 Jolt Physics keep/hold for existing projects - switch from Godot Physics, Save and Restart, joint and SoftBody limits, collision margins, and a receipt before shipping.

By GamineAI Team

Godot 4.6 Jolt Physics Default - Existing Project Switch Keep Hold 2026

Pixel art robot scientist at a desk with a physics sandbox of bouncing balls, hinge joint, and purple Jolt lightning motif

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:

  1. 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.
  2. 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.
  3. 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).
  4. 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_3d slider 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:

  1. Full loop: title → first combat/puzzle → save/load if physics-affecting.
  2. Worst mesh: your noisiest ConcavePolygon or HeightMap floor.
  3. Fast movers: Continuous CD projectiles / vehicles.
  4. Multiplayer if any: authority-side physics assumptions still hold (Jolt does not invent netcode for you).
  5. 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?":

  1. 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."
  2. Scope: "3D only; 2D unchanged."
  3. Gaps: "SoftBody↔Area and some joint soft properties remain documented limitations; listed on our G4 matrix."
  4. 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

  1. Confirm Editor version is 4.6.x (or newer if your team pinned 4.7 - write the exact build).
  2. Create branch physics/jolt-switch-smoke (or duplicate the project folder).
  3. Note current setting: Project Settings → Physics → 3D → Physics Engine (probably Godot Physics).
  4. 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

  1. Set Physics → 3D → Physics Engine to Jolt Physics.
  2. Click Save & Restart (required - do not "test later without restart").
  3. 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

  1. Search the project for godot-jolt / JoltPhysicsServer3DExtension / Asset Library Jolt leftovers.
  2. If both extension and built-in are present, pick one path and document it.
  3. 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)

  1. Duplicate your project or make a git branch.
  2. Open Project Settings → Physics → 3D → Physics Engine → Jolt Physics.
  3. Save & Restart.
  4. Play your main level for two minutes. If the character still jumps and crates still fall, you passed the beginner bar.
  5. Write KEEP or HOLD on a sticky note with today's date.
  6. 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 main without 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:

  1. File the G6 receipt in /docs/ or your war room.
  2. If KEEP: one more full playtest; then merge; tag build notes "3D physics = Jolt".
  3. If HOLD: leave setting on Godot Physics; link this URL when someone cites "4.6 default."
  4. If REWRITE: create the milestone before anyone "just flips it on staging."

Company / diligence four-liner

  1. Status: Evaluated built-in Jolt on Godot &lt;version&gt; for existing project &lt;name&gt; on dated branch.
  2. Evidence: G3 motion + G4 feature matrix attached; SoftBody/joint gaps called out.
  3. Ship default: KEEP merged / HOLD on Godot Physics until milestone &lt;id&gt;.
  4. 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