Migration notes: godot-genre-shooter-fps
Incremental upgrade for topics this skill covers. Apply one hop, stabilize/test, then next. Never skip hops.
If the project is < 4.0, follow godot-version-migration era bridges (legacy → 3→4) until 4.0, then these hops. Official 3→4: Upgrading from Godot 3 to Godot 4.
4.0 → 4.1
Official: Upgrading to Godot 4.1
Area3D.prioritytype isint(wasfloat) — audit hitbox/trigger ordering.PhysicsDirectSpaceState3D.collide_shapereturnsArray[Vector3].Geometry3D.segment_intersects_convextakesArray[Plane].MeshInstance3D.create_multiple_convex_collisionsoptionalsettings.Node3D.look_at/look_at_from_positiongainuse_model_front— retune weapon/ADS aim helpers.
4.1 → 4.2
Official: Upgrading to Godot 4.2
- Mesh format upgrade — use Project → Tools → Upgrade Mesh Surfaces on weapon/environment meshes.
4.2 → 4.3
Official: Upgrading to Godot 4.3
- If the genre uses TileMap, migrate to
TileMapLayernodes before relying on layer APIs. - If the genre ships multiplayer, upgrade all peers to 4.3 together (
SceneMultiplayerprotocol). PhysicsShapeQueryParameters3D.motionisVector3(wasVector2) — fix hitscan/sweep queries.- Reverse Z depth — update custom scope/post shaders and decal blood overlays.
Skeleton3D.add_bonereturnsint32; pose update signal rename.
4.3 → 4.4
Official: Upgrading to Godot 4.4
- CSG uses Manifold — non-manifold meshes unsupported; use
MeshInstance3Dfor blocking volumes and planes. SoftBody3D.set_point_pinnedgains optionalinsert_at.
4.4 → 4.5
Official: Upgrading to Godot 4.5
Node.get_rpc_config→get_node_rpc_config— audit weapon/fire RPC configs.- Jolt:
physics/jolt_physics_3d/simulation/areas_detect_static_bodiesremoved — Areas always report static overlaps; filter via layers/masks. - GLTF/BLEND/FBX naming version for non-joint nodes in skeletons — set Import dock Naming Version for old weapon rigs.
4.5 → 4.6
Official: Upgrading to Godot 4.6
- Retune Environment glow/fog if the genre leans on bloom-heavy looks (muzzle flash, lens dirt).
- New projects default 3D physics engine to Jolt — existing projects keep prior setting; verify Jolt differences before shipping.
MeshInstance3D.skeletondefault empty; SpringBone enums moved toSkeletonModifier3D.
4.6 → 4.7
Official: Upgrading to Godot 4.7
- Confirm project stretch mode and
AudioStreamPlayer.area_maskafter opening in 4.7. AudioStreamPlayer.area_maskdefault is 0 — set mask for room/zone weapon reverb and footstep buses.- Jolt:
WorldBoundaryShape3D.plane.dsign convention flipped vs 4.6 — negate if kill planes moved. - Jolt:
SoftBody3Ddefault mass is 1 kg for the body — retune gore/ragdoll stiffness/damping. - Prefer AreaLight3D for soft rectangular muzzle/portal lights without GI hacks.