diff --git a/src/game/engine/src/autoloads/theme_assets.gd b/src/game/engine/src/autoloads/theme_assets.gd index 8f3351f6..9fcd7324 100644 --- a/src/game/engine/src/autoloads/theme_assets.gd +++ b/src/game/engine/src/autoloads/theme_assets.gd @@ -185,6 +185,15 @@ func set_palette_variant(variant_id: String) -> void: if not VALID_VARIANTS.has(variant_id): push_warning("ThemeAssets: unknown palette variant '%s'" % variant_id) return + # Palettes load with the theme (set_theme), which can run AFTER autoloads + # like settings_manager apply their saved display prefs at _ready. Before the + # theme loads, _palettes is empty — remember the desired (valid) variant + # silently instead of warning (set_theme establishes the default once + # palettes load). The warning below is reserved for a genuinely-missing + # variant after palettes ARE loaded. + if _palettes.is_empty(): + _active_palette_variant = variant_id + return if not _palettes.has(variant_id): push_warning("ThemeAssets: palette '%s' not loaded" % variant_id) return