So, I've found a 2D shader that works, but the reflection is upside-down, and I'm not sure how to fix it, heres the shader code:
shader_type canvas_item;
render_mode unshaded;
void fragment(){
vec2 uv = SCREEN_UV;
float y = 1.0 - uv.y;
COLOR = vec4(texture(SCREEN_TEXTURE, vec2(uv.x, y)));
}