All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[!info] Changelog entries are fully maintained starting with version 2.0.0. Earlier releases are included on a best-effort basis and may be incomplete.
Version support policy: The plugin is maintained in two tracks:
- 1.4.x (LTS) supports Godot 4.2+ and receives bug fixes only.
- 2.x.x supports Godot 4.5+ and receives new features and improvements.
- After invoking the Create Path3D From Cursors action, the title of the node selector dialog would not reset back to the default "Select a Node" on other actions.
- Semantic coloring for ID labels of 3D Cursor instances.
- Default color for inactive cursors is yellow.
- Default color for the active cursor is orange.
- Default color for selected cursors (including the active one) is light blue.
- Colors can be adjusted via the settings dock under General Settings (not session persistent).
- Auto Recover Cursor option added to the settings dock (equivalent to
Shift + Alt + Right Click).- When placing a 3D Cursor with
Shift + Right Clickwhile no active cursor is selected:- Enabled: The most recently created cursor in the current scene is recovered as the active cursor and moved to the target location. If no cursor exists, a new one is created at the target location.
- Disabled: A new 3D Cursor is created and placed at the target location.
- When placing a 3D Cursor with
- After reloading a project containing one or more 3D Cursor instances in the active scene, creating a new cursor could cause the plugin to not recognize existing cursors.
- Set Gizmo extents of 3D Cursors to
0.
- Running the game with at least one 3D cursor in the scene will throw an
Invalid call-error (Issue #8).
- The coordinate preview is not displayed correctly while dragging a valid node onto the Move Active 3D Cursor to ... button.
-
Compatibility with
Path3D- When a
Path3Dnode is selected in the scene tree, adding a new point to its curve will place the point at the position of the active 3D Cursor. This requires exactly one selected node and an active 3D Cursor. - When a single
Path3Dnode is selected, additional points can be added directly to its curve by placing extra cursors usingShift + Ctrl + Right Click. New points are always appended to the end of the curve.
- When a
-
Create Path3D From Cursors
- Added a Create Path3D From Cursors button to the settings dock.
- Added a Create Path3D From Cursors action to the command palette.
- Clicking the button opens a node selector to choose a parent node.
- A new
Path3Dnode is created as a child of the selected node. Its curve is built from all 3D Cursor positions in the active scene, ordered alphabetically.
- Nil object access when toggling checkboxes in the settings dock without an active cursor.
- Improved the plugin info dialog (accessible through the settings dock)
- Added contribution link for the Godot Engine
- Extract displayed plugin version from the
plugin.cfg
- All previously existing settings for 3D Cursors (
Cursor3D). - New Show Number Label checkbox to toggle the numeric label on 3D Cursor instances.
- Settings persist and are restored when a 3D Cursor is selected as active.
- Raycast Mode dropdown:
- Allows selecting how the 3D Cursor determines its position.
- Physicsless (introduced in 1.4.0) for Godot 4.5+. Fully compatible with
Terrain3Dby TokisanGames. - Physics for Godot 4.2+ (legacy; maintenance and fixes only).
- Active Cursor field:
- Displays the name of the active 3D Cursor in the current scene.
- No active cursor selected:
Left Clickopens a node selector (restricted toCursor3Dnodes).- Drag-and-drop 3D Cursor (
Cursor3D) instances to assign them as active.
- Active cursor selected:
Left Clickselects the active 3D Cursor in the node tree and editor.Double Left Clickselects the cursor and focuses the editor camera on it.Ctrl + Left Clickselects the cursor, focuses the camera, and zooms to a fixed distance.Alt + Left Clickopens the node selector again.
- Deselect button:
- Deselects the active cursor in both the node tree and editor.
- Clear button:
- Clears the Active Cursor field.
- Unsets the active 3D Cursor internally.
- Disables the Pie Menu.
- Allows reassignment of a 3D Cursor (
Cursor3D).
- Use Terrain3D checkbox:
- Toggles visibility of
Terrain3D-specific group controls.
- Toggles visibility of
- Add “Terrain3D” Group to Instances button:
- Adds the required group to all
Terrain3Dinstances in the active scene (required for Physicsless raycast mode).
- Adds the required group to all
- Remove “Terrain3D” Group from Instances button:
- Removes the group from all
Terrain3Dinstances in the active scene.
- Removes the group from all
- All previously available 3D Cursor actions as buttons.
- Remove All 3D Cursors From Scene button.
- Move Active 3D Cursor To button:
- Clicking opens a node selector; selecting a node moves the active cursor to its position.
- Supports drag-and-drop of nodes inheriting from
Node3D(excluding the active cursor). - Supports drag-and-drop of inspector properties with the following types:
PackedVector2Array,PackedVector3Array,PackedVector4Array- Only the first element is used.
- Default mapping:
x -> x,y -> y,0 -> z - Hold
Shiftto use:x -> x,0 -> y,y -> z
Transform2D,Transform3DVector2,Vector2i- Default mapping:
x -> x,y -> y,0 -> z - Hold
Shiftto use:x -> x,0 -> y,y -> z
- Default mapping:
Vector3,Vector3i- Mapping:
x -> x,y -> y,z -> z
- Mapping:
Vector4,Vector4i- Mapping:
x -> x,y -> y,z -> z(wis discarded)
- Mapping:
- Specially structured
Dictionary:- Must contain keys
x,y, andz(case-insensitive), each mapping to either afloator anint.
- Must contain keys
- Support for multiple 3D Cursors per scene, with active cursor selection via the new Settings Dock.
- 3D Cursor instances now display an additional numeric ID label above the existing label.
- IDs are assigned sequentially per scene and reset when all cursors are removed.
- When multiple cursors exist, their ID is appended to the node name, respecting the
editor/naming/node_name_num_separatorproject setting. - Additional key combinations:
Shift + Ctrl + Left Clickon a collider or mesh places a new cursor and sets it as active.Shift + Alt + Left Clickmoves the most recently created cursor to the target location and sets it as active.
Cursor3Dinstances now automatically remove themselves when the plugin is disabled and a scene containing them is opened.
- 1.5.x: Raised the minimum supported Godot version to 4.5+ (Godot 4.2.x, 4.3.x, 4.4.x is no longer supported on this track)
- Major refactor of the whole plugin.
- Reorganized scripts, assets, and scenes for improved maintainability.
- Replaced scene file paths with UIDs.
- Reworked the Godot version compatibility check.
- Moved settings previously stored on
Cursor3Dinstances into the settings dock. - Split the Remove 3D Cursor from Scene action into:
- Remove Active 3D Cursor from Scene
- Remove All 3D Cursors From Scene
- Fixed 3D Cursor not functioning until switching editor tabs after startup or plugin activation.
- Introduced physics-independent, mesh-based raycasting, fixing #3
- Full compatibility with Terrain3D by TokisanGames, fixing #6
- License shift from MIT to ISC (equivalent to MIT).
- 3D Cursor placement not working in orthogonal view; fixed #7
- Warning if the 'Run on Separate Thread' project setting is activated. (#3)
- The plugin does not work in scenes where the root is not a
Node3Dor inherits from it. Fixing #4
- Pie Menu opening with no 3D Cursor in the scene.
- Disable / Enable command
- Background for Pie Menu
- Selection indicator for Pie Menu
- Pie Menu for quick access to 3D Cursor actions, similar to Blender
Shift + S - Undo / Redo functionality for most 3D Cursor actions.
- Cursor recovery when visiting another scene containing a 3D Cursor.
- Cursor remove command.
- Wrong location of cursor texture.