Godot 3D Cursor's icon

Godot 3D Cursor 1.4.1 3D Tools 4.2 Community

Submitted by user Marco-; ISC; 2025-12-17

The 3D Cursor Plugin introduces a versatile cursor, inspired by Blender, that allows for precise placement and enhanced interaction within Godot’s 3D scenes.

Activating the Plugin:
Please note that due to certain limitations of the Godot Editor, you must switch to a tab other than the 3D view (e.g., 2D, Script, or AssetLib) and back to the 3D tab once after enabling the plugin or upon engine startup to ensure the cursor placement functions correctly.

Using the 3D Cursor:
Position the cursor by holding Shift + Right Click on any surface with a collider. When visible, the 3D cursor sets the position for newly added Node3D nodes. If the cursor has been deleted, it can be restored using the same shortcut, and remains fully adjustable with Godot’s standard gizmos.

Enhanced Commands:
Additional commands in the Command Palette (accessed via Ctrl + Shift + P) allow you to reset the cursor to the scene’s origin or align it with selected objects. When multiple objects are selected, the cursor aligns to their average position.

Customization Options:
The cursor’s appearance can be customized with adjustable size, an optional label, and a setting to control whether the label scales with the cursor or remains fixed.

Changelog:
Version 1.4.1: Fallback to Legacy raycasing mode for Godot versions below 4.5.

Version 1.4.0: Physics-independent mesh-based raycasting, Terrain3D support, and license change from MIT to ISC (see below)

The big news first: the license has been changed from MIT to ISC.
What does that mean in practice? Essentially nothing. The permissive nature of the license remains unchanged; the ISC license simply uses clearer and more concise language. That’s all there is to it.

Now to the update itself. One important limitation to be aware of is that the new raycasting system requires at least Godot version 4.5. For projects using earlier versions of Godot, the plugin will automatically fall back to the legacy physics-based raycasting method to ensure continued functionality.
Please note, however, that functional updates for Godot versions below 4.5 will likely be limited going forward, with the exception of critical bug fixes. If possible and safe for your project, upgrading to a newer version of Godot is therefore recommended. As always, the integrity and stability of your project should take top priority.

It has been quite some time since the last major feature release. After receiving several issues via GitHub, I started working on a more robust system for determining the placement position of the 3D Cursor.

The first issue was that the plugin did not work correctly when the setting
physics/3d/run_on_separate_thread was enabled. When physics run on a separate thread, access to certain methods becomes restricted. As of version 1.4.0, the plugin now uses physics-independent, mesh-based raycasting, allowing the 3D Cursor to function correctly regardless of this setting.

The second issue addressed in this release is improved support for the popular Terrain3D plugin by TokisanGames. Compatibility is now straightforward: simply assign your Terrain3D instance to the "Terrain3D" group, and it will work seamlessly with the 3D Cursor.

As with previous releases, the code is fully documented. This update also lays the groundwork for an upcoming release that will introduce a dedicated settings dock, expanding how users can configure the 3D Cursor.

Stay tuned, and thank you for using the plugin!

------------------------------------------

Version 1.3.5: Fixed a bug that prevented the correct placement of the 3D Cursor within the orthographic view. Thanks to Github-User Coadon to point out this bug

Version 1.3.4: Fixed a bug that allowed the user to set the 3D Cursor's position while it was hidden; a warning was added that informs the user about an incompatible project setting: Run on Separate Thread. With this project setting activated, the plugin does not work at this point. Thanks to Github-User dexmoh to point out this bug. A solution will be implemented as soon as I find one.

Version 1.3.3: Fixed a bug that would stop the plugin from working in scenes where the scene root was something else than a Node3D or some derivative of it. The plugin now searches through the tree to find the closest Node3D. Thanks to Github-User genacvid to point out this bug.

Version 1.3.2: Merged a pull request by the Github-User Levrault to fix a bug that prevented placing the cursor.

Version 1.3.1: Fixed a bug to prevent the pie menu from opening when there is no 3D-Cursor present in the scene. Fixed a bug where the toggle 3D-Cursor button in the pie menu would not display the correct label if the user hid the cursor manually.

Version 1.3.0: Pie Menu Improvements
- Added a simple background for the Pie Menu to make it more visible in bright scenes.
- Added another command to the Pie Menu as well as the comman d palette. The "Disable/Enable 3D Cursor" command. This command hides and shows the 3D Cursor within your scene and therefor enables/disables its functionality.
- Added a selection indicator for the Pie Menu similar to Blender. If you hover your mouse on a button it will brighten up.
- If you hold down Shift + S when opening the menu you can hover over a button and by releasing the keys you will automatically invoke the hovered button (similar to Blender).
- Added Undo/Redo to the cursor placement.

The plugin is now tested and working in Godot 4.2 and above. Please feel free to ask for additional features by opening an issue on the github repository.

------------------------------------------

New in Version 1.2: Pie Menu and Undo-Redo Functionality
In this update, a Pie Menu (similar to Blender’s) has been added, accessible via Shift + S. This menu offers faster access to commands found in the Command Palette, streamlining workflows. Additionally, undo and redo support has been implemented, allowing most cursor actions to be reversed with Undo/Redo commands. Note that the Remove 3D Cursor from Scene command is not undoable, as it frees the cursor object itself.


View files Download Submit an issue Recent Edits