Changelog¶
All notable changes to Quick Menu will be documented here.
Format follows Keep a Changelog. Each version includes a Reported section listing what was detected/reported, followed by the actions taken.
[1.0.5] - 2026-05-18¶
Reported¶
- Plugin settings edited via the Quick Menu panel or Project Settings > Plugins > Quick Menu did not persist across editor restarts — changing the open-menu hotkey, switching the active wheel, toggling "Show Add Button In Wheel", "Allow Wheel During Play In Editor", or editing custom console commands all reset to defaults on next launch. Only wheel graph asset edits (
.uasset) and per-user appearance overrides (icon size, wheel size, wedge gap, gray wedges, …) were correctly saved — every otherUPROPERTY(config)setting was lost (reported by external tester) - The Quick Menu Panel duplicated information across a top header and a bottom footer block (logo watermark, "Quick Menu Panel" title, "Active graph: …", "Open the wheel with V. Shortcuts, docs, …", Docs/GitHub/Website links) — the footer essentially restated what the header already showed
- The live wheel preview was embedded inside the
Project Settingstab via a vertical splitter, taking ~half of that tab and competing with the property editor for space; making the wheel bigger pushed it over the property list and capped the area available for editing settings Active Wheel: …had its own dedicated row above the tab bar, claiming vertical space for an always-visible status indicator that rarely changed- Header and footer link sets overlapped (GitHub in both, Documentation/Docs duplicated) while
Websitewas only reachable from the footer - The panel header reused a flat row layout (logo / title / pill / version / Report Bug / picker / links) that scaled poorly on narrower windows and lacked visual hierarchy
- Tab order in the panel was hardcoded; users could not promote their most-used tab to the front
- Right-clicking a
SubMenuwedge in the live wheel to edit its icon opened the inline property panel with an empty picker — only(None)and(Custom Texture)were listed; the curated brush list was missing, leaving no way to pick a built-in icon for a SubMenu without going back to the graph editor
Added¶
Live Previewdedicated tab — moved the live wheel preview out of thePlugin settingstab into its own top-level tab, sitting betweenPlugin settingsandAbout. The wheel now fills the full available height of the tab and resizes responsively. Source picker (Demo/Active Graph) stays in the section header. Content refreshes automatically when entering the tab (UpdateFooterForActiveTab)- Drag-reorderable tabs — every panel tab (
Shortcuts,Docs,Console Cmds,Plugin settings,Live Preview,About) can now be grabbed and dragged to reorder. Hovering a tab shows an open-hand cursor and a subtle background highlight; dragging swaps to a closed-hand cursor and shows a floating decorator widget (the tab label) following the mouse. Drop targets show a thin accent line on the left or right edge depending on the cursor's X position within the target tab, so users can precisely insert between any two tabs. Order is persisted per project inEditorPerProjectUserSettings.iniunder[QuickMenuPanel] TabOrder=…and gracefully handles future tab additions (any missing tab id is appended at the end) Websitelink surfaced in the header —quickmenuplugin.comis now reachable from the main header (was previously only in the now-removed footer)Inherit Mode to Childrenoption onWheelOutput— newUPROPERTYin theAppearancecategory (checked by default). When the wheel is inRadial Buttons(list) mode, all submenus opened from it now cascade as vertical list boxes instead of falling back to wedge rings, keeping the visual style consistent across nested rings. Unchecking the option restores the previous alternating behavior (root in list, submenus in wedge). Wedges mode is unaffected. Implemented inSQuickMenuWidget::UpdateHoverby resolving the rootUQMGraphNode_WheelOutput(viaResolveWheelNodeFromItemswithFallbackWheelNodefallback) and folding the inheritance flag into the existingListrendering branch alongside the globalbForceRadialButtonsForAllWheelssetting
Changed¶
Project Settingstab renamed toPlugin settings— clearer label that distinguishes our in-panel settings UI from Unreal's ownProject Settings > Plugins > Quick Menuwindow (which the help text inside the tab still references)- Header redesigned as a hero card with grouped controls — the entire top header is now wrapped in a tinted
ToolPanel.DarkGroupBorderfor visual containment. Row 1 promotes the brand: 44 px logo, bolder title, and a smaller dimmed subtitle (v1.0.4 · RELEASE) that replaces the previous version pill. Row 2 groups the active-graph controls inside a bordered toolbar block (Graph: <picker> [+ New] [↗]) with a thin vertical separator and the active wheel chip (Wheel: <name | None>) to its right. Row 3 hosts the inline links (Discord GitHub Docs Website). Header reads brand → controls → links from top to bottom Documentationlink renamed toDocs— consistent with the new header and shorter for a tighter rowActive Wheel: …status moved into the header — was a dedicated row above the tab bar with its own label; now lives as a small chip on row 2 of the header next to the active graph picker- Footer block removed — the bottom logo +
Quick Menu Paneltitle +Active graph: X+Open the wheel with V+ duplicateDocs/GitHub/Websitelink strip is gone. All useful info already lives in the header Plugin settingstab uses the full height — the verticalSSplitterthat used to share the tab between the property editor and the live preview has been removed; the property editor now uses the entire tab height with its own scroll view
Fixed¶
SubMenuicon picker now shows the curated brush list —SQMInlinePropertyPanel::MakeIconWidgetonly populated the brush options when the target node was aUQMGraphNode_ActionBase;UQMGraphNode_SubMenufell through and the combo was reduced to(None)/(Custom Texture). The guard now accepts both node types (ActionNode || SubMenuNode), so right-clicking a SubMenu wedge in the live wheel and openingIcon:lists the full set of common brush names (filterable via the search field) — matching the behavior already available on Action nodes- Inline property panel now opens for nodes whose only editable property is the icon —
FQuickMenuModule::ShowInlinePropertyPanelpre-checkedbHasEditablePropsby iteratingCPF_Editproperties while explicitly skippingIconBrushName/IconTexture/bCompact/bAutoLabel; ActionBase / SubMenu nodes that had nothing else to expose were rejected with aNot editable inlinetoast, even thoughMakeIconWidgetwould have rendered a usable icon row for them. The check now short-circuits totrueforUQMGraphNode_ActionBaseandUQMGraphNode_SubMenu, so the panel opens with at least the icon picker - Plugin settings now persist across editor restarts —
UQuickMenuSettingsis declared as adefaultconfigUCLASS (writes toConfig/DefaultEditor.ini), but every write path usedSaveConfig(), which does not reliably route to the default config file fordefaultconfigclasses. All ten write sites inQuickMenuSettings.cpp,SQuickMenuPanel.cpp, andQuickMenuModule.cpphave been switched toTryUpdateDefaultConfigFile(), and an explicitTryUpdateDefaultConfigFile()call has been added at the end ofPostEditChangeProperty()so edits made through Project Settings > Plugins > Quick Menu also persist. Affected settings:OpenMenuKey,ActiveGraph,HotkeyBindings,bEnableCustomGestureHotkeys,NodeSpawnShortcuts,EditWheelKey,ActivationMode,bAllowWheelInPIE,bShowAddButtonInWheel,bOfferCreateWheelForUnknownContext,bDefaultAutoLabelEnabled,CustomConsoleCommands,bLevelEditorPanelAutoOpened, and the internal migration flag
[1.0.4] - 2026-05-12¶
Reported¶
Project Settingsand the standaloneQuick Menu Panelexposed overlapping plugin settings with inconsistent structure and duplicated editing paths- Changing the main wheel shortcut could appear synchronized between the panel and
Project Settings, but the wheel did not always open with the new key at runtime - The standalone panel had become harder to follow than the actual plugin settings hierarchy
Show Flagwas limited to a small hardcoded list, without search, and did not match the hierarchy/tree organization of the viewportShowmenu- The new
Show Flagpicker initially only existed in the inline property panel, so the node body in the graph did not expose it directly Custom Pythoncould not pick an icon like other node types- Choosing an icon from the custom node dropdown could crash the editor when the graph rebuilt during selection
SubMenunodes could listQuickMenu.*icons in the picker but fail to render them correctly in the node header- The wheel's wedge order could not be customized — users could not predict where each item would land or rearrange them visually (Discord feedback, KovAlex)
- Wedge orientation was fixed; users wanted to rotate the whole wheel to align items the way they expect (Discord feedback, KovAlex)
- The inline rotation field on
WheelOutputlost focus mid-drag, forcing users to type values instead of dragging - Rotation did not apply to radial-button (list) layouts — buttons stayed at fixed cardinal angles regardless of the configured rotation
- No way to create new assets directly from the wheel — users wanted to spawn
Material,Level Sequence,Blueprint Class, etc. into the Content Browser without leaving the wheel (Discord feedback, KovAlex) Open Assetfroze the editor when picking heavy assets (large levels) — selecting in the dropdown forced an immediate full asset load just to remember the referenceOpen Assetcould crash or visually freeze the wheel for several seconds when targeting a Level (UWorld) —LoadMapran synchronously while the wheel was still active and showed its own progress dialog over the still-open menuGraph Op > Create Comment Around Selectionalways targeted the last-focused Quick Menu graph editor — even when the user was actively in a Blueprint / Niagara / AnimBP graph, the comment landed in the wrong place- New nodes added via the wheel inside a Blueprint (
BP Add Node) spawned in the upper-left of the visible viewport instead of where the cursor was when the wheel was opened - Hover detection in radial-button (list) layout ignored the wheel's per-graph rotation: the angular fallback used a hardcoded 0–360° range, so a wedge under the cursor lit a different button than the one under the actual mouse position
List Menu Distancewas hard-clamped to a narrow [-100, +200] range, preventing users from positioning list menus arbitrarily close to or far from the wheel- Mouse wheel scrolling inside an open submenu resized the entire wheel instead of cycling through the submenu's options, and the visible "downsizing" of list-mode wheels secretly scaled list-menu distance, mimicking a middle-mouse drag and pulling lists toward the center
- List-mode submenus only registered hover when the cursor was inside the list rectangle — pointing toward an item from the side without entering the rectangle didn't select it, unlike pie submenus where direction alone is enough
- Pressing the Create-Group-Comment shortcut (
C) or Name-And-Color-Comment shortcut (Alt+E) with several Quick Menu graph editors open could create the comment in the previously focused editor instead of the one the user was currently looking at - Quick Menu graph asset comments rendered with a custom title bar (an inline "Group Color" label + color swatch button) and so behaved subtly differently from Blueprint comments — users wanted full parity with the standard Unreal comment node
- In list / radial-button mode, mouse wheel resized the buttons while middle-mouse drag adjusted list distance — the inverse mapping (drag = scale, wheel = position) matches the convention most users have from other DCC tools and frees the wheel for the most common adjustment
Graph Opactions (Auto-Layout Graph,Align Horizontal,Align Vertical,Auto Name & Color Comments) only operated on Quick Menu graph editors — triggering them from a Blueprint / Niagara / AnimBP / Material graph silently did nothing- 5 separate
Switchnode types (Switch: Editor Context,Switch: Editor Mode,Switch: Blueprint Context,Switch: Selection Count,Switch: Actor Class) cluttered the flow node menu and forced users to know in advance which kind of routing they wanted before placing the node; a single Switch with all options behind one searchable picker was preferable
Added¶
Enable Custom Gesture Hotkeystoggle — Tap / Hold / Drag gesture resolution can now be turned off so the runtime falls back cleanly to the legacyOpen Menu Key+Active Graphpath. Defaults tooffwhile the gesture system stabilizes; the bindings list stays editable but visually dimmed when disabled, with an inline notice explaining the fallbackList Menu Distancesetting — new appearance slider that pushes or pulls list-style menus and radial-button rings toward / away from the wheel center. While in list / radial-button layouts, middle-mouse drag (the same shortcut asWedge Gapin pie mode) now adjusts this distance live (DISTreadout in the wheel center) sinceWedge Gaphas no meaning in those layouts- Searchable Show Flag picker —
Show Flagnodes now expose a dedicated picker with name search and a hierarchical tree aligned with the editor viewportShowmenu - Custom Python icon support —
Custom Pythonnodes now expose the same icon picker flow as other nodes, including brush selection, custom texture support, and title-bar preview - Per-graph wheel rotation — each
WheelOutputnow has aRotation (°)property persisted with the asset. Rotate any open wheel live with Shift + middle-mouse drag (0.75°/px, holdCtrlfor ×0.1 fine mode); reset to 0° with Shift + double middle-click. Live numeric overlay shows the angle during drag and fades out 1 s after release. An inlineSSpinBoxon theWheelOutputnode stays in sync both ways with the runtime shortcut. Optional snap mode (off by default) and snap angle (0 = auto360°/N) live in the panel - Wheel Edit Mode — drag-and-drop reorder — open the wheel and press Alt to enter Edit Mode (background dims, "WHEEL EDIT MODE" label appears above the wheel). Click + drag a wedge / radial button to swap with another. While dragging:
- The source slot is left visually empty — the item is "in your hand" as a card-style ghost following the cursor
- All other slots are repainted in a uniform neutral grey so category colors don't compete for attention; a pulsing amber outline (Pie mode) / pulsing border (List mode) advertises every valid drop target
- Hovering a valid drop slot fills it with bright orange and previews the swap in place — the source slot shows the target's content, the target slot shows the dragged item, mirroring what will happen on release
- Submenu expansion is suppressed during drag so users can drop on parent wedges without the children popping open
- Both wheel layouts are supported: pie wedges and list/radial-button mode share the same drop-slot affordances (empty source, grey background, pulsing outline, orange target)
- Persists by swapping the
LinkedToarrays ofWheelOutputMenuItem_Npins inside an undoable transaction - Click-to-edit drag in QuickMenuGraph asset preview — the live wheel preview inside the graph asset editor now lets users click + drag wedges directly to reorder, without first toggling Edit Mode. Each drop auto-exits the mode. Changes flow back to the
WheelOutputpins so the runtime wheel reflects the new order on the next open Wheel Edit Mode Activationsetting (Toggle / Hold) — choose whetherAlttoggles Edit Mode (default — press once to enter, again to exit) or activates it only while held. Exposed as a Toggle/Hold pair in the panel- Create Asset action node — new action that creates an asset in the focused Content Browser's current folder. The factory class is configurable via an inline picker on the node (search box + scrollable list filtered alphabetically by display name, showing the produced asset class), populated from every
UFactorythat satisfiesShouldShowInNewMenu()&&CanCreateNew()— i.e. the same set of asset types as the Content Browser "Add" menu. Factories that need extra input (BlueprintClass, structs, etc.) chain throughConfigureProperties()so the engine's parent-class / type pickers appear as expected. Names are auto-generated asNew<ClassName>and made unique within the target folder; the new asset is selected in the Content Browser on success. Toasts a clear message when no Content Browser is currently open - Submenu navigation by mouse wheel — when a submenu is open (pie or list/radial-buttons), scrolling the mouse wheel cycles its options instead of resizing the wheel. A 250 ms sticky window prevents cursor jitter from immediately overwriting the scroll-picked item, and the hover lock survives across
UpdateHoverrebuilds so parent-ring re-detection no longer pops/recreates the submenu underneath - Directional hover for list submenus — list-mode submenus now react to the cursor's direction the same way pie submenus do: pointing toward the list (even past it) selects items by Y projection, and going back toward the wheel center exits to the parent ring. The hit area is unbounded outward and lightly padded above/below the list extent
- Unified
Switchnode — single new flow node replaces the 5 specialized switch types. Each case is independent and can match any of the 5 predicates (Editor Context, Editor Mode, Blueprint Context, Selection Count, Actor Class) — the same Switch can mix heterogeneous cases (e.g. case 0 matches an Editor Context, case 1 matches a Selection Count, case 2 matches an Actor Class). Cases are configured via a single searchable combo that lists ALL options across all 5 categories at once (~60+ entries —Editor Context | Sequencer,Editor Mode | Landscape,Blueprint Context | Components,Selection Count...,Actor Class..., etc.); typing in the filter cross-cuts categories (e.g."blueprint"surfacesEditor Context | Blueprint,Editor Context | Anim Blueprint,Editor Context | Widget Blueprint, and allBlueprint Context | *entries).*::Customenum values expose a side text input for the Tab ID / Mode ID / Mode Name.Selection Countcases show an int spinner.Actor Classcases show the standard class picker. The combo button always shows the synthesized<Category> | <Value>label so the case is readable at a glance. Runtime resolves cases in order, first match wins, falls back toDefaultpin. The 5 legacy Switch classes still compile and work — they will be removed in a follow-up release once existing graphs have migrated Graph Opactions work in any graph editor —Auto-Layout Graph,Align Horizontal,Align Vertical,Auto Name & Color Comments(and the previously-fixedCreate Comment Around Selection) now operate on the focusedSGraphEditorregardless of editor type (Blueprint, Niagara, AnimBP, Material, …). Generic algorithms live in a newQMGraphOpUtilshelper invoked when the focused graph is not a Quick Menu graph. Selection capture before pie-menu open follows the focused editor — QM cached selection when the focused graph belongs to a QM asset, the editor's liveSGraphEditorselection otherwise.Auto Name & Color Commentsfalls back to color-only on non-QM graphs (noSubMenu/WheelOutputto derive comment names from)
Changed¶
- Quick Menu graph comments now use the engine-default comment widget — the custom
SQMGraphNode_Commentoverride that injected an inline "Group Color" label and color swatch button into the title bar has been removed from the visual node factory. Comments inside Quick Menu graph assets now instantiate the standardSGraphNodeCommentexactly like Blueprint, AnimBP, Niagara, Material, etc., so resize handles, contained-node move, title bar context menu, color picker and font size adjustment all behave identically to a Blueprint comment. Existing comments keep all of their data (NodeComment,CommentColor, dimensions) — only the rendering changes List Menu Distanceis now an absolute pixel offset — previously multiplied byWheelScale, so scrolling the wheel to resize secretly shifted list/radial-button menus toward the center, mimicking a middle-mouse list-distance drag. Now scrolling resizes the inner wheel (dead zone, ring, fonts) without disturbing the list distance the user explicitly configuredList Menu Distanceclamp widened to [-10000, +10000] — was hard-capped at [-100, +200] in three independent places (UPROPERTY meta, settings save, runtime widget constants). Wide bounds keep the slider feeling familiar (-200 to +500) but typed values, runtime middle-mouse drag, and mouse-wheel adjustments are no longer silently capped- Unified Quick Menu settings hierarchy — plugin settings are now organized under clearer grouped categories (
Primary Binding,Hotkeys,Interaction,Behavior,Appearance,Console) for a cleaner structure inProject Settings - Quick Menu Panel now mirrors Project Settings directly — the panel's settings tab now displays the same underlying
UQuickMenuSettingsobject instead of maintaining a separate handcrafted settings UI - Primary binding sync tightened — the main
OpenMenuKey/ActiveGraphpair is now kept in sync with the primaryHotkeyBindingsentry so legacy/editor-facing fields and gesture bindings stay aligned - Edit Wheel key exposed consistently — the shortcut used to jump from the wheel to its graph editor is now surfaced alongside the main wheel shortcut in the panel
- Show Flag data model upgraded —
Show Flagactions now store real Unreal show-flag names with backward-compatible fallback from the legacy enum, so existing graphs keep working while newly created nodes can target any engine show flag - Default Show Flag creation paths updated — generated/default
Show Flagnodes now populate the new show-flag-name field so labels, picker state, and runtime toggles stay aligned - List / radial-button mode mouse interactions inverted — previously: middle-mouse drag horizontally adjusted
List Menu Distance, mouse wheel resized the radial buttons. Now: middle-mouse drag scales the buttons (liveSCALE x.xxreadout in the wheel center), mouse wheel adjusts the distance to center. Both still persist immediately toEditorPerProjectUserSettings.ini. Pie-mode behavior is unchanged (middle-drag still controls Wedge Gap)
Fixed¶
- Main wheel shortcut rebinding — changing the primary wheel key now updates the actual editor command binding used by Quick Menu, so the new shortcut works immediately instead of only appearing updated in UI/config
- Active graph sync drift — all "set active graph" flows now go through the same settings path, preventing the panel, content-browser actions, and graph editor actions from drifting out of sync with the primary binding
- Fallback graph resolution — loading the active graph now correctly falls back to the primary hold binding when needed, which keeps runtime behavior consistent with the displayed primary configuration
- Show Flag runtime resolution — toggling now resolves flags by Unreal show-flag name at runtime instead of being restricted to the old hardcoded enum set
- Show Flag node graph UI — the new picker is now wired directly into the node body renderer as well as the inline property panel, so it is visible/editable where users expect it in the graph
- Scrollable icon dropdown crash —
SQMScrollableCombono longer risks a use-after-free crash when a selection callback rebuilds the graph during icon picking - SubMenu custom icon rendering —
SubMenuheaders now resolveQuickMenu.*brushes throughFQuickMenuStyle, so icons shown in the picker also render correctly on the node itself - Rotation in radial-button (list) layout —
GetRadialButtonCenterignored the ring's rotation offset, so radial buttons stayed at fixed cardinal angles even with a non-zero rotation. Now respectsRing.ArcStartDeg. Same fix applied to the side-attached child list anchored off a hovered radial button RotationSpinBox losing focus mid-drag — the inline rotation field onWheelOutputcalledNotifyGraphChanged()per drag tick, which forced theSGraphNodeto rebuild and destroyed the SpinBox mid-interaction. Drag is now wrapped in a single transaction viaOnBeginSliderMovement/OnEndSliderMovementwith no mid-drag graph rebuild; typed-value commits keep their own scoped transaction- Radial-button hit detection ignored rotation — the angular fallback used when the cursor is between buttons used a hardcoded
0..360range instead ofRing.ArcStartDeg..ArcEndDeg, so any non-zero rotation produced a constant hover offset between visible buttons and the wedge actually selected. Fallback now honors the ring's real arc range Open Assetfroze the editor when picking a heavy asset — the picker calledAssetData.GetAsset()to store the selection, which forces a full synchronous load of the asset (catastrophic for large levels). The node now stores the path string only (AssetData.GetSoftObjectPath()) and resolves / loads the object lazily insideResolve(). The compact button label shows the asset's short name; the asset registry provides the picker's initial selection without touching diskOpen Assetcrash / long freeze on Levels (UWorld) —Item.Action.Execute()ran synchronously, triggeringFEditorFileUtils::LoadMapwhile the wheel was still on screen with active timers and outstanding delegates. The action body is now deferred one frame viaFTSTickerso the wheel dismisses cleanly first, andLoadMapis called withbShowProgress=falseto stop stacking a modal dialog over the (still-closing) wheelGraph Op > Create Comment Around Selectiontargeted the wrong graph — the action only knew how to find aFQuickMenuGraphAssetEditor, so triggering it from a Blueprint / Niagara / AnimBP graph silently created the comment inside the last-focused QM graph instead. A new generic helper walks the focused widget tree to capture anySGraphEditor(matched by type name containingGraphEditor), and a genericCreateGenericCommentAroundNodesbuilds aUEdGraphNode_Commentdirectly in anyUEdGraphwith widget-measured bounds, an undoable transaction, and aNotifyGraphChanged. Pure QM operations (AddWheelOutput,CollapseToSubMenu,PreviewWheel,SetAsActive, …) keep their existing QM-only pathBP Add Nodespawned at the upper-left of the view — Blueprint nodes added via the wheel snapped toViewLocation + (160, 160)regardless of where the cursor was when the wheel opened. The action now captures the cursor's graph-space position from the focused Blueprint editor atResolvetime (before the wheel takes focus) viaPanel->PanelCoordToGraphCoord, and uses it as the spawn location. The original behavior is kept as a fallback when the cursor wasn't over the BP graph at the moment of opening- Comment shortcuts firing on the wrong Quick Menu editor —
OnCreateGroupCommentandOnNameAndColorCommentwere each bound on every open editor'sGraphEditorCommands, so when several QM graph asset editors were alive Slate could route the keypress to a stale binding from a previously focused editor and the comment landed in the wrong graph. Both handlers now consultFindEditorFromUserFocus()and forward the call to whichever QM editor is actually under user focus Graph Op > Create Comment Around Selectionselection captured from the wrong editor — selection was collected from the QM cached selection first, then fell back to the focused genericSGraphEditor. With a QM editor lingering in memory while the user worked in a Blueprint, the QM cached set was non-empty and got used to compute comment bounds, so the comment was created in the BP graph but sized around invisible QM nodes (or skipped when the QM nodes were stale). Selection capture is now routed by which graph is actually focused: QM cached when the focused graph belongs to a QM asset, the genericSGraphEditor's live selection otherwise
[1.0.3] - 2026-04-17¶
Added¶
- BP Add Node action — new action node that spawns an arbitrary Blueprint node via a searchable picker (replaces the need for per-node Blueprint nodes)
- Open Asset action — new action node that opens any referenced asset in its editor
- Inline property panel on graph nodes — action node properties (color, name, type-specific options, asset picker, BP action picker) are now edited directly on the node in the graph instead of in the Details panel
- Gesture-based hotkey system — same key can bind multiple gestures (
Tap,Hold,Drag) to different graphs, with configurableTapThresholdMsandDragPixelThreshold - Wheel usable during Play In Editor — new
Allow Wheel During Play In Editorsetting; hotkeys pass through to the game when disabled
Changed¶
- Default for
Force Neutral Gray Wedgesflipped totrue - Legacy
OpenMenuKey+ActiveGraphare auto-migrated intoHotkeyBindingson first launch (marked as Legacy in Project Settings)
Fixed¶
- Play In Viewport / Play In New Viewport routing —
Play Opactions now start the PIE session in the correct viewport based on the active editor context (Blueprint editor, asset editor, or Level Editor). Previously every variant defaulted to the Level Editor viewport regardless of which editor triggered the action - Set View Mode targeting wrong viewport —
Set View Mode(Lit, Unlit, Wireframe, Detail Lighting, …) now acts on the currently focused viewport (Blueprint internal viewport when that editor is focused, Level Editor viewport otherwise). Previously the toggle always applied to the Level Editor - Subgraph exec connections lost during compat graph packaging —
ImportNodesFromTextresolvedLinkedTopins in text order; Subgraph ExecIn pins created later viaPostPasteNodewere silently dropped. AddedRepairSubgraphExecLinksto re-parse the snapshot text and manually reconnect lost links - Fake enum variants in right-click node search —
TFieldIterator<FEnumProperty>was surfacing inheritedUEdGraphNodeenums (EnabledState,AdvancedPinDisplay) as fake action variants (Enabled/Disabled/Development Only/Hidden/No Pins/Shown). Now filtered to only action-specific enums
[1.0.2] - 2026-04-10¶
Added¶
- Wedge gap control — adjustable pixel gap between wedges (0–20px) in Settings, also adjustable live via middle-mouse drag on the wheel (shows "GAP X.X" in center)
- Neutral gray wedge mode — "Force Neutral Gray Wedges" setting overrides all category colors with a uniform editor-style gray, adds dark separator lines between wedges with adjustable darkness
- Interactive live wheel preview in Quick Menu panel — real-time preview of the active wheel with read-only interaction, updates as settings change
- Level Editor docked panel — Quick Menu panel now registers as a Level Editor tab and auto-docks on first launch (persisted via layout, no longer a floating nomad tab)
- Appearance settings persistence — Wedge Gap, Force Neutral Gray, Gray Separator Darkness are saved/loaded independently from Project Settings and persist across sessions
Fixed¶
- "Select All Lights" selecting nothing — replaced deprecated
ALight::StaticClass()with component-based detection (ULightComponentBase), now correctly selects all actors with light components - Graph operations targeting wrong editor — new
FindEditorFromUserFocus()resolves the correct QuickMenu graph editor based on keyboard focus or mouse position, fixing Align, Collapse, Remove Unused Pins, etc. when multiple graph assets are open - Hover color too washed out — changed hover color from
(55, 120, 190)to a flat(0, 88, 204)for clearer visual feedback
Changed¶
- Quick Menu panel uses Level Editor tab manager instead of global nomad tab spawner
- Appearance settings (wheel size, wedge gap, gray mode) are applied live from the panel preview and saved to a separate config section
[1.0.1] - 2026-03-31¶
Reported¶
- Submenu indicator line not following zoom in preview wheel
- Copy-paste between graphs losing exec pin connections
- "Remove Unused Pins" not working on switch nodes
- "Remove Unused Pins" targeting wrong graph with multiple assets open
- Switch nodes allowing duplicate Default cases / 0 selection count
- Graph operations losing focus when multiple QuickMenu graphs are open
Added¶
- Resizable pie menu — mouse wheel scales the wheel while open (0.5x–2.0x)
- "Wheel Size" multiplier in Quick Menu panel settings
- Node search by action/operation name with tree-view hierarchy in right-click menu
- "Can't find your action? Request it!" Discord link in node spawner
- Quick Menu panel auto-docks on first plugin activation
- Graph watermark showing "ROOT" or subgraph name (like Blueprint editor)
Fixed¶
- Submenu indicator white line now follows zoom correctly
- Copy-paste preserves all exec pin connections between nodes
- "Remove Unused Pins" works on all switch node types
- Actions now target the correct graph editor when multiple assets are open
- Switch nodes no longer allow duplicate Default/Defaults cases
- Selection Count switch: removed 0 from cases, Default pin shows "(0 selection)"
- Duplicate case warning now shows which specific cases are duplicated
Changed¶
- "Back to Root" navigation now focuses on the subgraph node in the parent graph
- Toolbar button shows "QuickMenu" text with LogoGray2 icon
- Mouse wheel cycling on all switch node dropdown menus
Docs¶
- Updated llms-full.txt
[1.0.0] - 2026-03-26¶
Added¶
- Radial pie menu with V-key activation across all editor contexts
- 44+ built-in editor actions (spawn, viewport, transform, actor, editor, blueprint, specialized, utility)
- Visual graph editor for building custom wheel layouts
- Context-aware wheel system (49+ editor contexts auto-detected)
- Sub-menu support with unlimited nesting
- Keyboard shortcut customization
- Python scripting API for custom actions
- C++ extensibility for advanced integrations
- Multi-version support (UE 5.0 - 5.7)
- Quick Menu Panel for browsing and managing wheels
- Content Browser integration
- Project Settings page for global configuration