Could you please be more specific about the behavior you want to implement ?
From what I see, it seems that the issue is that only the checkpoint value is changed when the game launches. The _on_checkpoint_1_body_entered method is not called so your player position will not change when the game launches.
I can also see that you’re not waiting for the timer you created to time out.
In Godot 4, you can use the await keyword to wait for the timer to finish before moving the player. For example, change your _on_body_entered function to:
This way, the code will wait 3 seconds before setting the player’s position.
Also, double-check your signal connections to ensure that the _on_checkpoint_1_body_entered function is only called when you actually enter that specific checkpoint area, and not on game launch.
I see, the problem is that the _on_body_entered method is called at game startup.
It must be a node that collides with your Area3D node as soon as the game is started.
To resolve this issue, make sure that nothing unintended is colliding with your Area3D node at game startup.
Check your collision layers and masks so that only the intended node (for example, the player) can trigger the _on_body_entered method.
Additionally, consider adding a condition in the _on_body_entered function to verify that the colliding body is the one you expect.