In my game the player does rotate but it doesn't physically move. I have everything else move around the player. Since the screen isn't updated until the code is finished (or it seems that way) I can delete everything and then add them in again. I created an app with Godot to edit the map that I am using. I have arrays for the location and rotation of a Key, keyx[num], keyy[num], keyd[num] . They fit on the map. I have currentx and currenty as the location on the map. The thing is that the key does not stay where I placed it on the map I have everything located in units of 2 (like 2M). this is what I am using to place the key.
func make_key():
var newkey = keyref.instance()
newkey.name = "Key"
var trx = -(currentx - keyx[currKey]) * 2
var try = -(currenty - keyy[currKey]) * 2
#newkey.global_transform.origin = Vector3(0, .1, -10)
newkey.global_transform.origin = Vector3(trx, .1, try)
newkey.scale = Vector3(.2, .2, .2)
newkey.rotate_y(deg2rad(keyd[currKey] * 90))
var matr = newkey.mesh.surface_get_material(3)
matr.set_shader_param("low_dig", currKey % 36)
matr.set_shader_param("high_dig", floor(currKey / 36))
add_child(newkey)