Oh this was exactly what I was looking for, thanks for the link. However when I follow what the example does I get this error: invalid set index 'albedo_texture" (on base: 'null instance') with value of type 'ViewportTexture'
So I am not sure what is wrong here. I read up that it might have something to do with the layout of my nodes but am not sure. I also had to put in the ViewportContainer to be able to get anywhere but noticed that the example project does not need this, so not sure what is happening at all lol.
Here is my tree:

Code:
extends Spatial
func _ready():
var viewport = $ViewportContainer/Viewport
viewport.set_clear_mode(Viewport.CLEAR_MODE_ONLY_NEXT_FRAME)
yield(get_tree(), "idle_frame")
yield(get_tree(), "idle_frame")
$KinematicBody/ViewportQuad.material_override.albedo_texture = viewport.get_texture()
Also I have found though if I manually put in the ViewportTexture in the Inspector it will load fine however the new viewport still shows up on the main camera instead of just under the ViewportContainer.
