This is controlled through the reference space option you choose (a setting in the OpenXR project settings), each option has pro’s and con’s and are dependent on the type of game you make.
The default reference space is called Stage. This space is ideal for VR games as the tracking volume stays consistent but it also means that you are responsible for correctly reacting to the user holding the Meta home button to queue a recenter. You do this by connecting the pose_recentered signal on the OpenXRInterface. Now you can decide how to react to this. You can call XRServer.center_on_hmd to help you here but you have to be mindful that this will position your player on top of the XROrigin3D node, a teleport that might be unwanted (often all you want to do is change the direction the player is facing but keep the player where they currently are standing). What I often do here is store the current location of the player, then call center_on_hmd, then position the XROrigin3D node back where the player was standing, and reset the orientation of the XROrigin3D node.
The second reference space is called Local. This is an ideal reference space for seated games, so driving simulators or flight simulators. The condition at startup differs a bit from runtime to runtime, some auto recenter, some remember the last centered position, you don’t have a lot of control about that. But when the user triggers a recenter, this means the XRCamera3D is automatically positioned where the XROrigin3D node currently is.
The third reference space is called Local floor. This is an ideal reference space for AR games but can also be used for VR games. It basically works the same as the Local reference space but the height of the player is respected. In essence, when the player recenters, they are teleported to wherever the XROrigin3D node is. In VR games where you move the XROrigin3D node around with locomotion you probably still want to do extra work, so you would still use the pose_recentered logic the re-orient the XROrigin3D node and possibly move it back in place (or else users could get smart and do game breaking stuff like teleport through walls).
You can read some extra info here on how to hook up the signals.
I would change the reference space to Local. You’ll probably want to change where your XROrigin3D node is (basically you place it where the players head should be) and from that point onwards, it takes care of itself.