Get it on Fab Store

Overview

BlueLine is an enterprise-grade productivity and code quality suite for Unreal Engine 5.5+, designed to eliminate the three biggest frictions in Unreal development: Spaghetti Blueprint Graphs, Unmaintainable Logic Debts, and Cumbersome Level Viewport Operations.

๐Ÿ›ก๏ธ
Multi-Engine Certified: UE 5.5 Floor to UE 5.8+ Verified Clean

Unreal Engine 5.5 is formally locked as the minimum floor. All 16 automated unit/integration tests run and pass cleanly with Exit Code 0 across UE 5.5, UE 5.6, UE 5.7, and UE 5.8+.

16/16 TESTS PASSING
๐Ÿงฒ "Magnet" Formatting

Instantly align Blueprint nodes based on execution flow using Shift+Q. Unlike other formatters, BlueLine is Selection-Only, preserving Git history while restoring order.

๐Ÿงฌ Genetic "Clean Graph"

Uses a Genetic Algorithm (Shift+C) to iteratively minimize wire crossings and find the mathematically optimal layout for complex node webs.

๐Ÿท๏ธ Semantic Auto-Tagging

Intelligently classifies logic clusters (Combat, AI, Movement) using Shift+T, automatically wrapping them in Smart Color comment boxes.

๐Ÿ›ฃ๏ธ Pathfinding (Shift+R)

Enforce 90-degree discipline. Injects reroute knots to convert diagonal spaghetti into clean, orthogonal Manhattan paths.

๐Ÿ”– Graph Bookmarks (Alt+1-9)

Save and instantly navigate to important nodes. Bookmarks persist per graph across editor sessions.

๐Ÿ“ฆ Node Snippets (Shift+S)

Save selected nodes as reusable templates. Quickly insert common logic patterns into any graph.

๐Ÿ“ฆ Extract to Subsystem ๐Ÿ†•

Refactor complex graphs by extracting selected nodes into new Blueprint Subsystems (Shift+B). Creates GameInstance, World, or LocalPlayer managers automatically.

๐Ÿ“ Export to Text ๐Ÿ†•

Export Blueprint logic to human-readable text (Shift+E) for debugging, documentation, and AI-assisted analysis. Tree structure with inline pure chains.

๐ŸŽฏ Level Editor Pie Menu (Alt+X)

Blender-style radial pie menu (Alt+X) for the Level Editor viewport. Instant bounding-box pivot centering, bottom-plane snapping for props, floor surface trace alignment, and material-scoped actor multi-selection.

๐Ÿ” Blueprint Linter (Shift+L) ๐Ÿ†•

Instant anti-pattern scanning with Shift+L. Detects tick abuse, deep nesting, missing null checks, and pure node fan-out. Intelligently exempts reroute knots and comment boxes from false positive warnings.

๐ŸŽจ Smart Tag Visuals

Transforms generic grey Gameplay Tags into Color-Coded Chips in both the Details Panel and Graph Nodes. Configured via DataAsset for team sync.

Current Default Shortcut Map
Updated for the conflict-safe BlueLine 1.1.1 bindings
Editor Commands
Auto-FormatShift+Q
Rigidify WiresShift+R
Clean Graph (GA)Shift+C
Blueprint LinterShift+L
Auto-Tag GraphShift+T
Toggle Wire StyleShift+Alt+W
Extract SubsystemShift+B
Export Text / AIShift+E
Set BookmarkAlt+1-9
Jump BookmarkAlt+Shift+1-9
Clear BookmarksAlt+0
Create SnippetShift+S
Insert SnippetShift+I
Level Pie MenuAlt+X
Blueprint Graph Transformation before โ†’ route โ†’ tag โ†’ reuse
Messy source Orthogonal route Semantic tag Reusable snippet Shift+R / Shift+C Combat.Damage Shift+T Shift+S
๐Ÿš€

BlueLine v1.2.0 โ€” Canon Production Release (Multi-Engine Certified)

Canon Version

Comprehensive production release establishing UE 5.5 as the guaranteed floor with full forward compatibility for UE 5.6, 5.7, and 5.8+. Delivers Genetic Algorithm (GA) graph optimization, Centered Knot Orthogonal Routing, Knot-traversing Semantic Tagging, Linter False-Positive Elimination, and a 100% Passing 16-Test Automated Suite.

๐Ÿงฌ Genetic Wire-Crossing Optimizer (Shift+C) ๐Ÿ“ Knot-Centered Manhattan Router (Shift+R) ๐Ÿ” Knot-Exempt Blueprint Linter (Shift+L) ๐Ÿท๏ธ Knot-Traversing Smart Tags (Shift+T) ๐Ÿงช 16/16 In-Editor Automation Specs
๐Ÿ“ฆ

v1.1.5 Subsystems & Export

Extract complex node selections directly to GameInstance, World, or LocalPlayer Subsystems (Shift+B), or export graphs to human/AI-readable text trees (Shift+E).

๐ŸŽฏ

v1.1.0 Level Tools & Snippets

Unified Level Viewport radial pie menu (Alt+X) for smart mesh pivots and material scoping, plus reusable node snippet templates (Shift+S / Shift+I) and dedicated manager tab.

Using BlueLine

Welcome to a cleaner workflow. This section covers the essential first steps for new users to get the most out of BlueLine's intelligence features.

1. Setting Up Colored Tags

BlueLine's visual clarity depends on your Theme Data. By mapping Gameplay Tags to colors, you turn generic grey wires into a color-coded map of your logic.

The Theme Data Asset

The plugin looks for an asset named DA_BlueLineDefault of type BlueLineThemeData.

  1. Create: Right-click in Content Browser → Miscellaneous → Data Asset → BlueLineThemeData.
  2. Configure: Add a new entry to the Tag Styles array.
  3. Define: Set the Tag (e.g., Combat.Damage) and pick a Color (e.g., Bright Red).
  4. Propagate: Enable Apply To Children if you want sub-tags like Combat.Damage.Fire to inherit the same style automatically.
Combat.*
Combat.CriticalHit Inherited Style

2. Mastering Auto-Tagging (Shift+T)

Don't waste time creating comment boxes. Let BlueLine's semantic analyzer do it for you.

The Workflow

Select a messy group of nodes and press Shift+T. BlueLine will:

  • Scan for Function Keywords (Damage, Movement, AI).
  • Analyze Variable Types used in the cluster.
  • Detect Execution Chains that belong together.
  • Wrap them in a Colored Comment Box based on your Theme Data.
// BlueLine Analyzer Log
[Info] Scanning 12 selected nodes...
[Match] Keyword 'Damage' found in 4 nodes.
[Match] Tag 'Combat' mapped to Red.
[Action] Creating Comment: "Combat Logic"
_ Cluster Analysis Complete.
Pro Tip: If the analyzer can't find a strong match, it will use a neutral "Logic Cluster" tag. You can improve detection by using descriptive function names and consistent Gameplay Tags in your variables.

Installation & Build

Because BlueLine modifies the Editor Source (GraphPins, Property Editors, and Level Viewport), it must be compiled with your project.

  1. Copy the BlueLine folder into your project's /Plugins/ directory.
  2. Right-click your .uproject file and strictly select Generate Visual Studio Project Files.
  3. Open `YourProject.sln`.
  4. Build Solution (Ctrl+Shift+B).
  5. Launch Unreal Engine. Enable the plugin in Edit > Plugins.
Important: If you are upgrading from v1.0 or UE 5.3 to UE 5.5+, you must perform a "Clean Build" (Delete Binaries/Intermediate folders) to ensure all four modules register correctly.

Auto-Format Selection (Shift+Q)

Stop manually dragging nodes pixel-by-pixel. BlueLine introduces the "Soft Align" workflow for localized cleanup.

Before Selection Shift + Q Aligned Flow
Use Shift+Q to snap selected nodes grid-relative to their execution parents.

How it works

The formatter analyzes the Execution Flow and Data Links of the selected nodes. It calculates the optimal Y-position for the shortest possible horizontal connection. If Manhattan Routing is enabled, it will also inject reroute nodes to maintain 90-degree orthogonal paths.

Manhattan Routing (Shift+R)

Blueprint spaghetti is often caused by long, diagonal splines that cross over unrelated nodes. Manhattan Routing enforces 90-degree discipline across your selection.

Legacy Spline Shift + R Orthogonal Route
Shift+R injects UK2Node_Knot (Reroutes) to force connections into clean right angles.

Intelligent Backwards Flow

When routing connections to nodes placed *behind* the source (Backwards Flow), BlueLine automatically calculates a Safe Perimeter to route the wire around the node body, preventing the wire from passing through the node's visual area.

Automatic Safe Perimeter Routing

Key Features

  • 1. Multi-Point Alignment: Automatically calculates the mid-points for L and Z-style bends.
  • 2. Knot Centering: Ensures reroute nodes are perfectly centered between their connected pins.
  • 3. Proximity Awareness: Will not trigger if pins are too close together, preventing "knot clusters" in tight spaces.

Schematic Topology (Advanced Rendering)

BlueLine now includes a complete visual replacement for standard Unreal Engine splines, engineered to provide perfect schematic layouts with zero node-tangling.

โšก Dynamic Node Avoidance

Orthogonal wires dynamically trace around unrelated nodes in their path rather than striking through them.

๐Ÿ›ฃ๏ธ Parallel Bus Routing

Parallel overlapping wires are automatically fanned out with perfect 12px offsets, creating distinct hardware-style logic buses.

๐Ÿ”€ Crossing Bridges

Intersecting wires visually break and form "jump arcs" so it is absolutely clear they do not physically connect.

๐Ÿ“ก Pulse Emphasis

Hovering a pin instantly thickens and brightens the entire connected logic chain while aggressively dimming the rest of the graph for maximum visibility. The Slice Line (Alt-Click) is fully supported with these new shapes.

Wireless Data Nodes

Transmit execution and data across massive distances with zero visual clutter and zero runtime cost.

  1. 1 Add a Wireless Send node and define a custom Channel Name.
  2. 2 Add a Wireless Receive node elsewhere and type the same Channel Name.
  3. 3 During compilation, the system resolves the link mathematically and completely strips the node logic, passing your raw data with no performance overhead.

Clean Graph (Shift+C)

For large, tangled logic webs, the Genetic Algorithm finds the global optimum for node placement and wire routing.

Gen 0
Crossing Detected
Gen 150 (Fittest)
Score: 98.4%
The Genetic Engine (Shift+C) simulates 150 generations of node layouts to minimize wire length and overlap.

The Evolutionary Process

Unlike standard formatters that use fixed rules, BlueLine's Genetic Algorithm (GA) performs a simulation:

  • 1. Population: It spawns 50 randomized "Genomes" of your selected nodes.
  • 2. Scoring: Each genome is penalized for wire crossings, backward flow, and excessive whitespace.
  • 3. Selection: The fittest layouts are kept; the weakest are discarded.
  • 4. Mutation: Winners are "bred" with small positional mutations to find the local maxima of readability.

Semantic Auto-Tag (Shift+T)

BlueLine uses Semantic Heuristics to understand what your code does, automatically grouping it into themed Comment Boxes.

Identified Markers

Combat.Damage AI.Perception Movement.Input

"Detected 'Health', 'Damage', and 'Attack' nodes. Classifying as Combat Logic."

โœจ Combat Logic
Shift+T analyzes node titles and variable types to cluster nodes into semantic Comment Boxes.

Heuristic Intelligence

The FBlueLineSmartTagAnalyzer looks for patterns across the graph:

  • Naming: Matches keywords in function names (e.g., "Projectile" → Combat, "Sound" → Audio).
  • Connectivity: Groups nodes that are physically linked, even if they share no common keywords.
  • Theme Sync: Uses the colors defined in your BlueLineThemeData asset to style the resulting comment boxes.

Blueprint Linter (Shift+L) v1.2.0

Detect logic anti-patterns, cyclic hazards, and performance drains in real-time with Shift + L. Offending nodes receive actionable visual overlays directly inside the graph editor.

Event Tick HEAVY Expensive Pure Function 4x RE-EVAL // Combat Sub-Tree Knot LINTER EXEMPT Zero False Positives BlueLine Linter inspects semantic complexity while explicitly ignoring reroute knots & comment boxes.
Real-time node diagnostics: flags severe anti-patterns while exempting organizational nodes.

Smell Detection Rules

โš ๏ธ Tick Heavy Operations

Flags line traces, synchronous queries, and complex loops attached directly to Event Tick.

๐Ÿ”„ Excessive Pure Node Fan-Out

Warns when a computationally heavy pure node is wired to $\ge 3$ inputs, causing hidden redundant re-evaluations.

๐ŸŒฟ Deep Nesting & Cyclomatic Hazards

Identifies branching cascades exceeding 5 levels deep, recommending extraction via Shift+B.

๐Ÿ›ก๏ธ Smart Knot & Comment Exemption

UK2Node_Knot reroute pins and UEdGraphNode_Comment boxes are strictly exempt from fan-out and orphan penalties.

Graph Bookmarks Alt+1-9

Save and instantly navigate to important nodes in your Blueprint graphs. Bookmarks persist per graph across editor sessions, stored in Saved/BlueLineBookmarks.json.

๐Ÿ”–

Keyboard Shortcuts

Alt+1-9 โ€” Set bookmark at selected node
Alt+Shift+1-9 โ€” Jump to bookmark
Alt+0 โ€” Clear all bookmarks
Alt+0 โ€” Clear all bookmarks
Bookmark Navigation Model Saved/BlueLineBookmarks.json
Selected Node Alt+5 store slot BlueLineBookmarks.json GraphKey โ†’ Slot5 โ†’ NodeGuid Move Away Shift+5 jump back
Bookmarks store node GUIDs, not screen positions, so navigation survives normal graph cleanup and node movement.

How It Works

  1. 1 Select a node in any Blueprint graph.
  2. 2 Press Alt+1-9 to save the bookmark (e.g., Alt+5 saves to slot 5).
  3. 3 Press Alt+Shift+1-9 anytime to jump directly to that node. Press Alt+0 to clear all graph bookmarks.

Features

๐Ÿ“
Node-Based

Bookmarks reference nodes by GUID, so they survive node repositioning.

๐Ÿ’พ
Persistent

Saved per graph in Saved/BlueLineBookmarks.json.

๐Ÿงน
Auto-Cleanup

Stale bookmarks are automatically removed when nodes are deleted.

๐Ÿ—‘๏ธ
Asset Tracking

Bookmarks are cleaned up when Blueprint assets are deleted.

Note: Bookmarks use Alt+1..9 to set, Alt+Shift+1..9 to jump, and Alt+0 to clear all. This avoids collisions with Unreal Engine's viewport camera bookmarks (Ctrl+1..9) and Editor mode-switching shortcuts (Shift+1..5).

Node Snippets Shift+S / Shift+I

Save selected nodes as reusable templates that can be quickly inserted into any graph. Perfect for commonly used logic patterns, function templates, or node setups.

๐Ÿ“ฆ

Keyboard Shortcuts

Shift+S โ€” Create snippet from selection
Shift+I โ€” Insert a saved snippet
Snippet Capture And Insert selection โ†’ JSON โ†’ active graph
Selected Nodes Shift+S serialize internal links name + category + usage BlueLineSnippets.json SnippetId โ†’ exported nodes Shift+I insert into focused graph
Snippet insertion uses the currently focused graph, so the picker can be opened without losing the target context.

Creating a Snippet

  1. 1 Select nodes in any Blueprint graph (can include events, functions, variables).
  2. 2 Press Shift+S to open the snippet creation dialog.
  3. 3 Enter a name and click OK. The snippet is saved to Saved/BlueLineSnippets.json.

Inserting a Snippet

  1. 1 Press Shift+I in any graph to insert the most recently used snippet.
  2. 2 Nodes are recreated with connections preserved between them.
  3. 3 The new nodes are automatically selected for easy repositioning.

Snippet Features

๐Ÿ”—
Connection Preservation

Internal node connections are maintained when inserting.

๐Ÿ“‚
Categorized

Organize snippets by category for easy browsing.

๐Ÿ“ค
Export/Import

Share snippets with team members via JSON files.

๐Ÿ“Š
Usage Tracking

Tracks how often each snippet is used.

Extract to Subsystem Shift+B

Refactor complex Blueprint graphs by extracting selected nodes into dedicated Blueprint Subsystems. This feature automates the creation of GameInstance, World, or LocalPlayer managers, promoting cleaner architecture and better separation of concerns.

๐Ÿ’ก

What are Subsystems?

Unreal Engine Subsystems are automatically instantiated manager classes with lifecycles tied to GameInstance, World, or LocalPlayer. They're perfect for systems that need to persist across level transitions (save systems, achievement managers, input handlers) without being tied to specific actors.

How It Works

1

Select Nodes

In any Blueprint graph, select the nodes you want to extract into a subsystem. The selection can include events, functions, variables, and pure calculation chains.

2

Press Shift+B

Or right-click and select "Extract to Subsystem" from the BlueLine Graph context menu.

3

Configure & Save

Choose a destination path and name. The system creates a new Blueprint inheriting from BlueLineGameInstanceSubsystem by default.

4

Edit & Connect

The new Blueprint opens automatically. The selected nodes are copied to the subsystem's event graph, ready for further refinement.

Subsystem Types

Type Lifecycle Best For
GameInstance Game Session Save systems, achievement managers, analytics, cross-level data persistence
World Level/World Level-specific rules, world event managers, per-level audio managers
LocalPlayer Per Player Per-player input managers, player-specific UI controllers, split-screen HUD

Visual Example

Original Graph (Messy)
Event BeginPlay
โ””โ”€โ†’
Load Save Data โ† [20 nodes]
โ””โ”€โ†’
Init Achievements โ† [15 nodes]
โ””โ”€โ†’
Setup Analytics โ† [10 nodes]
After Extraction (Clean)
Event BeginPlay
โ””โ”€โ†’
Get GameInstance Subsystem
โ””โ”€โ†’
Initialize Systems
BP_SaveManager subsystem created with all 45 nodes moved there
Extracting initialization logic into a dedicated GameInstance Subsystem

Export to Text Shift+E

Transform visual Blueprint graphs into human-readable text for debugging, documentation, code reviews, and AI-assisted analysis. The exporter flattens nested logic into an easy-to-follow tree structure.

๐Ÿค–

AI-Ready Output

The exported text is optimized for LLM tools like ChatGPT, Claude, and Copilot. Because the exporter flattens nested pure node chains into inline expressions, AI understands the logic far better than from screenshots or raw graph data.

How It Works

  1. 1 Open any Blueprint graph in the editor.
  2. 2 Press Shift+E or right-click โ†’ "Export to Text" from the BlueLine Graph menu.
  3. 3 Choose save location in the file dialog (defaults to [Project]/BlueprintExports/).
  4. 4 Open the .txt file in any text editor or paste into your AI tool of choice.

Example Output

BP_Player_Logic.txt Exported Text
=== Blueprint Export: BP_Player ===
Export Type: Full Graph
Total Nodes: 42

Event BeginPlay
โ””โ”€ then โ†’
  Set Max Health (MaxHealth = 100.0)
  โ””โ”€ then โ†’
    Set Current Health (CurrentHealth = MaxHealth)
    โ””โ”€ then โ†’
      Initialize UI (Widget = Create Widget, Class = WBP_HUD)

Event TakeDamage
  Take Damage (Damage = 10.0, DamageType = DamageType_Fire)
  โ””โ”€ then โ†’
    Apply Damage (Target = Self, BaseDamage = Damage)
    โ””โ”€ then โ†’
      Branch (Condition = CurrentHealth <= 0)
      โ””โ”€ true โ†’
        Play Death Animation (Animation = Death_Fire)
        โ””โ”€ then โ†’
          Destroy Actor (Target = Self)
      โ””โ”€ false โ†’
        Update Health Bar (Percent = CurrentHealth / MaxHealth)

Event OnHeal
  Heal (Amount = Clamp (Value = Float + Float, Min = 0, Max = MaxHealth - CurrentHealth))
  โ””โ”€ then โ†’
    Set Current Health (CurrentHealth = CurrentHealth + Amount)

Features

๐Ÿ“ฅ Tree Structure Visualization

Uses Unicode box-drawing characters (โ””โ”€ โ†’) to show execution flow hierarchy clearly.

โšก Pure Node Expansion

Math operations, variable getters, and conversions are expanded inline for complete visibility.

๐Ÿ“ Smart Input Detection

Automatically detects literal values, default values, and connected pin values.

๐ŸŒ Full Graph Coverage

Exports Event Graphs, User Functions, Macros, and Interfaces comprehensively.

Use Cases

  • โœ“ Debugging: See full logic flow without clicking through dozens of nodes
  • โœ“ Code Reviews: Share logic via text instead of screenshots in PRs
  • โœ“ Documentation: Generate human-readable docs from Blueprints automatically
  • โœ“ AI Assistance: "Optimize this logic", "Rewrite in C++", "Find bugs"
  • โœ“ Understanding: Quickly grasp complex Blueprints written by others

Smart Tags (Details Panel)

BlueLine hijacks the Details Panel for GameplayTags to inject visual context. It replaces the standard textual row with a composite widget.

Damage.Tag Status.Fire.Burn
The Details Panel row displays a Color Strip, the Tag Picker, the Color Config, and Inheritance Checkbox side-by-side.

Colored Pins (Graph Editor)

Using the custom FBlueLineGraphPinFactory, the plugin also injects styling into the Blueprint Graph itself.

Make Gameplay Tag Tag Status.Fire.Burn
A Graph Node utilizing the "Loud" Border style to highlight the tag color.

Advanced Wire Style v1.1.0

BlueLine introduces professional connection styling to the Unreal Editor, transforming legacy spline diagonals into clean, readable schematic diagrams.

๐Ÿ“ Manhattan Wire Style & Bridges

Refactored connection rendering drawing polylines as strictly orthogonal, grid-snapped lines with mathematically rounded corners (bezier bends). Includes visual crossover "bridges/bumps" to easily trace intersecting wires. Use Shift+Alt+W to cycle through all 4 styles: Curved, Manhattan, Circuit, and Hybrid.

Orthogonal lines with Bezier arcs and crossover bridges

๐Ÿ“ Strict Node Alignment

Forces node formatting to snap to a uniform 16-unit vertical grid. Traces parent-to-child execution pins to align nodes into perfectly straight horizontal rows for a clean "circuit board" style graph layout.

Node A Node B 16-Unit grid alignments matching execution tracks

๐Ÿ›ฃ๏ธ Wire Spacing & Bus Routing

Staggers parallel vertical or horizontal wires with offset spacing, preventing lines from overlapping and forming hard-to-read bundles.

Dynamic fanning and staggered layout offsets

๐Ÿงฒ Magnetic Snapping

Connection splines automatically pull your cursor toward valid nearby pins when dragging wires, minimizing missed connections and speed editing.

Snap Target Proximity magnet attraction when dragging connections

Level Editor Tools v1.1.0

BlueLine now extends into the Level Editor viewport with a radial pie menu for rapid pivot manipulation and intelligent selection. Previously available as a standalone viewport tool, these tools are now unified under BlueLine's shared theming system.

Pivot to Center Cursor Bottom Scope ALT + S
The streamlined Pie Menu features Blueprint-style grid, smooth hover animations, and elegant visual hierarchy.

Opening the Pie Menu

In the Level Editor viewport, press X to open the radial menu at your cursor position. The menu provides four quadrant actions:

โ†‘
Pivot Center

Snaps the pivot point to the center of the selected actor's visual bounds. Ignores billboard and collision components.

โ†’
Cursor Snap

Enters precision picker mode with crosshair. Hover over mesh vertices for live preview. Click to snap to exact vertex position.

โ†“
Pivot Bottom

Snaps the pivot to the bottom-center of the visual mesh. Ideal for props that need to sit flush on the floor.

โ†
Select Scope

Selects actors with matching materials within radius. World scan happens once; mouse wheel adjusts radius in real-time.

Design Philosophy

Blueprint Aesthetic

Subtle Blueprint-style grid fades toward edges. Clean lines, minimal clutter.

Animated Feedback

Smooth hover interpolation for scale and glow. Center indicator changes color to match selection.

Smart Layout

45ยฐ diagonal dead zones prevent accidental triggers. Options only activate in their specific quadrant.

Smart Pivot Snapping

BlueLine's pivot tools understand the visual geometry of your meshes, not just bounding boxes.

Intelligent Bounds Calculation

When calculating the center or bottom of an actor, BlueLine ignores non-visual components like:

  • Billboard Components (sprite icons)
  • Collision volumes
  • Hidden editor-only components

This ensures the pivot snaps to the visible mesh, not invisible bounding artifacts.

Container vs. Mesh Handling

Mesh Root (StaticMeshActor)

Uses SetPivotOffset() to move the pivot without changing the mesh position. The actor coordinate stays at the original location.

Container Root (Blueprints)

Physically moves the actor coordinate and counter-offsets all child components. Preserves relative positions of attached meshes.

Material-Based Selection

The Select Scope feature allows rapid selection of visually related actors in your level.

How It Works

  1. Select an actor with a mesh (e.g., a wooden crate).
  2. Open the Pie Menu (X) and hover over Select Scope.
  3. BlueLine scans the entire level once and caches all actors sharing any material with your selection.
  4. Mouse wheel adjusts the radius (50 - 50,000 units).
  5. Click to select all matching actors within the radius sphere.
Selected Radius: 2000
Select Scope finds actors with matching materials (blue) within the radius. Different materials (red) are ignored.
Performance Note: The world scan happens once when you first hover over "Select Scope". Subsequent radius adjustments only filter the cached results, making the feature responsive even in massive levels.

Pin Context Menu

For fine-grained control, BlueLine extends the standard Blueprint pin context menu with localized actions.

Pin Actions
Break Link
Promote to Variable
โšก Straighten Connections BlueLine
Intelligence Check: Safe to straighten. No overlapping logic detected in this sector.
Right-click any Pin to access the "Straighten Connections" command for that specific link.

Intelligence (IQ) Check

BlueLine won't blindly insert knots if it would make the graph worse. Before straightening, the engine performs a sector scan:

  • Collision Detection: If a new Manhattan path would pass directly through an existing node, the action is cancelled.
  • Overlap Prevention: If the horizontal distance is less than 64 units, it keeps the spline to avoid a "knot on top of pin" visual glitch.
  • Pathfinding: It searches for the "cleanest" side (top vs bottom) to route around obstacles.

Team Setup

BlueLine uses a DataAsset to sync colors across the team. This ensures that if the Lead Designer marks "Status.Dead" as Black, every other developer sees Black instantly.

Step 1: Create the Asset

  1. In the Content Browser, right-click and select Miscellaneous > Data Asset.
  2. Search for BlueLineThemeData.
  3. Crucial: Name the file DA_BlueLineDefault.
  4. Place it anywhere in your Content folder (The plugin uses Asset Registry search to find it).

Step 2: Configure Rules

Open the asset and add entries to the Tag Styles array.

Rule Example:
- Tag: Status
- Color: Green
- ApplyToChildren: True

Result: Status, Status.Buff, and Status.Buff.Heal will all turn Green automatically.

๐Ÿ†• Level Editor Settings (v1.1.0)

BlueLineLevel uses the same BlueLineThemeData asset. Future versions will apply theme colors to viewport selection highlights and debug drawing.

Slate Setup Wizard v1.1.0

BlueLine introduces a dark blue & cyan natively styled config dialog that pops up on first launch to facilitate team-wide preferences synchronization.

BlueLine Setup Wizard Welcome to BlueLine v1.1 Configure your ultimate Blueprint formatting environment PREFERENCES Enable Manhattan Wire Style & Bridges Strict 16-Unit Node Grid Align Auto-Route New Wire Connections Show Warnings on Deep Nesting THEME PRESETS Spaghetti Killer (Default) Genetic Optimizer Minimal Schematic Read Documentation Apply & Close
Slate Setup Wizard window displays on initial load with unified Dark & Cyan styling.

Team Configurations Syncing

Rather than forcing each developer to copy configuration files manually, the Setup Wizard leverages the BlueLineThemeData asset system. When a lead configure parameters in the setup widget and hits Apply & Close, the configuration writes back to project-wide settings which are easily checked in via source control.

The wizard dialog remains accessible on-demand inside the Unreal Editor toolbar menu via: Window > BlueLine Setup Wizard.

Snippet Manager Tab v1.1.0

Manage, edit, export, and instantly inject your saved logic blocks directly from a dockable Editor Tab.

Snippet Manager Search snippets... โ–ผ COMBAT LOGIC Init_Combat_Stats Apply_Critical_Strike Check_Health_State โ–ถ UI UTILITIES โ–ถ DATA SERIALIZATION PREVIEW: Init_Combat_Stats Input Event Assign Values Insert Snippet Rename Delete Export
Visual Snippet Manager Tab docked inside Unreal Editor, showing list tree, search filter, and visual node preview.

Dockable Snippet Panel

Open the Snippet Manager tab via the menu option: Window > Tools > Snippet Manager.

Unlike the keybindings (Shift+S / Shift+I) which perform fast saving/inserting of the latest selection, the Snippet Manager serves as a permanent, searchable visual library. Here you can categorize snippets, edit their JSON payload metadata, export selections to transfer to other developer setups, or double-click items to drop logic chains directly at the graph cursor coordinate.

Real-Time Auto-Routing & Spawning v1.1.0

Real-time graph monitoring dynamically shapes newly added wire connections and provides instant testing environments.

1. DRAG NEW CONNECTION 2. INTERCEPTED & AUTO-ROUTED FBlueLineConnectionInterceptor
Connection interceptor detects newly linked pins and instantly applies soft alignments and orthogonal routing.

Real-Time Hook System

Rather than manually running formatters on every single wire connection, the editor module integrates the FBlueLineConnectionInterceptor. Using the low-level FCoreUObjectDelegates::OnObjectModified delegate, BlueLine detects whenever new connections are written to any Blueprint graph.

If the bAutoRouteNewConnections preference is active in your project configurations, the interceptor immediately triggers. It identifies the target node, performs a fast proximity & collision check, aligns the node vertically or horizontally relative to the execution origin, and routes the new connection orthogonally without displacing adjacent elements.

Spawn Messy Demo Command

To easily test or demonstrate these features, right-click in empty space within any Blueprint Event Graph and select "Spawn Messy Demo". This command instantiates a chaotic sequence of arithmetic, logic, and execution nodes linked via diagonal wire crossings. Use this generated demo graph to witness the power of Auto-Format Selection (Shift+Q), Manhattan Routing (Shift+R), or Genetic Cleaning (Shift+C).

Demo scope: the generated demo is intended for throwaway Blueprint/K2 test graphs. Internal demo K2 node types are hidden from the normal Blueprint action menu unless advanced debug exposure is enabled in BlueLine settings.

Wireless Named Reroutes v1.1.0

Declutter massive blueprint graphs by turning standard physical splines into wireless named nodes with zero compiler overhead.

STANDARD REROUTE SPLINES Out Pin In Pin Unrelated Node WIRELESS NAMED REROUTE ๐Ÿ“ก PlayerRef ๐Ÿ“ฅ PlayerRef Invisible splines / Zero performance cost
Comparison of traditional physical spline wiring (left) vs BlueLine's compilation-resolved Wireless Named Reroutes (right).

How Wireless Named Reroutes Work

When massive nodes need data references across distant areas of a graph, developers usually resort to long splines or creating local variables. BlueLine introduces Wireless Named Reroutes directly within native UK2Node_Knot (Reroute) nodes.

  1. Create standard Reroute Nodes: Place reroutes at both the source (sender) and destination (receiver) pins.
  2. Apply comments: Input the exact same non-empty comment label (e.g. PlayerRef) to both nodes.
  3. Spline Suppression: The compiler module recognizes matching comments and automatically hides/suppresses the visual wire spline.
  4. Compile-time Resolution: When the Blueprint compiles, the graph generator maps the pins directly as a standard local connection. This resolves the reference with **absolute zero runtime cost or footprint**, keeping your game fast while keeping the editor graph clean.

Runtime Debugging

BlueLine exposes a static library to draw colored debug text in the game world, using the same colors defined in your editor Data Asset.

C++ Usage

#include "Debug/BlueLineDebugLib.h"

void AMyCharacter::Tick(float DeltaTime)
{
    // Draw "Status.Frozen" in Cyan (if defined in DataAsset) above the character
    UBlueLineDebugLib::DrawBlueLineDebugTag(
        this, 
        CurrentStateTag, 
        GetActorLocation() + FVector(0,0,100)
    );
}

Blueprint Usage

Search for the node "Draw BlueLine Debug Tag".

Headless Blueprint Linter (CI/CD) v1.1.0

Enforce project-wide blueprint coding guidelines automatically in your continuous integration systems. The headless commandlet reads linter preferences and fails automated builds if code smells exceed thresholds.

Git Commit Developer Push CI Pipeline Runner Trigger Commandlet BlueLineLinterCommandlet Parse Graph Rules Pass (Exit 0) Fail (Exit 1)
Headless CI/CD Linter verifies Blueprint metrics and controls build exit status automatically.

Invocation Example

To run the commandlet inside your build pipeline, call the Unreal Automation Tool or commandlet wrapper:

UnrealEditor-Cmd.exe MyProject.uproject -run=BlueLineLinterCommandlet -CheckAll -Strict
Exit Code Behavior: Returns 0 on success, or 1 if unresolved errors (e.g. tick abuse or depth violations) are discovered, allowing your CI runner to cancel deployment.

Live Testing & QA Playbook 16/16 Tests Verified

Validate every BlueLine system live inside the Unreal Editor or via command-line automation. Use the built-in Messy Demo Spawner to instantly test all graph reorganization tools, inspect the Level Viewport Radial Menu, and execute the Session Frontend Automation Suite.

๐ŸŽฎ Method 1: Interactive Blueprint Playground

Right-click in any Blueprint Event Graph and select BlueLine Demo -> Spawn Messy Demo. Instantly generates tangled webs of nodes to test layout tools live.

โ€ข Shift+C: Clean Graph (Genetic Algorithm)
โ€ข Shift+Q: Soft Auto-Format Selection
โ€ข Shift+R: Manhattan Centered Knot Routing
โ€ข Shift+T: Semantic Auto-Tagging & Colors
โ€ข Shift+L: Blueprint Anti-Pattern Linter
โ€ข Shift+Alt+W: Cycle Wire Drawing Renderers
โ€ข Shift+B: Extract Selection to Subsystem
โ€ข Shift+E: Export Nodes to Text / LLM Prompt
๐ŸŽฏ Method 2: Level Viewport Radial Tools

Select one or more Static Mesh actors in the 3D level viewport and press Alt + X.

โ€ข Top: Pivot to Bounding Box Center
โ€ข Bottom: Pivot to Mesh Bottom Plane
โ€ข Right: Raycast Snap to Ground / Surface
โ€ข Left: Select All Actors by Matching Material
โšก Method 3: Setup Wizard & Preferences

Open Window -> BlueLine Setup Wizard for 1-click team presets, and test live wire interception in Editor Preferences.

โ€ข Auto-Route On Drag: Toggle bAutoRouteNewConnections
โ€ข Palette Sync: Inspect Smart Colors DataAsset
โ€ข Nomad Tab: Window -> Tools -> Snippet Manager
๐Ÿงช Method 4: Automated Test Runner

Open Tools -> Session Frontend -> Automation, filter BlueLine, and click Start Tests.

โ€ข 16 Verified Specs: Analyzer, GA, Knot, Tags, Linter
โ€ข CLI Headless: UnrealEditor-Cmd.exe -ExecCmds="Automation RunTests BlueLine; Quit"
โ€ข Exit Code: 0 verified on UE 5.5, 5.6, 5.7, 5.8+

Complete Automation Test Matrix (16 Passed)

# Automation Test Spec Target Subsystem Validation Criteria Result
01 BlueLine.Graph.Analyzer.BasicMetrics Graph Analyzer Node counts, connection fan-out, and graph density metrics match exact topology. PASS
02 BlueLine.Graph.Analyzer.BoundsCalculation Graph Analyzer Bounding box and cluster bounds compute precisely with configurable padding. PASS
03 BlueLine.Graph.Analyzer.ClusterDetection Smart Tags Clusters isolated logic chains into semantic islands, properly jumping through reroute knots. PASS
04 BlueLine.Graph.Analyzer.WireCrossings Graph Analyzer Detects non-planar wire intersections using 2D geometric segment intersection math. PASS
05 BlueLine.Graph.Cleaner.CyclesAndComments Genetic Cleaner Topologically sorts cyclic execution loops while locking comment box positions. PASS
06 BlueLine.Graph.Cleaner.PureNodeFlow Genetic Cleaner Aligns pure function dependencies to the left of consuming execution nodes. PASS
07 BlueLine.Graph.Export.SettingsRespected Graph Exporter Export to text (Shift+E) respects formatting depth, pin filtering, and JSON flags. PASS
08 BlueLine.Graph.Formatter.ExecAlignment Formatter Execution wire horizontal leveling and grid-snap alignment (Shift+Q). PASS
09 BlueLine.Graph.Linter.KnotAndCommentExemption Linter Guarantees UK2Node_Knot and UEdGraphNode_Comment do not trigger false positive warnings. PASS
10 BlueLine.Graph.Linter.OrphanedNode Linter Detects truly orphaned dead logic nodes disconnected from graph roots. PASS
11 BlueLine.Graph.Routing.KnotCenteringAndPinPos Manhattan Router Calculates centered UK2Node_Knot placement with exact orthogonal pin geometry (Shift+R). PASS
12 BlueLine.Graph.SubsystemExtractor.CanExtractNodes Subsystem Extractor Extracts selected logic into a new GameInstance/World/Player Subsystem (Shift+B). PASS
13 BlueLine.Graph.Wireless.NodeLifecycle Wireless Nodes Verifies UK2Node_WirelessLink source/target pair lifecycle, channel registration, and pin syncing. PASS
14 BlueLine.SmartTags.AutoTag.PersistsMetadata Smart Tags Saves category tags, color assignments, and comments reliably across editor sessions. PASS
15 BlueLine.SmartTags.AutoTag.RespectsBlueprintColorEditSetting Smart Tags Respects user preferences when overriding existing Blueprint comment box colors. PASS
16 BlueLine.UI.Graph.Rigidify.inserts reroute nodes... UI Commands Validates conflict-safe keyboard shortcut mappings and context menu dispatching. PASS

Module Dependency Graph

BlueLine is designed with Zero Runtime Footprint. All modules compile exclusively for the editor (Type: Editor), meaning the plugin does not ship code with your packaged game and adds absolutely zero runtime overhead.

BlueLineCore Shared Styles, Settings, Utils TYPE: EDITOR BlueLineSmartTags Semantic Tag Analyzer TYPE: EDITOR BlueLineGraph Orthogonal Wires, GA Engine TYPE: EDITOR BlueLineLevel Level Viewport tools (X) TYPE: EDITOR
Unified Editor Architecture: BlueLine is 100% Editor-only. All modules depend on BlueLineCore for styles and shared settings.

BlueLineCore

The centralized base module containing settings (UBlueLineEditorSettings), shared theme presets (UBlueLineThemeData), and shared Slate style registration (FBlueLineStyle). Replaced previous runtime configurations to ensure zero runtime impact.

BlueLineSmartTags

Performs asynchronous semantic graph parsing using FBlueLineSmartTagAnalyzer. Identifies node clusters and styles semantic regions using comment boxes.

BlueLineGraph

Implements low-level node graph utilities, including FBlueLineManhattanRouter, the Genetic format engine (FBlueLineGraphCleaner), wire snapping, and keyboard shortcut listeners.

BlueLineLevel

Contains viewport extensions including radial selection pie menus (X), vertex snaps, and similar-material selection scopes.

The Manhattan Routing Engine

BlueLine replaces standard Blueprint splines with intelligent, 90-degree orthogonal paths. This is achieved via a Dynamic Knot Injection system.

1. Path Calculation

The router calculates a multi-point "Z-bend" or "L-bend" based on the relative distance between pins. It handles backwards flow by creating a "Safe Loop" to prevent tangling.

2. Knot Persistence

Unlike transient visual-only fixes, BlueLine injects real UK2Node_Knot (Reroute) nodes. This ensures the layout remains clean across editor restarts and team commits.

The "Magnet" Algorithm (Soft Align)

The formatter (Shift+Q) uses a heuristic approach rather than a solver. It does not try to solve the whole graph; it solves local constraints based on user selection.

Parent Node Target Y (Pin Aligned) Min X (Padding)

Logic Flow

  • Prioritization: The algo scans Input Pins. Exec pins take priority over Data pins.
  • Y-Axis (Alignment): TargetY = Parent.Y + Offset. It attempts to make the wire perfectly horizontal.
  • X-Axis (Spacing): TargetX = Parent.X + Width + Padding. It ensures nodes never overlap, pushing child nodes to the right if necessary.
  • Snap: Final coordinates are rounded to the nearest Grid Unit (16px) for cleanliness.

UE 5.5+ Nuances

Developing for Unreal Engine 5.5+ requires specific architectural patterns to maintain compatibility with new editor systems:

ToolMenus API
UE 5.5+ has moved away from legacy FExtender delegates in favor of the UToolMenus system. BlueLine now registers its context menu entries (like "Spawn Messy Demo") using the modern GraphEditor.GraphContext hook to ensure visibility in all sub-graph types.
Module Phases
The BlueLineSmartTags module loads in the Default phase but manually triggers LoadModuleChecked("GraphEditor"). This ensures that the engine's menu systems are fully initialized before the plugin attempts to inject its custom commands.
v1.1.0 Level Module
The new BlueLineLevel module loads in PostEngineInit to ensure the LevelEditor module is fully initialized before binding the X command to viewport actions.

Troubleshooting

Issue 1: Tags are "Hot Pink" (Magenta)

If your Graph Pins or Runtime Debug text appear as a uniform, bright pink (Magenta), the plugin cannot find your configuration file.

Status.Fire AssetRegistry Search MISSING FILE BlueLineThemeData
Use of Magenta (1,0,1) indicates the DataAsset lookup returned nullptr.

Solution

  1. Check your Content Browser. Do you have a file created from class BlueLineThemeData?
  2. Naming Convention: Ensure it is named DA_BlueLineDefault.
  3. Save & Restart: If you just created it, the Registry might be stale. Save the asset and Restart the Editor.

Issue 2: "Spawn Messy Demo" is Missing

You right-click in the graph but the "BlueLine Demo" section does not appear.

  • Graph Type: The demo helper is only intended for Blueprint/K2 graphs. It will not appear as a general-purpose action in every editor panel.
  • Graph Focus: Ensure you are clicking on the background of the graph, not a node.
  • Action Palette: Internal demo node types are hidden from the normal Blueprint action menu by default. Use the context-menu helper for test graphs instead of searching for demo nodes manually.
  • Module Status: Check the Output Log for "BlueLineSmartTags: Registering...". If it is missing, the module failed to load due to a dependency mismatch.
  • Rebuild: If you are using C++, perform a full rebuild to ensure ToolMenus is correctly linked.

Issue 3: "Shift+T" (Auto-Tag) Fails

The command runs, but no comment boxes are created.

  • Cluster Size: Auto-Tag ignores clusters of fewer than 3 nodes to prevent "noise" on small snippets.
  • Semantic Density: If the nodes are purely generic (e.g., just Float Math without context), the analyzer might not have enough confidence to suggest a tag.
  • Knot Links: Ensure you are using the latest version of BlueLine that supports Knot-traversal for cluster detection.

Issue 4: "Alt+X" Doesn't Open Pie Menu ๐Ÿ†•

You press X in the Level Editor, but nothing happens.

  • Viewport Focus: The pie menu requires the Level Editor viewport to have focus. Click in the viewport first, then press X.
  • Module Loaded: Check the Output Log for "BlueLineLevel: Module Started." If missing, the module may have failed to load.
  • Shortcut Conflict: Another plugin or Editor Preference might be using X. Check Editor Preferences > Keyboard Shortcuts and search for "BlueLine Level".
  • Selection Required: Some pie menu actions require an actor to be selected first. Try selecting a Static Mesh Actor, then opening the menu.

Issue 5: Graph Pins are Generic Grey

You created a Gameplay Tag pin, but it looks like a standard, uncolored dropdown. This is a Factory Priority issue ("Shadowing").

VisualPinFactory Stack (LIFO) 1. BlueLineFactory 2. Engine Default Factory โš ๏ธ Engine shadowed Plugin 1. Engine Default Factory 2. BlueLineFactory โœ… Plugin Handles Pin First
Unreal checks Factories in Reverse Order. BlueLine must load AFTER the Engine module to sit on top.

Solution

  • Restart Required: StartupModule() registers the factory. If you compiled via Live Coding, the registration code did not run. Restart the editor.
  • PreDefault Loading: Open BlueLine.uplugin. Ensure the BlueLineGraph module has "LoadingPhase": "PreDefault". This forces it to register early, but we rely on dependency ordering (see below) to ensure we end up on top.
  • Dependencies: Ensure BlueLineGraph.Build.cs includes "GameplayTagsEditor". This forces the Engine module to load first, so when your module loads second, your factory is pushed to the top of the stack.

Issue 6: "Shift+Q" Does Nothing

You press the hotkey, but nodes do not move. The Output Log shows nothing.

Common Causes

Focus Issues

The command only triggers if the Graph Editor has focus. If you clicked a Toolbar button or a different window, focus is lost.

Fix: Click empty space in the graph before pressing Shift+Q.

Engine Shortcut Conflicts

Another plugin or Editor Preference might be using Shift+Q.

Fix: Go to Editor Preferences > Keyboard Shortcuts, search for "Soft Align", and rebind it.

Issue 7: Compilation Errors (UE 5.5+)

If you are modifying source code, note the strict API changes in 5.5+.

C3668: CreateConnectionPolicy override not found

This function was removed from FGraphPanelNodeFactory in 5.5+. Do not attempt to override it. Remove it from your header.

C2664: MakeGameplayTagWidget cannot convert...

The FGameplayTagWidgetSettings struct is deprecated. You must use the direct function signature: MakeGameplayTagWidget(Delegate, InitialPtr, FilterString).

LNK2019: Unresolved External Symbol FGameplayTag::StaticStruct

Your module is using Gameplay Tags but forgot to link the library. Add "GameplayTags" to `PublicDependencyModuleNames` in your `Build.cs` file.

LNK2019: Unresolved External Symbol IPluginManager::Get

BlueLineCore needs the Projects module for the shared style system. Add "Projects" to PrivateDependencyModuleNames in BlueLineCore.Build.cs.

Release History & Changelog v1.2.0 Canon Release

Comprehensive architectural evolution, multi-engine floor guarantees, and system enhancements for the BlueLine suite.

[1.2.0] โ€” 2026-09-04

Canon Release

Multi-Engine Certified (UE 5.5 Floor, 5.6, 5.7, 5.8+) โ€ข 16/16 Automated Tests Passing

Full Suite Verification

๐Ÿงฌ 1. Genetic Algorithm Graph Optimizer (Shift+C)

    BEFORE OPTIMIZATION (Crossings: 4, Diagonal Chaos):
    [Node A] โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”   โ”Œโ”€โ”€โ–บ [Node D]
                    โ•ณ   โ”‚
    [Node B] โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”˜
                โ”‚   โ””โ”€โ”€โ–บ [Node C]

    EVOLUTIONARY PASS (Population: 50, Generations: 20):
    Fitness Score = w1*(Crossings) + w2*(WireLength) + w3*(Alignment)

    AFTER GA CLEAN (Crossings: 0, Topological Columns):
    [Node A] โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–บ [Node D]
    [Node B] โ”€โ”€โ–บ [Node C]

Minimizes geometric wire crossings while locking UEdGraphNode_Comment boxes in place. Topological sorting eliminates cycle deadlocks and orders pure nodes to the immediate left of their execution targets.

๐Ÿ“ 2. Knot-Centered Manhattan Router (Shift+R)

    VANILLA SPAGHETTI:
    [Pin Out] \
               \  (Diagonal strike across unrelated nodes)
                \
                 \โ”€โ”€โ–บ [Pin In]

    BLUELINE CENTERED MANHATTAN ROUTE:
    [Pin Out] โ”€โ”€โ”€โ”€โ”€โ”€โ”
                    โ”‚  (UK2Node_Knot centered precisely at orthogonal midpoint)
                    [Knot]
                    โ”‚
                    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ–บ [Pin In]

Injects centered UK2Node_Knot reroute pins with exact pin offset calculations. Fully proximity-aware: disables knot spawning in tight spaces to prevent reroute clustering.

๐Ÿ” 3. Blueprint Linter Knot & Comment Exemption (Shift+L)

    [Event BeginPlay] โ”€โ”€โ–บ [Knot 1] โ”€โ”€โ–บ [Knot 2] โ”€โ”€โ–บ [Print String]
                               โ–ฒ          โ–ฒ
                               โ”‚          โ”‚
                     โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
                     โ”‚   BLUELINE LINTER ENGINE    โ”‚
                     โ”‚  "Is UK2Node_Knot? EXEMPT"  โ”‚
                     โ”‚ "Is Comment Box?  EXEMPT"   โ”‚
                     โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                     Result: 0 False Positive Smells Detected

Eliminates false positives by exempting reroutes and comment bounds from complexity and fan-out penalties while catching legitimate tick abuse and deep branching.

๐Ÿ“ก 4. Wireless Named Reroute Links (UK2Node_WirelessLink)

    SOURCE CLUSTER                              TARGET CLUSTER
    [OnTakeDamage]                              [PlayImpactFX]
          โ”‚                                           โ–ฒ
          โ–ผ                                           โ”‚
    [โ–ถ WIRELESS SEND] ยทยทยทยทยทยทยท "CombatFX" ยทยทยทยทยทยทยท [โ–ถ WIRELESS RECV]
    (Zero Cross-Graph Wire Spaghetti โ€ข Fully Virtualized Signal Route)

Eliminates long cross-graph wires via virtualized channel pairs with synchronized execution pins and zero runtime overhead.

๐ŸŽฏ 5. Level Viewport Radial Pie Menu (Alt+X)

                       [ โ–ฒ PIVOT TO CENTER ]
                                 โ”‚
    [ โ—„ MATERIAL SCOPE ] โ”€โ”€โ”€โ”€ ( ALT + X ) โ”€โ”€โ”€โ”€ [ SNAP TO FLOOR โ–บ ]
                                 โ”‚
                       [ โ–ผ PIVOT TO BOTTOM ]

Slate-based radial menu in the 3D level viewport providing instantaneous bounding box pivot realignment, bottom grounding, floor collision raycasting, and material-scoped multi-selection.

[1.1.5] โ€” 2026-09-03

Feature Release
  • โ€ข Subsystem Extractor (Shift+B): Modal dialog to extract selected nodes into GameInstance, World, or LocalPlayer Subsystems.
  • โ€ข Export to Text (Shift+E): Structured serialization of graphs into human-readable text and JSON for debugging and AI analysis.
  • โ€ข Visual Snippet Manager Tab: Dedicated Nomad Tab under Window -> Tools -> Snippet Manager for browsing, previewing, and pasting node snippets.
  • โ€ข Real-time Auto-Routing: Wire connection interceptor hooked via FCoreUObjectDelegates::OnObjectModified for real-time Manhattan routing.

[1.1.0] โ€” 2026-06-15

Foundation Release
  • โ€ข Unified Level Editor Tools: Integrated viewport tools into BlueLineLevel with radial pie menu (Alt+X).
  • โ€ข Smart Tags System: Gameplay Tag chip visualization with dynamic color palettes configured via DataAsset.
  • โ€ข Conflict-Safe Keybindings: Remapped bookmarks to Alt+1..9 and wire toggle to Shift+Alt+W.
  • โ€ข CI/CD Headless Commandlet: BlueLineLinterCommandlet for build pipelines and automated smoke test validation.
Budapest, HU

GregOrigin

Created by Andras Gregori @ Gregorigin, a single dad currently based outside Budapest, HU.

"Building tools that empower creators to shape worlds."