Skip to content

Taj's Mod - Combined Ideas & Roadmap

  1. Current Feature Set
  2. Architecture Overview
  3. Constraints & Technical Notes
  4. Prioritized Roadmap
  5. Quick Wins
  6. Feature Ideas Backlog
  7. Big Bets (Major Features)
  8. Experimental / High Risk
  9. API & Hooks Wishlist

  • Mod settings panel with puzzle button in HUD extras; custom tabs (General, Visuals, Cheats, Debug) and footer
  • Real-time node counter with limit warning inside the settings panel
  • Restart-required dialog for settings that need reload
  • Go To Group quick panel (bottom-left) with popup list of groups and camera tweening
  • Extra glow controls (intensity/strength/bloom/sensitivity) via WorldEnvironment
  • UI opacity slider that modulates HUD alpha
  • Expanded group node colors and patterns with persistence
  • Custom wire colors with RGB picker; overrides Data.resources and Data.connectors
  • Custom boot screen text and logo injection
  • Wire drop node picker: drop a wire on empty canvas to spawn compatible nodes
  • Right-click to clear all wires from a connector
  • Ctrl+A select all nodes on desktop
  • Group Z-order fix for contained groups with debounced updates
  • Group lock/unlock and Upgrade All for nodes inside group
  • Bin node injection with universal receiver inputs
  • 6-input container upgrade for inventory
  • Node limit control (custom max or unlimited) enforced in window creation, paste, schematics, and wire drop
  • Command palette overlay with fuzzy search, favorites/recents, and navigation breadcrumbs
  • Command registry and default command set (select/deselect, center view, upgrade, settings toggles)
  • Palette config persistence (favorites/recents/tools enabled) stored in mod config
  • Buy Max button injected into upgrades tab for bulk purchases
  • Buy Max for selected nodes in options bar
  • Cheats panel (currency/attribute adjustments) in settings UI
  • Mute on focus loss with configurable background volume
  • High-quality tiled screenshots with configurable output
  • Debug log panel with optional verbose logging
  • Node compatibility cache built deferred to avoid startup stalls
  • Z-order fix uses debounced rect hashing to reduce churn
  • UI opacity adjustment
  • Wire color customization for better contrast
  • Focus mute to reduce background audio fatigue
  • Additional schematic icon options in save UI
  • Schematic sanitizer for missing window keys

  • Entry point: mod_main.gd preloads services, installs script extensions, and wires managers during _init and _ready
  • Services/managers: Config, ScreenshotManager, PaletteController, WireClearHandler, FocusHandler, WireColorOverrides, GotoGroupManager/Panel, NodeGroupZOrderFix, BuyMaxManager, CheatManager
  • Initialization flow: _init installs extensions and creates managers; _ready builds shared color picker, applies wire color overrides, applies node limit, injects bin window, defers sanitation; waits for Main/HUD before UI setup
  • Update loop: _process patches desktop once and refreshes node info label; avoids repeated heavy operations
  • Performance safeguards: deferred cache building for compatibility filter, debounced z-order fix, screenshot tiling to avoid oversized textures
  • Settings panel: PanelContainer with title/content/footer and tab buttons
  • Toggle rows: label + CheckButton
  • Slider rows: label + HSlider with value label
  • Action buttons: TabButton style
  • Palette overlay: dim background + centered panel + search + results list + breadcrumbs
  • Color picker: HSV plane, sliders, swatches, recents, RGBA inputs
  • Popup lists: PopupMenu for pattern selection
  • Notifications via Signals.notify.emit and Sound.play
  • Palette: Middle mouse button toggles, XButton1/XButton2 for back/forward
  • Palette keyboard: arrows, Enter, Esc, Tab, Left/Backspace for back, Ctrl+F to favorite
  • Wire clear: right-click on connector
  • Desktop: Ctrl+A selects all nodes
  • Go To Group popup: Esc or click outside to close
  • Settings: button toggles panel; click outside closes
  • Main mod config: user://tajs_mod_config.json managed by config_manager.gd
  • Palette config stored under "palette" inside main config, with migration from legacy file
  • Wire color overrides stored in wire_colors_hex inside mod config
  • Group custom data saved via save()/export() (pattern index, lock state, custom_color)
  • Node limit stored in config and mirrored to Globals.custom_node_limit
  • Schematics saved through game Data.save_schematic with extended icon list

[!IMPORTANT] > Technical Reality Check:

  • Wiring: The game uses Signals.create_connection(from, to) and Signals.delete_connection(from, to). There is no single disconnect_all() method; we must iterate ResourceContainers.
  • State: Data is the global singleton for persistence. Data.schematics holds blueprints.
  • Upgrades: There is NO global Upgrades.buy() method. Purchases must be simulated via UI interaction or by replicating upgrade_panel.gd logic.
  • Nodes: Nodes are WindowContainers containing ResourceContainers. Logic is split between desktop.gd and resource_container.gd.
  • Heavy reliance on specific scene tree paths (e.g., Main/MainContainer/Overlay, ExtrasButtons/Container, upgrades tab structure). Game UI refactors will break injections.
  • Desktop script patching replaces script at runtime (patcher.gd), which can desync if base script changes.
  • Wire compatibility cache loads each window scene to inspect ResourceContainers; can be expensive on large window sets.
  • Wire color overrides mutate Data.resources and Data.connectors globally; other mods altering the same data can conflict.
  • Bin window inputs skip tutorial to avoid breaking tutorial steps.
  • Drag dead zone feature is blocked by a base class_name conflict (not implementable via script extension).
  • Palette input is hard-coded to mouse buttons and keyboard; no dynamic remap hook exists.
  • Data.windows schema, Data.schematics shape, or connector APIs
  • Signal names/typos (e.g., Signals.connection_droppped) used by wire drop
  • Camera and HUD node names used by screenshot and UI injection

  1. Align and Distribute selection (Ideas 18, 19)
  2. HUD quick toggles bar (Idea 6)
  3. Wire color presets (Idea 9)
  4. Settings search bar (Idea 1) - Done
  5. Node search and focus (Idea 30) - Done
  6. Palette actions for wire drop and group lock (Ideas 31, 33)
  7. Selection stats panel (Idea 28)
  8. Node limit warning tooltip (Idea 48)
  9. Wire cache refresh button (Idea 50)
  10. Screenshot selection capture (Idea 38)

  • Polish: Smart Wire Drop - Ensure compatibility checks
  • Settings search bar (Idea 1)
  • HUD quick toggles bar (Idea 6)
  • Context help tooltips (Idea 7)
  • Wire color presets (Idea 9)
  • Align left/right/top/bottom (Idea 18)
  • Distribute H/V (Idea 19)
  • Palette: Toggle Wire Drop Menu (Idea 31)
  • Palette: Lock/Unlock Selected Groups (Idea 33)
  • Node limit warning tooltip (Idea 48)
  • Wire cache refresh button (Idea 50)
  • New: Mass Wire Delete (Easy win via Signals)

  • Selection stats panel (Idea 28)
  • Node search and focus (Idea 30)
  • Screenshot selection capture (Idea 38)
  • Camera bookmarks (Idea 26)
  • Buy Max per tab (Idea 44)
  • Group pattern opacity slider (Idea 10)
  • UI color theme variants (Idea 11)
  • RGB Picker API - exposed for other mods
  • Layout Snapshots (“Save layout to clipboard/memory”)
  • Zen Mode (Toggle HUD visibility)
  • Resource Rate Meter (Money/sec display)

  • Node graph auto-layout engine (Idea 54)
  • Schematic diff and merge tool (Idea 55)
  • Selection macro recorder (Idea 56)
  • Modular group templates (Idea 57)
  • Cross-save settings sync (Idea 58)
  • Lasso select connectors (Idea 21) - if new hooks land
  • Shared Settings Hook
  • Minimap

These are low-effort, low-risk features to ship quickly:

FeatureIdea #EffortRisk
Settings search bar1SLow
Compact settings mode2SLow
Restart required banner4SLow
HUD quick toggles bar6SLow
Context help tooltips7SLow
Wire color presets9SLow
Align left/right/top/bottom18SLow
Distribute H/V19SLow
Node limit warning tooltip48SLow
Wire cache refresh button50SLow
Palette: Toggle Wire Drop Menu31SLow
Palette: Clear All Wires in Selection32SLow
Palette: Lock/Unlock Selected Groups33SLow
Palette: Toggle Palette Tools Mode34SLow
Palette: Set Node Limit (Presets)35SLow

All ideas are grounded in existing systems in this repo and the base game sources. Each idea includes name, player value, user flow, implementation sketch, effort, risk, and save compatibility impact.

Player value: Faster access to toggles when the panel grows.
User flow: Open settings, type to filter rows across tabs.
Implementation: Touch settings_ui.gd (add search field + filter), mod_main.gd (store references to created rows).
Effort: S | Risk: Low | Save compatibility: Safe

Player value: Fit more options on screen for small monitors.
User flow: Toggle Compact Mode in General tab to reduce row height and font size.
Implementation: Touch settings_ui.gd to add a global style toggle; add config key.
Effort: S | Risk: Low | Save compatibility: Safe

Player value: Review recent notifications (errors, success).
User flow: Click a small bell icon to open a list of the last 20 toasts.
Implementation: Touch mod_main.gd to wrap Signals.notify.emit calls; add notification_log_panel.gd (new).
Effort: M | Risk: Medium | Save compatibility: Safe

Player value: Avoid missing restart-needed changes.
User flow: After toggling 6-input containers, a small banner appears until restart or dismiss.
Implementation: Touch mod_main.gd _show_restart_dialog; add lightweight banner in settings_ui.gd.
Effort: S | Risk: Low | Save compatibility: Safe

Player value: Quick switch between visual/QoL presets.
User flow: Choose a profile from dropdown in settings; it swaps mod config sections.
Implementation: Touch config_manager.gd to store profiles; settings_ui.gd to add dropdown.
Effort: M | Risk: Medium | Save compatibility: Safe

Player value: Toggle wire colors, glow, palette tools without opening settings.
User flow: Small expandable strip in HUD overlay with 3-5 toggles.
Implementation: Touch mod_main.gd _setup_for_main to add buttons; reuse SettingsUI callbacks.
Effort: S | Risk: Low | Save compatibility: Safe

Player value: Clarify what each toggle does.
User flow: Hover over a setting to see a short explanation.
Implementation: Touch mod_main.gd _build_settings_menu to set tooltip_text on rows.
Effort: S | Risk: Low | Save compatibility: Safe

Player value: Discover the palette hotkeys and favorites.
User flow: First time opening palette, show a short hint box.
Implementation: Touch palette_overlay.gd to show once; store palette_onboarded in config.
Effort: S | Risk: Low | Save compatibility: Safe


Player value: Quick swap between color themes (high-contrast, pastel, monochrome).
User flow: Pick a preset from Visuals tab; wires update.
Implementation: Touch wire_color_overrides.gd to load preset tables; add preset dropdown.
Effort: S | Risk: Low | Save compatibility: Safe

Player value: Make patterns subtle or bold.
User flow: Slider in group window to adjust pattern alpha.
Implementation: Touch window_group.gd (store pattern alpha, update PatternDrawer).
Effort: M | Risk: Medium | Save compatibility: Maybe (new saved field on groups)

Player value: Match HUD to personal taste (cool, warm, low-contrast).
User flow: Choose theme variant in Visuals tab, applies to mod panels.
Implementation: Touch settings_ui.gd, palette_overlay.gd, color_picker_panel.gd to apply theme colors.
Effort: M | Risk: Medium | Save compatibility: Safe

Player value: Choose between modded boot art, vanilla, or minimalist.
User flow: Pick boot style in Debug tab.
Implementation: Touch mod_main.gd and patcher.gd to swap textures/labels.
Effort: M | Risk: Medium | Save compatibility: Safe

Player value: Make groups easier to locate.
User flow: Toggle glow outline on group title bars.
Implementation: Touch window_group.gd to add stylebox glow or modulate.
Effort: S | Risk: Low | Save compatibility: Maybe (per-group flag if stored)

Player value: Improve readability in dense graphs.
User flow: Slider in Visuals to set wire width.
Implementation: Needs connector draw logic changes in base; likely needs engine hook.
Effort: L | Risk: High | Save compatibility: Safe

Player value: Better spatial orientation at different zoom levels.
User flow: Choose grid density in Visuals.
Implementation: Touch mod_main.gd to find Main/HUD/Lines or Desktop/Lines and adjust properties if exposed.
Effort: M | Risk: Medium | Save compatibility: Safe

Player value: Branded or clean captures.
User flow: Toggle watermark before capture.
Implementation: Touch screenshot_manager.gd to overlay a label/texture.
Effort: S | Risk: Low | Save compatibility: Safe


Player value: Instant grouping for organization.
User flow: Select nodes, run action to create group bounding selected nodes.
Implementation: Use Signals.create_window to spawn group at bounds; set group size.
Effort: M | Risk: Medium | Save compatibility: Safe

Player value: Clean layouts fast.
User flow: Select nodes, run Align Left, etc.
Implementation: Move windows via Signals.move_selection or direct position changes.
Effort: S | Risk: Low | Save compatibility: Safe

Player value: Even spacing for large selections.
User flow: Select nodes, run Distribute H or V.
Implementation: Similar to alignment; compute bounds from Globals.selections.
Effort: S | Risk: Low | Save compatibility: Safe

Player value: Auto layout by node type.
User flow: Run action, nodes cluster by Data.windows category.
Implementation: Use Data.windows to map category; position in grid.
Effort: M | Risk: Medium | Save compatibility: Safe

Player value: Faster wire cleanup.
User flow: Drag a lasso to select connectors and clear them.
Implementation: Needs connector selection support; iterate connectors by screen rect.
Effort: L | Risk: High | Save compatibility: Safe

Player value: Fix wiring mistakes without delete/reconnect.
User flow: Select a connector, choose new compatible target from list.
Implementation: Use Signals.delete_connection + Signals.create_connection.
Effort: M | Risk: Medium | Save compatibility: Safe

Player value: Connect one output to many compatible inputs quickly.
User flow: Select an output, choose multiple targets from list, auto-connect.
Implementation: Use node_compatibility_filter.gd to list candidates; call Signals.create_connection in loop.
Effort: L | Risk: Medium | Save compatibility: Safe

Player value: Group color reflects dominant resource type.
User flow: Press button to auto-pick group color based on contained nodes.
Implementation: Touch window_group.gd to analyze nodes in bounds and map to resource colors.
Effort: M | Risk: Medium | Save compatibility: Maybe

Player value: See node usage without opening settings.
User flow: Small text in HUD top bar with warning color at 90%.
Implementation: Touch mod_main.gd to add label to HUD; reuse _update_node_label.
Effort: S | Risk: Low | Save compatibility: Safe

Player value: Jump between areas of large graphs.
User flow: Save 3-5 bookmarks and jump via palette.
Implementation: Store positions in config; use Signals.center_camera or camera tween.
Effort: M | Risk: Medium | Save compatibility: Safe

Player value: Swap node type without re-wiring.
User flow: Select a node, choose replacement from picker; connections transfer if compatible.
Implementation: Use window.save() + replace with new window; rewire matching ResourceContainers.
Effort: L | Risk: High | Save compatibility: Safe

Player value: See total cost, output, or count for selected nodes.
User flow: Select nodes; panel shows aggregate info.
Implementation: Touch mod_main.gd to add a small panel; read node properties like level, cost.
Effort: M | Risk: Medium | Save compatibility: Safe

Player value: Keep groups tidy after moving nodes.
User flow: Click button to resize group to bounding box of enclosed nodes.
Implementation: Touch window_group.gd to compute bounds from contained nodes and set size.
Effort: S | Risk: Low | Save compatibility: Safe

Player value: Find nodes by name or type quickly.
User flow: Use palette to search nodes and center camera on result.
Implementation: Add command in default_commands.gd; use Data.windows and Globals.desktop children.
Effort: M | Risk: Medium | Save compatibility: Safe


Player value: Quickly enable/disable feature.
User flow: Open palette, run Toggle Wire Drop Menu; context-aware badge shows current state.
Implementation: Add command; call palette_controller.set_wire_drop_enabled.
Effort: S | Risk: Low | Save compatibility: Safe

Player value: Batch cleanup.
User flow: Select nodes, run action; wires on their connectors are cleared.
Implementation: Iterate selected windows and emit Signals.delete_connection.
Effort: S | Risk: Low | Save compatibility: Safe

Player value: Protect layout.
User flow: Select group nodes, run Lock or Unlock.
Implementation: Call toggle_lock on selected group nodes.
Effort: S | Risk: Low | Save compatibility: Safe DONE

Player value: Quick opt-in to gameplay tools.
User flow: Run Enable Tools or Disable Tools in palette.
Implementation: Use palette_config.gd set_tools_enabled.
Effort: S | Risk: Low | Save compatibility: Safe

Player value: One-tap limit changes.
User flow: Choose presets like 400, 800, unlimited.
Implementation: Call mod_main.set_node_limit.
Effort: S | Risk: Low | Save compatibility: Safe

Player value: Faster than HUD panel for keyboard users.
User flow: Open palette, type group name, jump.
Implementation: Use goto_group_manager.gd to list groups and call navigate_to_group.
Effort: M | Risk: Medium | Save compatibility: Safe

Player value: Quick visibility control.
User flow: Run Cycle UI Opacity to 100/75/50.
Implementation: Expand with more steps and status label.
Effort: S | Risk: Low | Save compatibility: Safe

Player value: Capture only selected nodes.
User flow: Select nodes, run Capture Selection.
Implementation: Touch screenshot_manager.gd to accept bounds override.
Effort: M | Risk: Medium | Save compatibility: Safe

Player value: Find key economy nodes quickly.
User flow: Run Focus Money Nodes; camera centers on cluster.
Implementation: Iterate windows for resource containers with matching resource; use Signals.center_camera.
Effort: M | Risk: Medium | Save compatibility: Safe

Player value: Quick styling for groups.
User flow: Select group, run Cycle Pattern.
Implementation: Call cycle_pattern on selected group nodes.
Effort: S | Risk: Low | Save compatibility: Safe

Player value: Fix visual glitches and reduce clutter.
User flow: Run command; remove connectors without valid endpoints.
Implementation: Use Globals.desktop.connections and Signals.delete_connection if endpoints missing.
Effort: M | Risk: Medium | Save compatibility: Safe

Player value: Share settings across machines.
User flow: Run Export Config to file; run Import Config to apply.
Implementation: Touch config_manager.gd to read/write files.
Effort: M | Risk: Medium | Save compatibility: Safe


Player value: Spend money evenly across selected nodes.
User flow: Select nodes and run Upgrade Queue to round-robin upgrades.
Implementation: Reuse logic from options_bar.gd buy-max loop; add new utility and palette action.
Effort: S | Risk: Low | Save compatibility: Safe

Player value: Faster upgrades within current upgrades tab.
User flow: In upgrades menu, press Buy Max for current tab only.
Implementation: Extend buy_max_manager.gd to add a second button or shift-click logic.
Effort: M | Risk: Medium | Save compatibility: Safe

Player value: Save frequently without opening menu.
User flow: Select nodes, run Save Selection as Schematic.
Implementation: Use Data.save_schematic with Globals.desktop.export_selection if available.
Effort: L | Risk: High | Save compatibility: Safe

Player value: See how much the Bin deletes.
User flow: Hover bin window to see counts or add a small counter.
Implementation: Touch window_bin.gd to track counts during process; store in runtime only.
Effort: M | Risk: Medium | Save compatibility: Safe

Player value: Keep SFX on while muted or vice versa.
User flow: Toggle options for SFX/UI/BGM when unfocused.
Implementation: Extend focus_handler.gd to adjust buses 1/2/3 separately.
Effort: M | Risk: Medium | Save compatibility: Safe

Player value: Understand why node creation failed.
User flow: When limit hit, show tooltip with current and max counts.
Implementation: Touch windows_menu.gd, wire_drop_connector.gd, schematic_container.gd to show detailed message.
Effort: S | Risk: Low | Save compatibility: Safe


Player value: Smoother palette in huge command lists.
User flow: Enable Performance Mode to limit results and reduce UI redraw.
Implementation: Touch palette_overlay.gd to cap results and disable icon loading.
Effort: S | Risk: Low | Save compatibility: Safe

Player value: Fix wire color or compatibility issues after mod updates.
User flow: Press Refresh Cache in Visuals or Debug.
Implementation: Touch node_compatibility_filter.gd clear_cache, wire_color_overrides.gd.
Effort: S | Risk: Low | Save compatibility: Safe

Player value: Recover from broken mod states.
User flow: Toggle Safe Mode, which skips script extensions and patches.
Implementation: Touch mod_main.gd _init and _ready to guard installs with config.
Effort: M | Risk: Medium | Save compatibility: Safe

Player value: Detect other mods patching same scripts.
User flow: Open Debug tab to see warnings about script extensions.
Implementation: Query ModLoader for installed extensions and compare against known list.
Effort: M | Risk: Medium | Save compatibility: Safe

Player value: Capture large bases without manual timing.
User flow: Set interval and count; screenshots take sequentially.
Implementation: Extend screenshot_manager.gd with timer queue.
Effort: M | Risk: Medium | Save compatibility: Safe


These are high-effort, high-impact features for major releases.

Player value: One-click tidy layout for large networks.
User flow: Run Auto-Layout; nodes reposition based on connections.
Implementation: New auto_layout.gd; requires access to connector graph (Globals.desktop.connections).
Effort: L | Risk: High | Save compatibility: Safe

Player value: Compare two schematics and merge changes.
User flow: Open tool, pick schematics A/B, preview diff, apply.
Implementation: New UI panel; use Data.schematics dictionaries and Data.save_schematic.
Effort: L | Risk: High | Save compatibility: Safe

Player value: Record repetitive build actions.
User flow: Start recording, perform actions, save macro, replay.
Implementation: Hook into Signals.create_window, Signals.create_connection, Signals.move_selection; store macro in config.
Effort: L | Risk: High | Save compatibility: Maybe (new macro data)

Player value: Reuse group layouts as templates.
User flow: Save group as template and spawn later with one command.
Implementation: Store group contents as schematic + metadata; add Data.save_schematic integration.
Effort: L | Risk: High | Save compatibility: Safe

Player value: Keep mod settings across devices.
User flow: Export config and import on another machine; optional Steam Cloud if available.
Implementation: Add import/export in config_manager.gd; for cloud, needs game hook to save to cloud path.
Effort: L | Risk: Medium | Save compatibility: Safe


[!CAUTION] These features have significant technical challenges or require base game hooks that don’t exist yet.

Player value: Visualize bottlenecks on the graph.
User flow: Toggle heatmap; wires and nodes glow based on throughput.
Implementation: Needs per-connector throughput data from base scripts; currently not exposed.
Effort: L | Risk: High | Save compatibility: Safe

Player value: Cleaner wiring in dense areas.
User flow: Toggle adaptive routing; wires curve around nodes.
Implementation: Requires connector draw logic changes in base; likely needs engine hook.
Effort: L | Risk: High | Save compatibility: Safe

Player value: Optimize upgrades based on resource goals.
User flow: Pick goal (money/research), assistant upgrades nodes to maximize output.
Implementation: Needs access to node production data and upgrade effects; not exposed in mod scripts.
Effort: L | Risk: High | Save compatibility: Safe

  • Garbage Collect: Data.gd has wiping flag and save_routine. Manually triggering GC is risky. Verdict: Moved to Backlog.
  • Replace Node: WindowContainer destruction/creation is heavy. Keeping wires attached when input/output slots might change is complex. Verdict: “Maybe”, high risk of crashes.

Features that would enable more advanced mod capabilities if the base game provided them:

  • Connector draw customization (line width, routing control) to enable wire thickness and adaptive routing
  • Throughput/transfer metrics per connector or ResourceContainer for heatmaps and smart upgrades
  • Export selection to schematic without opening the schematic UI
  • Stable hooks for upgrades tab discovery (named nodes or a signal) to avoid brittle UI tree traversal
  • Safe camera control API (center/zoom) with bounds helpers for bookmark and focus tools
  • Access to grid/lines node settings or a public API for grid density and visibility
  • Cloud save path exposure for config sync

Legend:
Effort: S = Small (1-2 hours), M = Medium (half day), L = Large (1+ days)
Risk: Low = isolated change, Medium = touches multiple systems, High = fragile or experimental


Current Version: v0.20.0 (December 2025)
Next Development: v0.21.0

This roadmap organizes features into themed releases, balancing quick wins with larger improvements. Each version includes a theme, target features, estimated effort, and dependencies.


Theme: UX polish and discoverability
Estimated Effort: 1-2 days

FeatureIdea #EffortNotes
Context help tooltips for settings7SAdd tooltip_text to all setting rows
Node limit warning tooltip48SShow current/max counts when limit hit
Palette onboarding tooltip8SFirst-open hint with hotkeys
Restart required banner4SPersistent banner until restart

Acceptance Criteria:

  • Every setting row has a helpful tooltip on hover
  • When node creation fails due to limit, user sees informative message
  • First palette open shows brief keyboard shortcuts guide
  • After toggling restart-required settings, banner appears in settings header

Theme: Palette power user commands
Estimated Effort: 1-2 days

FeatureIdea #EffortNotes
Palette: Toggle Wire Drop Menu31SStatus badge shows current state
Palette: Lock/Unlock Selected Groups33SContextual action
Palette: Toggle Palette Tools Mode34SOPT-IN badge
Palette: Set Node Limit (Presets)35S400, 800, 1200, Unlimited
Palette: Clear All Wires in Selection32SMass wire delete

Acceptance Criteria:

  • All commands appear in palette with appropriate badges
  • Lock/Unlock only visible when groups selected
  • Clear Wires shows warning about no undo
  • Node limit presets apply immediately

Theme: Visual customization
Estimated Effort: 2-3 days

FeatureIdea #EffortNotes
Wire color presets9SHigh-contrast, Pastel, Monochrome, Custom
Wire cache refresh button50SFix issues after updates
Screenshot watermark toggle16SOptional branding on captures

Acceptance Criteria:

  • Presets dropdown in Visuals tab with 3+ built-in themes
  • “Apply Preset” updates wires immediately
  • Refresh Cache button clears compatibility filter cache
  • Watermark toggle adds/removes mod branding on screenshots

Theme: Node graph organization
Estimated Effort: 2-3 days

FeatureIdea #EffortNotes
Align Left/Right/Top/Bottom18SPalette commands
Distribute Horizontally/Vertically19SEven spacing
Auto-expand group to fit contents29SButton in group title

Acceptance Criteria:

  • Select 3+ nodes → Align Left → All nodes share same X position
  • Distribute H/V creates even spacing based on bounds
  • Group “Fit Contents” button resizes to bounding box + padding
  • Wires update correctly after alignment

Theme: At-a-glance information
Estimated Effort: 2-3 days

FeatureIdea #EffortNotes
HUD quick toggles bar6S3-5 most-used toggles
Node limit meter in HUD25SWarning color at 90%
Settings search bar1SFilter rows across tabs

Acceptance Criteria:

  • Expandable strip in HUD with toggles for: Wire Colors, Glow, Wire Drop Menu
  • Node counter visible without opening settings; turns yellow/red near limit
  • Search bar filters settings rows in real-time as user types
  • Search persists between settings opens (optional)

Theme: Navigation and discovery
Estimated Effort: 3-4 days

FeatureIdea #EffortNotes
Node search and focus30MPalette picker mode for nodes
Palette: Jump to Group (List)36MKeyboard-friendly group nav
Palette: Focus on Money/Research Nodes39MQuick economy node finding

Acceptance Criteria:

  • Palette search mode lists all nodes by name/type
  • Selecting a node centers camera on it and selects it
  • Jump to Group provides searchable list in palette
  • Focus Money/Research finds cluster and centers view

Theme: Enhanced capture capabilities
Estimated Effort: 3-4 days

FeatureIdea #EffortNotes
Screenshot (Area of Selection)38MCapture only selected nodes
Screenshot capture queue53MInterval-based captures

Acceptance Criteria:

  • With nodes selected, “Capture Selection” crops to bounding box
  • Queue UI allows setting count and interval
  • Progress indicator during queue capture
  • All screenshots save to configured folder

Theme: Information and analytics
Estimated Effort: 3-4 days

FeatureIdea #EffortNotes
Selection stats panel28MAggregate info for selected nodes
Auto-sell bin metrics46MRuntime counters
Resource rate meter(new)MMoney/sec display in HUD

Acceptance Criteria:

  • Panel shows: node count, total cost, upgrade levels
  • Bin window tooltip shows items processed this session
  • Resource rate shows average income/research per second
  • Updates in real-time as selection changes

Theme: Large graph navigation
Estimated Effort: 2-3 days

FeatureIdea #EffortNotes
Bookmark camera positions26MSave 5+ positions
Palette commands for bookmarks26SJump via palette

Acceptance Criteria:

  • Save Bookmark 1-5 via palette commands or hotkeys
  • Jump to Bookmark 1-5 smoothly tweens camera
  • Bookmarks persist in mod config across sessions
  • Visual indicator in HUD shows available bookmarks

Theme: Group node polish
Estimated Effort: 3-4 days

FeatureIdea #EffortNotes
Group pattern opacity slider10MPer-group setting
Group title glow13SToggle in group title
Group color sync to contents24MAuto-pick based on nodes
Palette: Toggle Group Pattern40SQuick cycling

Acceptance Criteria:

  • Opacity slider 0-100% affects pattern visibility
  • Title glow makes group header stand out
  • “Sync Color” analyzes contained nodes and picks dominant resource color
  • Pattern cycle via palette matches existing button behavior

Theme: Personalization
Estimated Effort: 4-5 days

FeatureIdea #EffortNotes
UI color theme variants11MCool, Warm, Low-contrast
Profile switcher (minimal)5MSwap config presets
Boot screen variant selector12MModded, Vanilla, Minimal
Compact settings mode2SReduced row height

Acceptance Criteria:

  • Theme dropdown with 3+ variants affecting mod panels
  • Profile dropdown shows saved presets; “Save Current” and “Load” buttons
  • Boot style selector in Debug with preview
  • Compact mode toggle shrinks all settings rows

Theme: Power user features
Estimated Effort: 4-5 days

FeatureIdea #EffortNotes
Box select to group17MCreate group from selection
Wire reroute (swap source/target)22MFix wiring mistakes
Buy Max for current category tab44MTab-specific upgrade

Acceptance Criteria:

  • “Create Group from Selection” spawns group sized to contain all selected
  • Wire reroute shows picker of compatible targets
  • Tab-specific Buy Max only affects current upgrades page
  • All actions available via palette

Theme: Settings portability
Estimated Effort: 2-3 days

FeatureIdea #EffortNotes
Export/Import mod config42MShare settings
Toast history panel3MReview notifications
Palette performance mode49SCap results for large lists

Acceptance Criteria:

  • Export creates JSON file with all mod settings
  • Import validates and applies settings, shows what changed
  • Toast history accessible via bell icon; stores last 20 notifications
  • Performance mode toggle caps palette results at 50

Theme: Stability and debugging
Estimated Effort: 3-4 days

FeatureIdea #EffortNotes
Safe mode (disable all patches)51MRecovery option
Mod conflict reporter52MDetect overlapping extensions
Clean orphaned connectors41MFix visual glitches

Acceptance Criteria:

  • Safe Mode toggle skips all script extensions on next restart
  • Conflict reporter lists other mods touching same scripts
  • Clean Orphaned Connectors removes invalid connections
  • All actions have confirmation dialogs

Theme: Auto-layout foundations
Estimated Effort: 5-7 days

FeatureIdea #EffortNotes
Auto-arrange by category20MCluster nodes by type
Focus mute exceptions47MPer-bus control

Acceptance Criteria:

  • Auto-arrange clusters nodes by their Data.windows category
  • Spacing and grid configurable via settings
  • Focus mute allows toggling SFX/BGM/UI independently
  • Preview of arrangement before applying (optional)

Theme: Polish and stability for wider release
Target: After v0.0.36 stabilizes

Milestone Goals:

  • All Quick Wins (Ideas 1-9, 16, 18-19, 31-35, 48, 50) implemented
  • Settings panel fully searchable with tooltips
  • Palette has comprehensive command coverage
  • Alignment and distribution tools complete
  • Screenshot manager fully featured
  • Full compatibility verified with game v1.1.7+

Theme: Tools for power users and modders
Target: Q1 2026

FeatureIdea #Notes
RGB Picker API export6 (V2)TajsMod.open_color_picker(callback)
Layout snapshots(new)Save/restore layout via clipboard
Zen Mode(new)Toggle all HUD visibility
Schematic quick save (selection)45Save selected nodes as schematic

Theme: Large graph management
Target: Q2 2026

FeatureIdea #Notes
Lasso select connectors21If new hooks available
Multi-connect batch23One output to many inputs
Quick replace node27Swap type, keep wires

Theme: Major feature completion
Target: Q3-Q4 2026

FeatureIdea #Notes
Node graph auto-layout engine54One-click tidy layout
Schematic diff and merge tool55Compare and combine schematics
Selection macro recorder56Record and replay actions
Modular group templates57Reusable group layouts
Cross-save settings sync58Steam Cloud or export
Minimap(new)Graph overview panel

VersionThemeKey FeaturesEst. Effort
0.0.22Polish & TooltipsTooltips, warnings, onboarding1-2 days
0.0.23Quick ActionsPalette commands1-2 days
0.0.24Wire PresetsColor themes, cache refresh2-3 days
0.0.25Alignment ToolsAlign, distribute, fit group2-3 days
0.0.26HUD EnhancementsQuick toggles, search, meter2-3 days
0.0.27Node SearchPalette node/group search3-4 days
0.0.28Screenshot+Selection capture, queue3-4 days
0.0.29Selection StatsStats panel, resource rate3-4 days
0.0.30Camera BookmarksSave/jump positions2-3 days
0.0.31Group EnhancementsOpacity, glow, color sync3-4 days
0.0.32Theme & ProfilesUI themes, profiles, boot4-5 days
0.0.33Advanced WorkflowsBox→Group, reroute, tab buy4-5 days
0.0.34Config ManagementExport/import, toast history2-3 days
0.0.35DiagnosticsSafe mode, conflicts, cleanup3-4 days
0.0.36Auto-ArrangeCategory layout, focus mute5-7 days
0.1.0Flow UpdateStable release milestone
0.2.0Platform UpdateAPIs, snapshots, Zen Mode2-3 weeks
0.3.0Navigation UpdateLasso, multi-connect, replace2-3 weeks
1.0.0EcosystemAuto-layout, macros, templates4-6 weeks

  1. Ship small, ship often — Each 0.0.x release should be completable in 1-5 days
  2. Theme coherence — Group related features for easier testing and documentation
  3. Backwards compatible — Config migrations, save compatibility maintained
  4. Test before release — Each version verified against latest game version
  5. Document changes — Changelog updated with every release
  6. User feedback — Prioritize based on community requests between releases

Note: This roadmap is a living document. Feature order and grouping may change based on:

  • User feedback and feature requests
  • Game updates that affect mod compatibility
  • Technical discoveries during implementation
  • Community contributions and PRs