Repository: godotengine/godot (language: cpp)

Issue:
Child Scene nodes disappearing from loaded/instantiated PackedScenes
### Tested versions

- not reproducible 4.3 stable
- reproducible 4.4 beta 1

### System information

MacOS 15.2 Godot4.4 Beta 1

### Issue description

Child scene nodes disappearing after loading of a packed scene.

[Example Repo](https://github.com/mrmikemon/scenetest4_4beta1.git)

### Steps to reproduce


[Example Repo](https://github.com/mrmikemon/scenetest4_4beta1.git)

Test code
1. Finds a place holder node in main scene
2. Removes the placehodler node 'LoadedLevel'
3. Loads a packed scene from resoure and instanciate
4. Rename the scene as 'LoadedLevel'

<img width="276" alt="Image" src="https://github.com/user-attachments/assets/7b94707a-5fdd-451a-ba29-40023830605e" />
Snapshot of tree just after load

<img width="273" alt="Image" src="https://github.com/user-attachments/assets/8d3d9bbb-c736-4cad-91f3-ed1f79df085a" />

Snapshot once main scene displayed

Test result
Level loads correctly
All child node instanciate
All child scenes 'BaseStation' child scenes are removed from scene only leaving simple nodes

Verified using RemoteDebug view of node treee.




### Minimal reproduction project (MRP)

[Example Repo](https://github.com/mrmikemon/scenetest4_4beta1.git)


Discussion / hints:

Fix patch:
diff --git a/scene/3d/gpu_particles_3d.cpp b/scene/3d/gpu_particles_3d.cpp
index 2b748e88b55f..f5203ee594f7 100644
--- a/scene/3d/gpu_particles_3d.cpp
+++ b/scene/3d/gpu_particles_3d.cpp
@@ -92,7 +92,11 @@ void GPUParticles3D::set_one_shot(bool p_one_shot) {
 
 	if (is_emitting()) {
 		if (!one_shot) {
-			restart();
+			if (!use_fixed_seed) {
+				set_seed(Math::rand());
+			}
+
+			RenderingServer::get_singleton()->particles_restart(particles);
 		}
 	}
 }


Test patch: