TextureRectangle does appear in HUD

Godot Version

Godot 4.6.2

Question

Hey guys, I am trying to add a character portrait to the HUD of my game, but for whatever reason it doesn’t appear. Everything else in the scene tree does, even the status icons when applying the states, but never the portrait.

When I copy and paste another texture rectangle and leave it as a sibling but isnt part of the script it does show up. So I think its has to be something about the script rather than the nodes.

extends Control

@export var texture_male: Texture2D
@export var texture_female: Texture2D
@export var texture_extra1: Texture2D
@export var texture_extra2: Texture2D

@export var icon_no_walk: Texture2D
@export var icon_no_run: Texture2D
@export var icon_no_jump: Texture2D
@export var icon_no_crouch: Texture2D
@export var icon_no_attack: Texture2D
@export var icon_no_see: Texture2D
@export var icon_no_talk: Texture2D
@export var icon_no_answer: Texture2D
@export var icon_no_touch: Texture2D

@onready var portrait: TextureRect = $AnchorBottomLeft/PlayerPortrait

@onready var health_bar: ProgressBar = $AnchorBottomLeft/InfoPanel/HBoxContainer/VBoxContainer/HealthBar
@onready var inspect_label: Label = $AnchorBottomLeft/InfoPanel/HBoxContainer/VBoxContainer/InspectLabel
@onready var icon_walk: TextureRect = $AnchorBottomLeft/InfoPanel/HBoxContainer/StatusIcons/IconWalk
@onready var icon_run: TextureRect = $AnchorBottomLeft/InfoPanel/HBoxContainer/StatusIcons/IconRun
@onready var icon_jump: TextureRect = $AnchorBottomLeft/InfoPanel/HBoxContainer/StatusIcons/IconJump
@onready var icon_crouch: TextureRect = $AnchorBottomLeft/InfoPanel/HBoxContainer/StatusIcons/IconCrouch
@onready var icon_attack: TextureRect = $AnchorBottomLeft/InfoPanel/HBoxContainer/StatusIcons/IconAttack
@onready var icon_see: TextureRect = $AnchorBottomLeft/InfoPanel/HBoxContainer/StatusIcons/IconSee
@onready var icon_talk: TextureRect = $AnchorBottomLeft/InfoPanel/HBoxContainer/StatusIcons/IconTalk
@onready var icon_answer: TextureRect = $AnchorBottomLeft/InfoPanel/HBoxContainer/StatusIcons/IconAnswer
@onready var icon_touch: TextureRect = $AnchorBottomLeft/InfoPanel/HBoxContainer/StatusIcons/IconTouch

func _ready():
	GameManager.state_changed.connect(_on_state_changed)
	_on_state_changed()

func _on_state_changed():
	# Portrait
	match GameManager.current_state:
		"male":
			portrait.texture = texture_male
			inspect_label.text = "Male"
		"female":
			portrait.texture = texture_female
			inspect_label.text = "Female"
		"extra1":
			portrait.texture = texture_extra1
			inspect_label.text = "extra1"
		"extra2":
			portrait.texture = texture_extra2
			inspect_label.text = "extra2"

	# State icons
	icon_walk.visible = not GameManager.can_walk
	icon_run.visible = not GameManager.can_run
	icon_jump.visible = not GameManager.can_jump
	icon_crouch.visible = not GameManager.can_crouch
	icon_attack.visible = not GameManager.can_attack
	icon_see.visible = not GameManager.can_see
	icon_talk.visible = not GameManager.can_talk
	icon_answer.visible = not GameManager.can_answer
	icon_touch.visible = not GameManager.can_touch

	icon_walk.texture = icon_no_walk
	icon_run.texture = icon_no_run
	icon_jump.texture = icon_no_jump
	icon_crouch.texture = icon_no_crouch
	icon_attack.texture = icon_no_attack
	icon_see.texture = icon_no_see
	icon_talk.texture = icon_no_talk
	icon_answer.texture = icon_no_answer
	icon_touch.texture = icon_no_touch

Thanks for you time and assistance!

Use print statements and debugger breakpoints to track where your code is (not) going and what it is (not) doing there.