Quick answer: SubViewport → render_target_update_mode = UPDATE_ALWAYS. Or UPDATE_ONCE for static.
Custom mini-map SubViewport. Output texture is black. Update mode disabled by default.
The Fix
SubViewport node:
Render Target:
Update Mode: UPDATE_ALWAYS # continuous
Clear Mode: CLEAR_ALWAYS
Size: Vector2i(256, 256)
Children:
Camera2D / Camera3D
Visible scene content
# Display
$DisplaySprite.texture = $SubViewport.get_texture()
UPDATE_ALWAYS keeps the texture fresh per frame. Use UPDATE_ONCE for one-shot snapshots (e.g. character avatar).
Verifying
Mini-map sprite shows scene. Disabling update mode: stays black.
“Update mode set. Texture lives.”
Related Issues
For SCREEN_TEXTURE banding, see SCREEN_TEXTURE. For shader UV flip, see UV flip.
Update mode. Texture refreshes.