Data-Driven Upgrade Library: Upgrades are now fully modular - create a .upgrade asset file and it auto-appears in the shop, saves, and tracks stats. No C# changes needed.
UpgradeManager: Central manager with generic API (GetLevel, GetEffect, PurchaseUpgrade). Replaces hardcoded switch statements.
OreRegistry: Auto-discovers all .cube assets. Provides cached lookups by path, tier, and weighted random pick.
RecipeRegistry: Auto-discovers all .recipe assets. Provides lookups by output type, input ore, and affordability checks.
TradeRegistry: Auto-discovers all .trade assets. Generates daily trades and handles execution.
Per-Upgrade Stat Tracking: Each upgrade purchase fires upgrade_{id} and upgrade_{id}_level stats to the backend automatically.
Per-Ore Stat Tracking: Every ore type tracks ore_{id}_destroyed and ore_{id}_collected automatically via StatId.
Upgrade Unlock Conditions: Min prestige, min expansion, required upgrade, required weapon, min player level.
Card-Based Shop UI: Hardware and Augments tabs use a compact card grid layout with flex-flow: row wrap.
Card-Based Trading Panel: Black Market uses the same card grid pattern.
8 New Trade Offers: Gold Rush, Mythril Exchange, Silver Lining, Tin Stockpile, Bulk Smelt Deal, Iron Surplus, Diamond Heist, Platinum Deal.
Hired Crew (NPC Workers): Purchase workers from the shop to mine ore autonomously. They pathfind to nodes, swing pickaxes, collect drops, and deliver to the smelter.
Worker Management Panel: Interact (E) with any NPC worker to Promote, Praise, or Fire them.
Worker Tiers: Each worker has a mining tier. Higher tiers mine tougher nodes faster.
Morale System: Praising a worker gives a temporary speed buff that decays over time.
Ore Node Tier HUD: Looking at a node shows its name, rarity, and whether your tool is effective.
Mining Drone: A flying drone that orbits nodes and chips away passively - scales with upgrade level.
Base Expansion System: Unlock new rooms to expand worker capacity and extraction bays. [One new room for now]
Trading Post: Exchange surplus materials at rotating daily rates.
Smelter Output Crate: Finished ingots drop into a physical crate to collect from.
Pause Menu: Escape for resume, settings, and quit-to-menu.
🧼 Improved
Coal Economy Rebalanced: SpawnWeight increased from 1.0 to 1.6, drop range raised from 1–2 to 2–4. Coal maintains ~35% spawn share at max tier and yields double the ore per node.
Steel Alloy Recipe Rebalanced: Coal ingredient reduced from 10 to 5, fuel cost from 5 to 3, ingot value increased from 60 to 80. Steel is now a viable mid-tier crafting path (10.0 value/coal, up from 4.0).
Material Icons Overhaul: All 14 UI panels now use Google Material Icons instead of emoji and text-only labels - cleaner, more professional interface.
Tool Tier Spread: All 7 tools now have unique tiers (0–6). No more duplicate tiers.
Ore Tier Spread: Ore MinToolTier spread across the full 0–6 range to match tools.
Worker Dissolve Effect: Fired workers dissolve with rising ember sparks instead of vanishing.
Save System: Auto-save every 15s. Shutdown saves fall back safely. Smelter state fully persistent. V5→V6 migration for upgrade dictionary format.
Multi-Smelter Support: Each smelter saves independently.
Worker State Persistence: Individual worker tiers are saved and restored.
Save Migration: Old saves auto-migrate without losing progress (legacy fields → UpgradeLevels dictionary).
CubeSpawner: Auto-populates ore types from OreRegistry when inspector list is empty.
SmelterStation: Reads recipes from RecipeRegistry instead of direct ResourceLibrary scan.
TradingPost: Delegates to TradeRegistry for generation and execution.
PrestigeSystem: Uses UpgradeManager.ResetAll() - works with any number of upgrades.
SceneRefs: Added cached accessors for UpgradeManager, OreRegistry, RecipeRegistry, TradeRegistry.
Interaction Prompt: Now hides when TradingPanel is open (fixed overlap bug).
🪛 Fixed
Fixed coal becoming a hard bottleneck at high tiers due to spawn weight dilution and excessive fuel costs across all smelting recipes.
Fixed steel being the worst value-per-coal recipe in the game, causing players to skip the iron→steel progression path entirely.
Fixed upgrade enum shift causing DamageLevel to be clamped on load.
Fixed smelter UI showing wrong queue with multiple smelters.
Fixed expansion bays spawning in wrong positions.
Fixed UI panels squished at certain aspect ratios.
Fixed Black Market [E] prompt overlapping the trading panel.
Fixed Stats.Set compile error (API only has Stats.Increment).