Migration notes: godot-server-architecture
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
WebRTCPeerConnectionExtension._create_data_channel()return type isWebRTCDataChannel.
4.1 → 4.2
Official: Upgrading to Godot 4.2
No skill-relevant breaking changes for this hop.
4.2 → 4.3
Official: Upgrading to Godot 4.3
SceneMultiplayerprotocol break — dedicated server and clients must share the same minor version.
4.3 → 4.4
Official: Upgrading to Godot 4.4
No skill-relevant breaking changes for this hop.
4.4 → 4.5
Official: Upgrading to Godot 4.5
Node.get_rpc_config()→get_node_rpc_config().JSONRPC.set_scope()→set_method().Resource.duplicate(true)deep-copies internal resources only — useduplicate_deep(DEEP_DUPLICATE_ALL)when cloning authoritative server state graphs.
4.5 → 4.6
Official: Upgrading to Godot 4.6
StreamPeerTCP→StreamPeerSocket; migrate custom TCP gate/login servers.
4.6 → 4.7
Official: Upgrading to Godot 4.7
- Packed array element assignment no longer triggers whole-property setter — audit replicated state bags using typed arrays.
- Typed-return overrides must explicitly
return— fix headless server GDScript that relied on implicit null.