Cleanups.

This commit is contained in:
Relintai 2024-05-03 11:51:58 +02:00
parent a29c7f8dd0
commit 4e41d95bf6
13 changed files with 403 additions and 774 deletions

View File

@ -1,7 +1,5 @@
Command line tutorial
=====================
# Command line tutorial
Some developers like using the command line extensively. Pandemonium is
@ -12,7 +10,6 @@ suitable for this workflow.
Note:
On Windows and Linux, you can run a Pandemonium binary in a terminal by specifying
its relative or absolute path.
@ -24,147 +21,105 @@ Note:
bundle from `Pandemonium` to another name, make sure to edit this command line
accordingly.
Command line reference
----------------------
## Command line reference
**General options**
+----------------------------+----------------------------------------------------------------------+
| Command | Description |
+----------------------------+----------------------------------------------------------------------+
| `-h`, `--help`, `/?` | Display the list of command line options. |
+----------------------------+----------------------------------------------------------------------+
| `--version` | Display the version string. |
+----------------------------+----------------------------------------------------------------------+
| `-v`, `--verbose` | Use verbose stdout mode. |
+----------------------------+----------------------------------------------------------------------+
| `--quiet` | Quiet mode, silences stdout messages. Errors are still displayed. |
+----------------------------+----------------------------------------------------------------------+
|----------------------------|----------------------------------------------------------------------|
| `-h`, `--help`, `/?` | Display the list of command line options. |
| `--version` | Display the version string. |
| `-v`, `--verbose` | Use verbose stdout mode. |
| `--quiet` | Quiet mode, silences stdout messages. Errors are still displayed. |
**Run options**
+------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Command | Description |
+------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
| `-e`, `--editor` | Start the editor instead of running the scene (`tools ( doc_introduction_to_the_buildsystem_tools )` must be enabled). |
+------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
| `-p`, `--project-manager` | Start the project manager, even if a project is auto-detected (`tools ( doc_introduction_to_the_buildsystem_tools )` must be enabled). |
+------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
| `-q`, `--quit` | Quit after the first iteration. |
+------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
| `-l <locale )`, `--language <locale )` | Use a specific locale (<locale> being a two-letter code). See `doc_locales` for more details. |
+------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
| `--path <directory )` | Path to a project (<directory> must contain a 'project.pandemonium' file). |
+------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
| `-u`, `--upwards` | Scan folders upwards for 'project.pandemonium' file. |
+------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
| `--main-pack <file )` | Path to a pack (.pck) file to load. |
+------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
| `--render-thread <mode )` | Render thread mode ('unsafe', 'safe', 'separate'). See `Thread Model` for more details. |
+------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
| `--remote-fs <address )` | Remote filesystem (`<host/IP>[:<port>]` address). |
+------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
| `--audio-driver <driver )` | Audio driver. Use `--help` first to display the list of available drivers. |
+------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
| `--video-driver <driver )` | Video driver. Use `--help` first to display the list of available drivers. |
+------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Command | Description |
|--------------------------------------------------|-----------------------------------------------------------------------------------------------------|
| `-e`, `--editor` | Start the editor instead of running the scene |
| | (`tools ( doc_introduction_to_the_buildsystem_tools )` must be enabled). |
| `-p`, `--project-manager` | Start the project manager, even if a project is auto-detected |
| | (`tools ( doc_introduction_to_the_buildsystem_tools )` must be enabled). |
| `-q`, `--quit` | Quit after the first teration. |
| `-l &lt;locale&gt;`, `--language &lt;locale&gt;` | Use a specific locale (&lt;locale&gt; being a two-letter code). See `doc_locales` for more details. |
| `--path &lt;directory&gt;` | Path to a project (&lt;directory&gt; must contain a 'project.pandemonium' file). |
| `-u`, `--upwards` | Scan folders upwards for 'project.pandemonium' file. |
| `--main-pack &lt;file&gt;` | Path to a pack (.pck) file to load. |
| `--render-thread &lt;mode&gt;` | Render thread mode ('unsafe', 'safe', 'separate'). See `Thread Model` for more details. |
| `--remote-fs &lt;address&gt;` | Remote filesystem (`&lt;host/IP&gt;[:&lt;port&gt;]` address). |
| `--audio-driver &lt;driver&gt;` | Audio driver. Use `--help` first to display the list of available drivers. |
| `--video-driver &lt;driver&gt;` | Video driver. Use `--help` first to display the list of available drivers. |
**Display options**
+-----------------------------+----------------------------------------------------------------------------+
| Command | Description |
+-----------------------------+----------------------------------------------------------------------------+
| `-f`, `--fullscreen` | Request fullscreen mode. |
+-----------------------------+----------------------------------------------------------------------------+
| `-m`, `--maximized` | Request a maximized window. |
+-----------------------------+----------------------------------------------------------------------------+
| `-w`, `--windowed` | Request windowed mode. |
+-----------------------------+----------------------------------------------------------------------------+
| `-t`, `--always-on-top` | Request an always-on-top window. |
+-----------------------------+----------------------------------------------------------------------------+
| `--resolution <W>x<H )` | Request window resolution. |
+-----------------------------+----------------------------------------------------------------------------+
| `--position <X>,<Y )` | Request window position. |
+-----------------------------+----------------------------------------------------------------------------+
| `--low-dpi` | Force low-DPI mode (macOS and Windows only). |
+-----------------------------+----------------------------------------------------------------------------+
| `--no-window` | Run with invisible window. Useful together with `--script`. |
+-----------------------------+----------------------------------------------------------------------------+
| Command | Description |
|---------------------------------|----------------------------------------------------------------------------|
| `-f`, `--fullscreen` | Request fullscreen mode. |
| `-m`, `--maximized` | Request a maximized window. |
| `-w`, `--windowed` | Request windowed mode. |
| `-t`, `--always-on-top` | Request an always-on-top window. |
| `--resolution &lt;W>x&lt;H&gt;` | Request window resolution. |
| `--position &lt;X>,&lt;Y&gt;` | Request window position. |
| `--low-dpi` | Force low-DPI mode (macOS and Windows only). |
| `--no-window` | Run with invisible window. Useful together with `--script`. |
**Debug options**
Note:
Debug options are only available in the editor and debug export templates
(they require `debug` or `release_debug` build targets, see
`doc_introduction_to_the_buildsystem_target` for more details).
+------------------------------+---------------------------------------------------------------------------------------------+
| Command | Description |
+------------------------------+---------------------------------------------------------------------------------------------+
| `-d`, `--debug` | Debug (local stdout debugger). |
+------------------------------+---------------------------------------------------------------------------------------------+
| `-b`, `--breakpoints` | Breakpoint list as source::line comma-separated pairs, no spaces (use %%20 instead). |
+------------------------------+---------------------------------------------------------------------------------------------+
| `--profiling` | Enable profiling in the script debugger. |
+------------------------------+---------------------------------------------------------------------------------------------+
| `--remote-debug <address )` | Remote debug (`<host/IP>:<port )` address). |
+------------------------------+---------------------------------------------------------------------------------------------+
| `--debug-collisions` | Show collision shapes when running the scene. |
+------------------------------+---------------------------------------------------------------------------------------------+
| `--debug-navigation` | Show navigation polygons when running the scene. |
+------------------------------+---------------------------------------------------------------------------------------------+
| `--frame-delay <ms )` | Simulate high CPU load (delay each frame by <ms> milliseconds). |
+------------------------------+---------------------------------------------------------------------------------------------+
| `--time-scale <scale )` | Force time scale (higher values are faster, 1.0 is normal speed). |
+------------------------------+---------------------------------------------------------------------------------------------+
| `--disable-render-loop` | Disable render loop so rendering only occurs when called explicitly from script. |
+------------------------------+---------------------------------------------------------------------------------------------+
| `--disable-crash-handler` | Disable crash handler when supported by the platform code. |
+------------------------------+---------------------------------------------------------------------------------------------+
| `--fixed-fps <fps )` | Force a fixed number of frames per second. This setting disables real-time synchronization. |
+------------------------------+---------------------------------------------------------------------------------------------+
| `--print-fps` | Print the frames per second to the stdout. |
+------------------------------+---------------------------------------------------------------------------------------------+
| Command | Description |
|----------------------------------|---------------------------------------------------------------------------------------------|
| `-d`, `--debug` | Debug (local stdout debugger). |
| `-b`, `--breakpoints` | Breakpoint list as source::line comma-separated pairs, no spaces (use %%20 instead). |
| `--profiling` | Enable profiling in the script debugger. |
| `--remote-debug &lt;address&gt;` | Remote debug (`&lt;host/IP>:&lt;port&gt;` address). |
| `--debug-collisions` | Show collision shapes when running the scene. |
| `--debug-navigation` | Show navigation polygons when running the scene. |
| `--frame-delay &lt;ms&gt;` | Simulate high CPU load (delay each frame by &lt;ms> milliseconds). |
| `--time-scale &lt;scale&gt;` | Force time scale (higher values are faster, 1.0 is normal speed). |
| `--disable-render-loop` | Disable render loop so rendering only occurs when called explicitly from script. |
| `--disable-crash-handler` | Disable crash handler when supported by the platform code. |
| `--fixed-fps &lt;fps&gt;` | Force a fixed number of frames per second. This setting disables real-time synchronization. |
| `--print-fps` | Print the frames per second to the stdout. |
**Standalone tools**
+----------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Command | Description |
+----------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| `-s <script )`, `--script <script )` | Run a script. |
+----------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| `--check-only` | Only parse for errors and quit (use with `--script`). |
+----------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| `--export <target )` | Export the project using the given export target. Export only main pack if path ends with .pck or .zip (`tools ( doc_introduction_to_the_buildsystem_tools )` must be enabled). |
+----------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| `--export-debug <target )` | Like `--export`, but use debug template (`tools ( doc_introduction_to_the_buildsystem_tools )` must be enabled). |
+----------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| `--doctool <path )` | Dump the engine API reference to the given <path> in XML format, merging if existing files are found (`tools ( doc_introduction_to_the_buildsystem_tools )` must be enabled). |
+----------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| `--no-docbase` | Disallow dumping the base types (used with `--doctool`, `tools ( doc_introduction_to_the_buildsystem_tools )` must be enabled). |
+----------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| `--build-solutions` | Build the scripting solutions (e.g. for C# projects, `tools ( doc_introduction_to_the_buildsystem_tools )` must be enabled). |
+----------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| `--gdnative-generate-json-api` | Generate JSON dump of the Pandemonium API for GDNative bindings (`tools ( doc_introduction_to_the_buildsystem_tools )` must be enabled). |
+----------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| `--test <test )` | Run a unit test. Use `--help` first to display the list of tests. (`tools ( doc_introduction_to_the_buildsystem_tools )` must be enabled). |
+----------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| `--export-pack <preset> <path )` | Like `--export`, but only export the game pack for the given preset. The <path> extension determines whether it will be in PCK or ZIP format. |
| | (`tools ( doc_introduction_to_the_buildsystem_tools )` must be enabled). |
+----------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
Path
----
| Command | Description |
|------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------|
| `-s &lt;script&gt;`, `--script &lt;script&gt;` | Run a script. |
| `--check-only` | Only parse for errors and quit (use with `--script`). |
| `--export &lt;target&gt;` | Export the project using the given export target. Export only main pack if path |
| | ends with .pck or .zip (`tools ( doc_introduction_to_the_buildsystem_tools )` must be enabled). |
| `--export-debug &lt;target&gt;` | Like `--export`, but use debug template (`tools ( doc_introduction_to_the_buildsystem_tools )` must be enabled). |
| `--doctool &lt;path&gt;` | Dump the engine API reference to the given &lt;path> in XML format, merging if existing files are |
| | found (`tools ( doc_introduction_to_the_buildsystem_tools )` must be enabled). |
| `--no-docbase` | Disallow dumping the base types (used with `--doctool`, `tools ( doc_introduction_to_the_buildsystem_tools )` must be enabled). |
| `--build-solutions` | Build the scripting solutions (e.g. for C# projects, `tools ( doc_introduction_to_the_buildsystem_tools )` must be enabled). |
| `--gdnative-generate-json-api` | Generate JSON dump of the Pandemonium API for GDNative bindings (`tools ( doc_introduction_to_the_buildsystem_tools )` must be enabled). |
| `--test &lt;test&gt;` | Run a unit test. Use `--help` first to display the list of tests. (`tools ( doc_introduction_to_the_buildsystem_tools )` must be enabled). |
| `--export-pack &lt;preset> &lt;path&gt;` | Like `--export`, but only export the game pack for the given preset. The &lt;path> extension |
| | determines whether it will be in PCK or ZIP format. |
| | (`tools ( doc_introduction_to_the_buildsystem_tools )` must be enabled). |
## Path
It is recommended that your Pandemonium binary be in your PATH environment
variable, so it can be executed easily from any place by typing
`pandemonium`. You can do so on Linux by placing the Pandemonium binary in
`/usr/local/bin` and making sure it is called `pandemonium`.
Setting the project path
------------------------
## Setting the project path
Depending on where your Pandemonium binary is located and what your current
working directory is, you may need to set the path to your project
@ -189,9 +144,7 @@ For example, the full command for exporting your game (as explained below) might
pandemonium --path path_to_your_project --export my_export_preset_name game.exe
```
Creating a project
------------------
## Creating a project
Creating a project from the command line can be done by navigating the
shell to the desired place and making a project.pandemonium file.
@ -206,9 +159,7 @@ shell to the desired place and making a project.pandemonium file.
The project can now be opened with Pandemonium.
Running the editor
------------------
## Running the editor
Running the editor is done by executing Pandemonium with the `-e` flag. This
must be done from within the project directory or a subdirectory,
@ -225,8 +176,7 @@ the same code with that scene as argument.
pandemonium -e scene.tscn
```
Erasing a scene
---------------
## Erasing a scene
Pandemonium is friends with your filesystem and will not create extra
metadata files. Use `rm` to erase a scene file. Make sure nothing
@ -236,8 +186,7 @@ references that scene or else an error will be thrown upon opening.
rm scene.tscn
```
Running the game
----------------
## Running the game
To run the game, simply execute Pandemonium within the project directory or
subdirectory.
@ -253,8 +202,7 @@ line.
pandemonium scene.tscn
```
Debugging
---------
## Debugging
Catching errors in the command line can be a difficult task because they
just fly by. For this, a command line debugger is provided by adding
@ -269,8 +217,7 @@ just fly by. For this, a command line debugger is provided by adding
```
Exporting
---------
## Exporting
Exporting the project from the command line is also supported. This is
especially useful for continuous integration setups. The version of Pandemonium
@ -294,13 +241,11 @@ The output path extension determines the package's format, either PCK or ZIP.
Warning:
When specifying a relative path as the path for `--export`, `--export-debug`
or `--export-pack`, the path will be relative to the directory containing
the `project.pandemonium` file, **not** relative to the current working directory.
Running a script
----------------
## Running a script
It is possible to run a simple `.gd` script from the command line.
This feature is especially useful in large projects, e.g. for batch

View File

@ -1,7 +1,6 @@
Using an external text editor
==============================
# Using an external text editor
This page explains how to code using an external text editor.
@ -16,43 +15,30 @@ allow you to integrate the editor with Pandemonium, passing it the file path to
and other relevant arguments. Pandemonium will replace the following placeholders in
the flags string:
+---------------------+-----------------------------------------------------+
| Field in Exec Flags | Is replaced with |
+=====================+=====================================================+
| Field in Exec Flags | Is replaced with |
|---------------------|---------------------------------------------------|
| `{project}` | The absolute path to the project directory |
+---------------------+-----------------------------------------------------+
| `{file}` | The absolute path to the file |
+---------------------+-----------------------------------------------------+
| `{col}` | The column number of the error |
+---------------------+-----------------------------------------------------+
| `{line}` | The line number of the error |
+---------------------+-----------------------------------------------------+
Some example Exec Flags for various editors include:
+---------------------+-----------------------------------------------------+
| Editor | Exec Flags |
+=====================+=====================================================+
| Editor | Exec Flags |
|---------------------|---------------------------------------------------|
| Geany/Kate | `{file} --line {line} --column {col}` |
+---------------------+-----------------------------------------------------+
| Atom/Sublime Text | `{file}:{line}` |
+---------------------+-----------------------------------------------------+
| JetBrains Rider | `{project} --line {line} {file}` |
+---------------------+-----------------------------------------------------+
| Visual Studio Code | `{project} --goto {file}:{line}:{col}` |
+---------------------+-----------------------------------------------------+
| Vim (gVim) | `"+call cursor({line}, {col})" {file}` |
+---------------------+-----------------------------------------------------+
| Emacs | `emacs +{line}:{col} {file}` |
+---------------------+-----------------------------------------------------+
Note:
For Visual Studio Code, you will have to point to the `code.cmd`
file. For Emacs, you can call `emacsclient` instead of `emacs` if
you use the server mode.
Official editor plugins
-----------------------
## Official editor plugins
We have official plugins for the following code editors:

View File

@ -1,7 +1,7 @@
Default editor shortcuts
========================
# Default editor shortcuts
Many of Pandemonium Editor functions can be executed with keyboard shortcuts. This page
lists functions which have associated shortcuts by default, but many others are
available for customization in editor settings as well. To change keys associated
@ -18,518 +18,279 @@ Note:
of the editor into macOS ecosystem. Users fluent with standard shortcuts on that
OS should find Pandemonium Editor's default key mapping intuitive.
General Editor Actions
----------------------
## General Editor Actions
+-----------------------+-------------------------------+------------------------------+----------------------------------+
| Action name | Windows, Linux | macOS | Editor setting |
+=======================+===============================+==============================+==================================+
| Open 2D Editor | :kbd:`Ctrl + F1` | :kbd:`Alt + 1` | `editor/editor_2d` |
+-----------------------+-------------------------------+------------------------------+----------------------------------+
| Open 3D Editor | :kbd:`Ctrl + F2` | :kbd:`Alt + 2` | `editor/editor_3d` |
+-----------------------+-------------------------------+------------------------------+----------------------------------+
| Open Script Editor | :kbd:`Ctrl + F3` | :kbd:`Alt + 3` | `editor/editor_script` |
+-----------------------+-------------------------------+------------------------------+----------------------------------+
| Search Help | :kbd:`F1` | :kbd:`Alt + Space` | `editor/editor_help` |
+-----------------------+-------------------------------+------------------------------+----------------------------------+
| Distraction Free Mode | :kbd:`Ctrl + Shift + F11` | :kbd:`Cmd + Ctrl + D` | `editor/distraction_free_mode` |
+-----------------------+-------------------------------+------------------------------+----------------------------------+
| Next tab | :kbd:`Ctrl + Tab` | :kbd:`Cmd + Tab` | `editor/next_tab` |
+-----------------------+-------------------------------+------------------------------+----------------------------------+
| Previous tab | :kbd:`Ctrl + Shift + Tab` | :kbd:`Cmd + Shift + Tab` | `editor/prev_tab` |
+-----------------------+-------------------------------+------------------------------+----------------------------------+
| Filter Files | :kbd:`Ctrl + Alt + P` | :kbd:`Cmd + Alt + P` | `editor/filter_files` |
+-----------------------+-------------------------------+------------------------------+----------------------------------+
| Open Scene | :kbd:`Ctrl + O` | :kbd:`Cmd + O` | `editor/open_scene` |
+-----------------------+-------------------------------+------------------------------+----------------------------------+
| Close Scene | :kbd:`Ctrl + Shift + W` | :kbd:`Cmd + Shift + W` | `editor/close_scene` |
+-----------------------+-------------------------------+------------------------------+----------------------------------+
| Reopen Closed Scene | :kbd:`Ctrl + Shift + T` | :kbd:`Cmd + Shift + T` | `editor/reopen_closed_scene` |
+-----------------------+-------------------------------+------------------------------+----------------------------------+
| Save Scene | :kbd:`Ctrl + S` | :kbd:`Cmd + S` | `editor/save_scene` |
+-----------------------+-------------------------------+------------------------------+----------------------------------+
| Save Scene As | :kbd:`Ctrl + Shift + S` | :kbd:`Cmd + Shift + S` | `editor/save_scene_as` |
+-----------------------+-------------------------------+------------------------------+----------------------------------+
| Save All Scenes | :kbd:`Ctrl + Shift + Alt + S` | :kbd:`Cmd + Shift + Alt + S` | `editor/save_all_scenes` |
+-----------------------+-------------------------------+------------------------------+----------------------------------+
| Quick Open | :kbd:`Shift + Alt + O` | :kbd:`Shift + Alt + O` | `editor/quick_open` |
+-----------------------+-------------------------------+------------------------------+----------------------------------+
| Quick Open Scene | :kbd:`Ctrl + Shift + O` | :kbd:`Cmd + Shift + O` | `editor/quick_open_scene` |
+-----------------------+-------------------------------+------------------------------+----------------------------------+
| Quick Open Script | :kbd:`Ctrl + Alt + O` | :kbd:`Cmd + Alt + O` | `editor/quick_open_script` |
+-----------------------+-------------------------------+------------------------------+----------------------------------+
| Undo | :kbd:`Ctrl + Z` | :kbd:`Cmd + Z` | `editor/undo` |
+-----------------------+-------------------------------+------------------------------+----------------------------------+
| Redo | :kbd:`Ctrl + Shift + Z` | :kbd:`Cmd + Shift + Z` | `editor/redo` |
+-----------------------+-------------------------------+------------------------------+----------------------------------+
| Quit | :kbd:`Ctrl + Q` | :kbd:`Cmd + Q` | `editor/file_quit` |
+-----------------------+-------------------------------+------------------------------+----------------------------------+
| Quit to Project List | :kbd:`Ctrl + Shift + Q` | :kbd:`Shift + Alt + Q` | `editor/quit_to_project_list` |
+-----------------------+-------------------------------+------------------------------+----------------------------------+
| Take Screenshot | :kbd:`Ctrl + F12` | :kbd:`Cmd + F12` | `editor/take_screenshot` |
+-----------------------+-------------------------------+------------------------------+----------------------------------+
| Toggle Fullscreen | :kbd:`Shift + F11` | :kbd:`Cmd + Ctrl + F` | `editor/fullscreen_mode` |
+-----------------------+-------------------------------+------------------------------+----------------------------------+
| Play | :kbd:`F5` | :kbd:`Cmd + B` | `editor/play` |
+-----------------------+-------------------------------+------------------------------+----------------------------------+
| Pause Scene | :kbd:`F7` | :kbd:`Cmd + Ctrl + Y` | `editor/pause_scene` |
+-----------------------+-------------------------------+------------------------------+----------------------------------+
| Stop | :kbd:`F8` | :kbd:`Cmd + .` | `editor/stop` |
+-----------------------+-------------------------------+------------------------------+----------------------------------+
| Play Scene | :kbd:`F6` | :kbd:`Cmd + R` | `editor/play_scene` |
+-----------------------+-------------------------------+------------------------------+----------------------------------+
| Play Custom Scene | :kbd:`Ctrl + Shift + F5` | :kbd:`Cmd + Shift + R` | `editor/play_custom_scene` |
+-----------------------+-------------------------------+------------------------------+----------------------------------+
| Expand Bottom Panel | :kbd:`Shift + F12` | :kbd:`Shift + F12` | `editor/bottom_panel_expand` |
+-----------------------+-------------------------------+------------------------------+----------------------------------+
2D / Canvas Item Editor
-----------------------
| Action name | Windows, Linux | macOS | Editor setting |
|-----------------------|---------------------------|------------------------|--------------------------------|
| Open 2D Editor | `Ctrl + F1` | `Alt + 1` | `editor/editor_2d` |
| Open 3D Editor | `Ctrl + F2` | `Alt + 2` | `editor/editor_3d` |
| Open Script Editor | `Ctrl + F3` | `Alt + 3` | `editor/editor_script` |
| Search Help | `F1` | `Alt + Space` | `editor/editor_help` |
| Distraction Free Mode | `Ctrl + Shift + F11` | `Cmd + Ctrl + D` | `editor/distraction_free_mode` |
| Next tab | `Ctrl + Tab` | `Cmd + Tab` | `editor/next_tab` |
| Previous tab | `Ctrl + Shift + Tab` | `Cmd + Shift + Tab` | `editor/prev_tab` |
| Filter Files | `Ctrl + Alt + P` | `Cmd + Alt + P` | `editor/filter_files` |
| Open Scene | `Ctrl + O` | `Cmd + O` | `editor/open_scene` |
| Close Scene | `Ctrl + Shift + W` | `Cmd + Shift + W` | `editor/close_scene` |
| Reopen Closed Scene | `Ctrl + Shift + T` | `Cmd + Shift + T` | `editor/reopen_closed_scene` |
| Save Scene | `Ctrl + S` | `Cmd + S` | `editor/save_scene` |
| Save Scene As | `Ctrl + Shift + S` | `Cmd + Shift + S` | `editor/save_scene_as` |
| Save All Scenes | `Ctrl + Shift + Alt + S` | `Cmd + Shift + Alt + S` | `editor/save_all_scenes` |
| Quick Open | `Shift + Alt + O` | `Shift + Alt + O` | `editor/quick_open` |
| Quick Open Scene | `Ctrl + Shift + O` | `Cmd + Shift + O` | `editor/quick_open_scene` |
| Quick Open Script | `Ctrl + Alt + O` | `Cmd + Alt + O` | `editor/quick_open_script` |
| Undo | `Ctrl + Z` | `Cmd + Z` | `editor/undo` |
| Redo | `Ctrl + Shift + Z` | `Cmd + Shift + Z` | `editor/redo` |
| Quit | `Ctrl + Q` | `Cmd + Q` | `editor/file_quit` |
| Quit to Project List | `Ctrl + Shift + Q` | `Shift + Alt + Q` | `editor/quit_to_project_list` |
| Take Screenshot | `Ctrl + F12` | `Cmd + F12` | `editor/take_screenshot` |
| Toggle Fullscreen | `Shift + F11` | `Cmd + Ctrl + F` | `editor/fullscreen_mode` |
| Play | `F5` | `Cmd + B` | `editor/play` |
| Pause Scene | `F7` | `Cmd + Ctrl + Y` | `editor/pause_scene` |
| Stop | `F8` | `Cmd + .` | `editor/stop` |
| Play Scene | `F6` | `Cmd + R` | `editor/play_scene` |
| Play Custom Scene | `Ctrl + Shift + F5` | `Cmd + Shift + R` | `editor/play_custom_scene` |
| Expand Bottom Panel | `Shift + F12` | `Shift + F12` | `editor/bottom_panel_expand` |
+------------------------------+-------------------------+------------------------+--------------------------------------------------------+
| Action name | Windows, Linux | macOS | Editor setting |
+==============================+=========================+========================+========================================================+
| Zoom In | :kbd:`Ctrl + =` | :kbd:`Cmd + =` | `canvas_item_editor/zoom_plus` |
+------------------------------+-------------------------+------------------------+--------------------------------------------------------+
| Zoom Out | :kbd:`Ctrl + -` | :kbd:`Cmd + -` | `canvas_item_editor/zoom_minus` |
+------------------------------+-------------------------+------------------------+--------------------------------------------------------+
| Zoom Reset | :kbd:`Ctrl + 0` | :kbd:`Cmd + 0` | `canvas_item_editor/zoom_reset` |
+------------------------------+-------------------------+------------------------+--------------------------------------------------------+
| Pan View | :kbd:`Space` | :kbd:`Space` | `canvas_item_editor/pan_view` |
+------------------------------+-------------------------+------------------------+--------------------------------------------------------+
| Select Mode | :kbd:`Q` | :kbd:`Q` | `canvas_item_editor/select_mode` |
+------------------------------+-------------------------+------------------------+--------------------------------------------------------+
| Move Mode | :kbd:`W` | :kbd:`W` | `canvas_item_editor/move_mode` |
+------------------------------+-------------------------+------------------------+--------------------------------------------------------+
| Rotate Mode | :kbd:`E` | :kbd:`E` | `canvas_item_editor/rotate_mode` |
+------------------------------+-------------------------+------------------------+--------------------------------------------------------+
| Scale Mode | :kbd:`S` | :kbd:`S` | `canvas_item_editor/scale_mode` |
+------------------------------+-------------------------+------------------------+--------------------------------------------------------+
| Ruler Mode | :kbd:`R` | :kbd:`R` | `canvas_item_editor/ruler_mode` |
+------------------------------+-------------------------+------------------------+--------------------------------------------------------+
| Use Smart Snap | :kbd:`Shift + S` | :kbd:`Shift + S` | `canvas_item_editor/use_smart_snap` |
+------------------------------+-------------------------+------------------------+--------------------------------------------------------+
| Use Grid Snap | :kbd:`Shift + G` | :kbd:`Shift + G` | `canvas_item_editor/use_grid_snap` |
+------------------------------+-------------------------+------------------------+--------------------------------------------------------+
| Multiply grid step by 2 | :kbd:`Num *` | :kbd:`Num *` | `canvas_item_editor/multiply_grid_step` |
+------------------------------+-------------------------+------------------------+--------------------------------------------------------+
| Divide grid step by 2 | :kbd:`Num /` | :kbd:`Num /` | `canvas_item_editor/divide_grid_step` |
+------------------------------+-------------------------+------------------------+--------------------------------------------------------+
| Always Show Grid | :kbd:`G` | :kbd:`G` | `canvas_item_editor/show_grid` |
+------------------------------+-------------------------+------------------------+--------------------------------------------------------+
| Show Helpers | :kbd:`H` | :kbd:`H` | `canvas_item_editor/show_helpers` |
+------------------------------+-------------------------+------------------------+--------------------------------------------------------+
| Show Guides | :kbd:`Y` | :kbd:`Y` | `canvas_item_editor/show_guides` |
+------------------------------+-------------------------+------------------------+--------------------------------------------------------+
| Center Selection | :kbd:`F` | :kbd:`F` | `canvas_item_editor/center_selection` |
+------------------------------+-------------------------+------------------------+--------------------------------------------------------+
| Frame Selection | :kbd:`Shift + F` | :kbd:`Shift + F` | `canvas_item_editor/frame_selection` |
+------------------------------+-------------------------+------------------------+--------------------------------------------------------+
| Preview Canvas Scale | :kbd:`Ctrl + Shift + P` | :kbd:`Cmd + Shift + P` | `canvas_item_editor/preview_canvas_scale` |
+------------------------------+-------------------------+------------------------+--------------------------------------------------------+
| Insert Key | :kbd:`Ins` | :kbd:`Ins` | `canvas_item_editor/anim_insert_key` |
+------------------------------+-------------------------+------------------------+--------------------------------------------------------+
| Insert Key (Existing Tracks) | :kbd:`Ctrl + Ins` | :kbd:`Cmd + Ins` | `canvas_item_editor/anim_insert_key_existing_tracks` |
+------------------------------+-------------------------+------------------------+--------------------------------------------------------+
| Make Custom Bones from Nodes | :kbd:`Ctrl + Shift + B` | :kbd:`Cmd + Shift + B` | `canvas_item_editor/skeleton_make_bones` |
+------------------------------+-------------------------+------------------------+--------------------------------------------------------+
| Clear Pose | :kbd:`Shift + K` | :kbd:`Shift + K` | `canvas_item_editor/anim_clear_pose` |
+------------------------------+-------------------------+------------------------+--------------------------------------------------------+
3D / Spatial Editor
-------------------
## 2D / Canvas Item Editor
+------------------------------------+-----------------------+----------------------+--------------------------------------------------+
| Action name | Windows, Linux | macOS | Editor setting |
+====================================+=======================+======================+==================================================+
| Toggle Freelook | :kbd:`Shift + F` | :kbd:`Shift + F` | `spatial_editor/freelook_toggle` |
+------------------------------------+-----------------------+----------------------+--------------------------------------------------+
| Freelook Left | :kbd:`A` | :kbd:`A` | `spatial_editor/freelook_left` |
+------------------------------------+-----------------------+----------------------+--------------------------------------------------+
| Freelook Right | :kbd:`D` | :kbd:`D` | `spatial_editor/freelook_right` |
+------------------------------------+-----------------------+----------------------+--------------------------------------------------+
| Freelook Forward | :kbd:`W` | :kbd:`W` | `spatial_editor/freelook_forward` |
+------------------------------------+-----------------------+----------------------+--------------------------------------------------+
| Freelook Backwards | :kbd:`S` | :kbd:`S` | `spatial_editor/freelook_backwards` |
+------------------------------------+-----------------------+----------------------+--------------------------------------------------+
| Freelook Up | :kbd:`E` | :kbd:`E` | `spatial_editor/freelook_up` |
+------------------------------------+-----------------------+----------------------+--------------------------------------------------+
| Freelook Down | :kbd:`Q` | :kbd:`Q` | `spatial_editor/freelook_down` |
+------------------------------------+-----------------------+----------------------+--------------------------------------------------+
| Freelook Speed Modifier | :kbd:`Shift` | :kbd:`Shift` | `spatial_editor/freelook_speed_modifier` |
+------------------------------------+-----------------------+----------------------+--------------------------------------------------+
| Freelook Slow Modifier | :kbd:`Alt` | :kbd:`Alt` | `spatial_editor/freelook_slow_modifier` |
+------------------------------------+-----------------------+----------------------+--------------------------------------------------+
| Select Mode | :kbd:`Q` | :kbd:`Q` | `spatial_editor/tool_select` |
+------------------------------------+-----------------------+----------------------+--------------------------------------------------+
| Move Mode | :kbd:`W` | :kbd:`W` | `spatial_editor/tool_move` |
+------------------------------------+-----------------------+----------------------+--------------------------------------------------+
| Rotate Mode | :kbd:`E` | :kbd:`E` | `spatial_editor/tool_rotate` |
+------------------------------------+-----------------------+----------------------+--------------------------------------------------+
| Scale Mode | :kbd:`R` | :kbd:`R` | `spatial_editor/tool_scale` |
+------------------------------------+-----------------------+----------------------+--------------------------------------------------+
| Use Local Space | :kbd:`T` | :kbd:`T` | `spatial_editor/local_coords` |
+------------------------------------+-----------------------+----------------------+--------------------------------------------------+
| Use Snap | :kbd:`Y` | :kbd:`Y` | `spatial_editor/snap` |
+------------------------------------+-----------------------+----------------------+--------------------------------------------------+
| Snap Object to Floor | :kbd:`PgDown` | :kbd:`PgDown` | `spatial_editor/snap_to_floor` |
+------------------------------------+-----------------------+----------------------+--------------------------------------------------+
| Top View | :kbd:`Num 7` | :kbd:`Num 7` | `spatial_editor/top_view` |
+------------------------------------+-----------------------+----------------------+--------------------------------------------------+
| Bottom View | :kbd:`Alt + Num 7` | :kbd:`Alt + Num 7` | `spatial_editor/bottom_view` |
+------------------------------------+-----------------------+----------------------+--------------------------------------------------+
| Front View | :kbd:`Num 1` | :kbd:`Num 1` | `spatial_editor/front_view` |
+------------------------------------+-----------------------+----------------------+--------------------------------------------------+
| Rear View | :kbd:`Alt + Num 1` | :kbd:`Alt + Num 1` | `spatial_editor/rear_view` |
+------------------------------------+-----------------------+----------------------+--------------------------------------------------+
| Right View | :kbd:`Num 3` | :kbd:`Num 3` | `spatial_editor/right_view` |
+------------------------------------+-----------------------+----------------------+--------------------------------------------------+
| Left View | :kbd:`Alt + Num 3` | :kbd:`Alt + Num 3` | `spatial_editor/left_view` |
+------------------------------------+-----------------------+----------------------+--------------------------------------------------+
| Switch Perspective/Orthogonal View | :kbd:`Num 5` | :kbd:`Num 5` | `spatial_editor/switch_perspective_orthogonal` |
+------------------------------------+-----------------------+----------------------+--------------------------------------------------+
| Insert Animation Key | :kbd:`K` | :kbd:`K` | `spatial_editor/insert_anim_key` |
+------------------------------------+-----------------------+----------------------+--------------------------------------------------+
| Focus Origin | :kbd:`O` | :kbd:`O` | `spatial_editor/focus_origin` |
+------------------------------------+-----------------------+----------------------+--------------------------------------------------+
| Focus Selection | :kbd:`F` | :kbd:`F` | `spatial_editor/focus_selection` |
+------------------------------------+-----------------------+----------------------+--------------------------------------------------+
| Align Transform with View | :kbd:`Ctrl + Alt + M` | :kbd:`Cmd + Alt + M` | `spatial_editor/align_transform_with_view` |
+------------------------------------+-----------------------+----------------------+--------------------------------------------------+
| Align Rotation with View | :kbd:`Ctrl + Alt + F` | :kbd:`Cmd + Alt + F` | `spatial_editor/align_rotation_with_view` |
+------------------------------------+-----------------------+----------------------+--------------------------------------------------+
| 1 Viewport | :kbd:`Ctrl + 1` | :kbd:`Cmd + 1` | `spatial_editor/1_viewport` |
+------------------------------------+-----------------------+----------------------+--------------------------------------------------+
| 2 Viewports | :kbd:`Ctrl + 2` | :kbd:`Cmd + 2` | `spatial_editor/2_viewports` |
+------------------------------------+-----------------------+----------------------+--------------------------------------------------+
| 2 Viewports (Alt) | :kbd:`Ctrl + Alt + 2` | :kbd:`Cmd + Alt + 2` | `spatial_editor/2_viewports_alt` |
+------------------------------------+-----------------------+----------------------+--------------------------------------------------+
| 3 Viewports | :kbd:`Ctrl + 3` | :kbd:`Cmd + 3` | `spatial_editor/3_viewports` |
+------------------------------------+-----------------------+----------------------+--------------------------------------------------+
| 3 Viewports (Alt) | :kbd:`Ctrl + Alt + 3` | :kbd:`Cmd + Alt + 3` | `spatial_editor/3_viewports_alt` |
+------------------------------------+-----------------------+----------------------+--------------------------------------------------+
| 4 Viewports | :kbd:`Ctrl + 4` | :kbd:`Cmd + 4` | `spatial_editor/4_viewports` |
+------------------------------------+-----------------------+----------------------+--------------------------------------------------+
Text Editor
-----------
| Action name | Windows, Linux | macOS | Editor setting |
|------------------------------|--------------------|-------------------|------------------------------------------------------|
| Zoom In | `Ctrl + =` | `Cmd + =` | `canvas_item_editor/zoom_plus` |
| Zoom Out | `Ctrl + -` | `Cmd + -` | `canvas_item_editor/zoom_minus` |
| Zoom Reset | `Ctrl + 0` | `Cmd + 0` | `canvas_item_editor/zoom_reset` |
| Pan View | `Space` | `Space` | `canvas_item_editor/pan_view` |
| Select Mode | `Q` | `Q` | `canvas_item_editor/select_mode` |
| Move Mode | `W` | `W` | `canvas_item_editor/move_mode` |
| Rotate Mode | `E` | `E` | `canvas_item_editor/rotate_mode` |
| Scale Mode | `S` | `S` | `canvas_item_editor/scale_mode` |
| Ruler Mode | `R` | `R` | `canvas_item_editor/ruler_mode` |
| Use Smart Snap | `Shift + S` | `Shift + S` | `canvas_item_editor/use_smart_snap` |
| Use Grid Snap | `Shift + G` | `Shift + G` | `canvas_item_editor/use_grid_snap` |
| Multiply grid step by 2 | `Num *` | `Num *` | `canvas_item_editor/multiply_grid_step` |
| Divide grid step by 2 | `Num /` | `Num /` | `canvas_item_editor/divide_grid_step` |
| Always Show Grid | `G` | `G` | `canvas_item_editor/show_grid` |
| Show Helpers | `H` | `H` | `canvas_item_editor/show_helpers` |
| Show Guides | `Y` | `Y` | `canvas_item_editor/show_guides` |
| Center Selection | `F` | `F` | `canvas_item_editor/center_selection` |
| Frame Selection | `Shift + F` | `Shift + F` | `canvas_item_editor/frame_selection` |
| Preview Canvas Scale | `Ctrl + Shift + P` | `Cmd + Shift + P` | `canvas_item_editor/preview_canvas_scale` |
| Insert Key | `Ins` | `Ins` | `canvas_item_editor/anim_insert_key` |
| Insert Key (Existing Tracks) | `Ctrl + Ins` | `Cmd + Ins` | `canvas_item_editor/anim_insert_key_existing_tracks` |
| Make Custom Bones from Nodes | `Ctrl + Shift + B` | `Cmd + Shift + B` | `canvas_item_editor/skeleton_make_bones` |
| Clear Pose | `Shift + K` | `Shift + K` | `canvas_item_editor/anim_clear_pose` |
+---------------------------+--------------------------+----------------------------+-------------------------------------------------+
| Action name | Windows, Linux | macOS | Editor setting |
+===========================+==========================+============================+=================================================+
| Cut | :kbd:`Ctrl + X` | :kbd:`Cmd + X` | `script_text_editor/cut` |
+---------------------------+--------------------------+----------------------------+-------------------------------------------------+
| Copy | :kbd:`Ctrl + C` | :kbd:`Cmd + C` | `script_text_editor/copy` |
+---------------------------+--------------------------+----------------------------+-------------------------------------------------+
| Paste | :kbd:`Ctrl + V` | :kbd:`Cmd + V` | `script_text_editor/paste` |
+---------------------------+--------------------------+----------------------------+-------------------------------------------------+
| Select All | :kbd:`Ctrl + A` | :kbd:`Cmd + A` | `script_text_editor/select_all` |
+---------------------------+--------------------------+----------------------------+-------------------------------------------------+
| Find | :kbd:`Ctrl + F` | :kbd:`Cmd + F` | `script_text_editor/find` |
+---------------------------+--------------------------+----------------------------+-------------------------------------------------+
| Find Next | :kbd:`F3` | :kbd:`Cmd + G` | `script_text_editor/find_next` |
+---------------------------+--------------------------+----------------------------+-------------------------------------------------+
| Find Previous | :kbd:`Shift + F3` | :kbd:`Cmd + Shift + G` | `script_text_editor/find_previous` |
+---------------------------+--------------------------+----------------------------+-------------------------------------------------+
| Find in Files | :kbd:`Ctrl + Shift + F` | :kbd:`Cmd + Shift + F` | `script_text_editor/find_in_files` |
+---------------------------+--------------------------+----------------------------+-------------------------------------------------+
| Replace | :kbd:`Ctrl + R` | :kbd:`Alt + Cmd + F` | `script_text_editor/replace` |
+---------------------------+--------------------------+----------------------------+-------------------------------------------------+
| Replace in Files | :kbd:`Ctrl + Shift + R` | :kbd:`Cmd + Shift + R` | `script_text_editor/replace_in_files` |
+---------------------------+--------------------------+----------------------------+-------------------------------------------------+
| Undo | :kbd:`Ctrl + Z` | :kbd:`Cmd + Z` | `script_text_editor/undo` |
+---------------------------+--------------------------+----------------------------+-------------------------------------------------+
| Redo | :kbd:`Ctrl + Y` | :kbd:`Cmd + Y` | `script_text_editor/redo` |
+---------------------------+--------------------------+----------------------------+-------------------------------------------------+
| Move Up | :kbd:`Alt + Up Arrow` | :kbd:`Alt + Up Arrow` | `script_text_editor/move_up` |
+---------------------------+--------------------------+----------------------------+-------------------------------------------------+
| Move Down | :kbd:`Alt + Down Arrow` | :kbd:`Alt + Down Arrow` | `script_text_editor/move_down` |
+---------------------------+--------------------------+----------------------------+-------------------------------------------------+
| Delete Line | :kbd:`Ctrl + Shift + K` | :kbd:`Cmd + Shift + K` | `script_text_editor/delete_line` |
+---------------------------+--------------------------+----------------------------+-------------------------------------------------+
| Toggle Comment | :kbd:`Ctrl + K` | :kbd:`Cmd + K` | `script_text_editor/toggle_comment` |
+---------------------------+--------------------------+----------------------------+-------------------------------------------------+
| Fold/Unfold Line | :kbd:`Alt + F` | :kbd:`Alt + F` | `script_text_editor/toggle_fold_line` |
+---------------------------+--------------------------+----------------------------+-------------------------------------------------+
| Clone Down | :kbd:`Ctrl + D` | :kbd:`Cmd + Shift + C` | `script_text_editor/clone_down` |
+---------------------------+--------------------------+----------------------------+-------------------------------------------------+
| Complete Symbol | :kbd:`Ctrl + Space` | :kbd:`Ctrl + Space` | `script_text_editor/complete_symbol` |
+---------------------------+--------------------------+----------------------------+-------------------------------------------------+
| Evaluate Selection | :kbd:`Ctrl + Shift + E` | :kbd:`Cmd + Shift + E` | `script_text_editor/evaluate_selection` |
+---------------------------+--------------------------+----------------------------+-------------------------------------------------+
| Trim Trailing Whitespace | :kbd:`Ctrl + Alt + T` | :kbd:`Cmd + Alt + T` | `script_text_editor/trim_trailing_whitespace` |
+---------------------------+--------------------------+----------------------------+-------------------------------------------------+
| Uppercase | :kbd:`Shift + F4` | :kbd:`Shift + F4` | `script_text_editor/convert_to_uppercase` |
+---------------------------+--------------------------+----------------------------+-------------------------------------------------+
| Lowercase | :kbd:`Shift + F5` | :kbd:`Shift + F5` | `script_text_editor/convert_to_lowercase` |
+---------------------------+--------------------------+----------------------------+-------------------------------------------------+
| Capitalize | :kbd:`Shift + F6` | :kbd:`Shift + F6` | `script_text_editor/capitalize` |
+---------------------------+--------------------------+----------------------------+-------------------------------------------------+
| Convert Indent to Spaces | :kbd:`Ctrl + Shift + Y` | :kbd:`Cmd + Shift + Y` | `script_text_editor/convert_indent_to_spaces` |
+---------------------------+--------------------------+----------------------------+-------------------------------------------------+
| Convert Indent to Tabs | :kbd:`Ctrl + Shift + I` | :kbd:`Cmd + Shift + I` | `script_text_editor/convert_indent_to_tabs` |
+---------------------------+--------------------------+----------------------------+-------------------------------------------------+
| Auto Indent | :kbd:`Ctrl + I` | :kbd:`Cmd + I` | `script_text_editor/auto_indent` |
+---------------------------+--------------------------+----------------------------+-------------------------------------------------+
| Toggle Bookmark | :kbd:`Ctrl + Alt + B` | :kbd:`Cmd + Alt + B` | `script_text_editor/toggle_bookmark` |
+---------------------------+--------------------------+----------------------------+-------------------------------------------------+
| Go to Next Bookmark | :kbd:`Ctrl + B` | :kbd:`Cmd + B` | `script_text_editor/goto_next_bookmark` |
+---------------------------+--------------------------+----------------------------+-------------------------------------------------+
| Go to Previous Bookmark | :kbd:`Ctrl + Shift + B` | :kbd:`Cmd + Shift + B` | `script_text_editor/goto_previous_bookmark` |
+---------------------------+--------------------------+----------------------------+-------------------------------------------------+
| Go to Function | :kbd:`Ctrl + Alt + F` | :kbd:`Ctrl + Cmd + J` | `script_text_editor/goto_function` |
+---------------------------+--------------------------+----------------------------+-------------------------------------------------+
| Go to Line | :kbd:`Ctrl + L` | :kbd:`Cmd + L` | `script_text_editor/goto_line` |
+---------------------------+--------------------------+----------------------------+-------------------------------------------------+
| Toggle Breakpoint | :kbd:`F9` | :kbd:`Cmd + Shift + B` | `script_text_editor/toggle_breakpoint` |
+---------------------------+--------------------------+----------------------------+-------------------------------------------------+
| Remove All Breakpoints | :kbd:`Ctrl + Shift + F9` | :kbd:`Cmd + Shift + F9` | `script_text_editor/remove_all_breakpoints` |
+---------------------------+--------------------------+----------------------------+-------------------------------------------------+
| Go to Next Breakpoint | :kbd:`Ctrl + .` | :kbd:`Cmd + .` | `script_text_editor/goto_next_breakpoint` |
+---------------------------+--------------------------+----------------------------+-------------------------------------------------+
| Go to Previous Breakpoint | :kbd:`Ctrl + ,` | :kbd:`Cmd + ,` | `script_text_editor/goto_previous_breakpoint` |
+---------------------------+--------------------------+----------------------------+-------------------------------------------------+
| Contextual Help | :kbd:`Alt + F1` | :kbd:`Alt + Shift + Space` | `script_text_editor/contextual_help` |
+---------------------------+--------------------------+----------------------------+-------------------------------------------------+
## 3D / Spatial Editor
Script Editor
-------------
+----------------------+---------------------------------+---------------------------------+----------------------------------------+
| Action name | Windows, Linux | macOS | Editor setting |
+======================+=================================+=================================+========================================+
| Find | :kbd:`Ctrl + F` | :kbd:`Cmd + F` | `script_editor/find` |
+----------------------+---------------------------------+---------------------------------+----------------------------------------+
| Find Next | :kbd:`F3` | :kbd:`F3` | `script_editor/find_next` |
+----------------------+---------------------------------+---------------------------------+----------------------------------------+
| Find Previous | :kbd:`Shift + F3` | :kbd:`Shift + F3` | `script_editor/find_previous` |
+----------------------+---------------------------------+---------------------------------+----------------------------------------+
| Find in Files | :kbd:`Ctrl + Shift + F` | :kbd:`Cmd + Shift + F` | `script_editor/find_in_files` |
+----------------------+---------------------------------+---------------------------------+----------------------------------------+
| Move Up | :kbd:`Shift + Alt + Up Arrow` | :kbd:`Shift + Alt + Up Arrow` | `script_editor/window_move_up` |
+----------------------+---------------------------------+---------------------------------+----------------------------------------+
| Move Down | :kbd:`Shift + Alt + Down Arrow` | :kbd:`Shift + Alt + Down Arrow` | `script_editor/window_move_down` |
+----------------------+---------------------------------+---------------------------------+----------------------------------------+
| Next Script | :kbd:`Ctrl + Shift + .` | :kbd:`Cmd + Shift + .` | `script_editor/next_script` |
+----------------------+---------------------------------+---------------------------------+----------------------------------------+
| Previous Script | :kbd:`Ctrl + Shift + ,` | :kbd:`Cmd + Shift + ,` | `script_editor/prev_script` |
+----------------------+---------------------------------+---------------------------------+----------------------------------------+
| Reopen Closed Script | :kbd:`Ctrl + Shift + T` | :kbd:`Cmd + Shift + T` | `script_editor/reopen_closed_script` |
+----------------------+---------------------------------+---------------------------------+----------------------------------------+
| Save | :kbd:`Ctrl + Alt + S` | :kbd:`Cmd + Alt + S` | `script_editor/save` |
+----------------------+---------------------------------+---------------------------------+----------------------------------------+
| Save All | :kbd:`Ctrl + Shift + Alt + S` | :kbd:`Cmd + Shift + Alt + S` | `script_editor/save_all` |
+----------------------+---------------------------------+---------------------------------+----------------------------------------+
| Soft Reload Script | :kbd:`Ctrl + Shift + R` | :kbd:`Cmd + Shift + R` | `script_editor/reload_script_soft` |
+----------------------+---------------------------------+---------------------------------+----------------------------------------+
| History Previous | :kbd:`Alt + Left Arrow` | :kbd:`Alt + Left Arrow` | `script_editor/history_previous` |
+----------------------+---------------------------------+---------------------------------+----------------------------------------+
| History Next | :kbd:`Alt + Right Arrow` | :kbd:`Alt + Right Arrow` | `script_editor/history_next` |
+----------------------+---------------------------------+---------------------------------+----------------------------------------+
| Close | :kbd:`Ctrl + W` | :kbd:`Cmd + W` | `script_editor/close_file` |
+----------------------+---------------------------------+---------------------------------+----------------------------------------+
| Run | :kbd:`Ctrl + Shift + X` | :kbd:`Cmd + Shift + X` | `script_editor/run_file` |
+----------------------+---------------------------------+---------------------------------+----------------------------------------+
| Toggle Scripts Panel | :kbd:`Ctrl + \\` | :kbd:`Cmd + \\` | `script_editor/toggle_scripts_panel` |
+----------------------+---------------------------------+---------------------------------+----------------------------------------+
| Zoom In | :kbd:`Ctrl + =` | :kbd:`Cmd + =` | `script_editor/zoom_in` |
+----------------------+---------------------------------+---------------------------------+----------------------------------------+
| Zoom Out | :kbd:`Ctrl + -` | :kbd:`Cmd + -` | `script_editor/zoom_out` |
+----------------------+---------------------------------+---------------------------------+----------------------------------------+
| Reset Zoom | :kbd:`Ctrl + 0` | :kbd:`Cmd + 0` | `script_editor/reset_zoom` |
+----------------------+---------------------------------+---------------------------------+----------------------------------------+
| Action name | Windows, Linux | macOS | Editor setting |
|------------------------------------|------------------|-----------------|------------------------------------------------|
| Toggle Freelook | `Shift + F` | `Shift + F` | `spatial_editor/freelook_toggle` |
| Freelook Left | `A` | `A` | `spatial_editor/freelook_left` |
| Freelook Right | `D` | `D` | `spatial_editor/freelook_right` |
| Freelook Forward | `W` | `W` | `spatial_editor/freelook_forward` |
| Freelook Backwards | `S` | `S` | `spatial_editor/freelook_backwards` |
| Freelook Up | `E` | `E` | `spatial_editor/freelook_up` |
| Freelook Down | `Q` | `Q` | `spatial_editor/freelook_down` |
| Freelook Speed Modifier | `Shift` | `Shift` | `spatial_editor/freelook_speed_modifier` |
| Freelook Slow Modifier | `Alt` | `Alt` | `spatial_editor/freelook_slow_modifier` |
| Select Mode | `Q` | `Q` | `spatial_editor/tool_select` |
| Move Mode | `W` | `W` | `spatial_editor/tool_move` |
| Rotate Mode | `E` | `E` | `spatial_editor/tool_rotate` |
| Scale Mode | `R` | `R` | `spatial_editor/tool_scale` |
| Use Local Space | `T` | `T` | `spatial_editor/local_coords` |
| Use Snap | `Y` | `Y` | `spatial_editor/snap` |
| Snap Object to Floor | `PgDown` | `PgDown` | `spatial_editor/snap_to_floor` |
| Top View | `Num 7` | `Num 7` | `spatial_editor/top_view` |
| Bottom View | `Alt + Num 7` | `Alt + Num 7` | `spatial_editor/bottom_view` |
| Front View | `Num 1` | `Num 1` | `spatial_editor/front_view` |
| Rear View | `Alt + Num 1` | `Alt + Num 1` | `spatial_editor/rear_view` |
| Right View | `Num 3` | `Num 3` | `spatial_editor/right_view` |
| Left View | `Alt + Num 3` | `Alt + Num 3` | `spatial_editor/left_view` |
| Switch Perspective/Orthogonal View | `Num 5` | `Num 5` | `spatial_editor/switch_perspective_orthogonal` |
| Insert Animation Key | `K` | `K` | `spatial_editor/insert_anim_key` |
| Focus Origin | `O` | `O` | `spatial_editor/focus_origin` |
| Focus Selection | `F` | `F` | `spatial_editor/focus_selection` |
| Align Transform with View | `Ctrl + Alt + M` | `Cmd + Alt + M` | `spatial_editor/align_transform_with_view` |
| Align Rotation with View | `Ctrl + Alt + F` | `Cmd + Alt + F` | `spatial_editor/align_rotation_with_view` |
| 1 Viewport | `Ctrl + 1` | `Cmd + 1` | `spatial_editor/1_viewport` |
| 2 Viewports | `Ctrl + 2` | `Cmd + 2` | `spatial_editor/2_viewports` |
| 2 Viewports (Alt) | `Ctrl + Alt + 2` | `Cmd + Alt + 2` | `spatial_editor/2_viewports_alt` |
| 3 Viewports | `Ctrl + 3` | `Cmd + 3` | `spatial_editor/3_viewports` |
| 3 Viewports (Alt) | `Ctrl + Alt + 3` | `Cmd + Alt + 3` | `spatial_editor/3_viewports_alt` |
| 4 Viewports | `Ctrl + 4` | `Cmd + 4` | `spatial_editor/4_viewports` |
Visual Script Editor
--------------------
+-------------------+-----------------+-------------------+--------------------------------------------+
| Action name | Windows, Linux | macOS | Editor setting |
+===================+=================+===================+============================================+
| Find Node Type | :kbd:`Ctrl + F` | :kbd:`Cmd + F` | `visual_script_editor/find_node_type` |
+-------------------+-----------------+-------------------+--------------------------------------------+
| Copy Nodes | :kbd:`Ctrl + C` | :kbd:`Cmd + C` | `visual_script_editor/copy_nodes` |
+-------------------+-----------------+-------------------+--------------------------------------------+
| Cut Nodes | :kbd:`Ctrl + X` | :kbd:`Cmd + X` | `visual_script_editor/cut_nodes` |
+-------------------+-----------------+-------------------+--------------------------------------------+
| Paste Nodes | :kbd:`Ctrl + V` | :kbd:`Cmd + V` | `visual_script_editor/paste_nodes` |
+-------------------+-----------------+-------------------+--------------------------------------------+
| Delete Selected | :kbd:`Del` | :kbd:`Cmd + BkSp` | `visual_script_editor/delete_selected` |
+-------------------+-----------------+-------------------+--------------------------------------------+
| Make Function | :kbd:`Ctrl + G` | :kbd:`Cmd + G` | `visual_script_editor/create_function` |
+-------------------+-----------------+-------------------+--------------------------------------------+
| Edit Member | :kbd:`Ctrl + E` | :kbd:`Cmd + E` | `visual_script_editor/edit_member` |
+-------------------+-----------------+-------------------+--------------------------------------------+
| Refresh Graph | :kbd:`Ctrl + R` | :kbd:`Cmd + R` | `visual_script_editor/refresh_nodes` |
+-------------------+-----------------+-------------------+--------------------------------------------+
| Toggle Breakpoint | :kbd:`F9` | :kbd:`F9` | `visual_script_editor/toggle_breakpoint` |
+-------------------+-----------------+-------------------+--------------------------------------------+
## Text Editor
Editor Output
-------------
+----------------+-------------------------+------------------------+-------------------------+
| Action name | Windows, Linux | macOS | Editor setting |
+================+=========================+========================+=========================+
| Copy Selection | :kbd:`Ctrl + C` | :kbd:`Cmd + C` | `editor/copy_output` |
+----------------+-------------------------+------------------------+-------------------------+
| Clear Output | :kbd:`Ctrl + Shift + K` | :kbd:`Cmd + Shift + K` | `editor/clear_output` |
+----------------+-------------------------+------------------------+-------------------------+
| Action name | Windows, Linux | macOS | Editor setting |
|---------------------------|---------------------|-----------------------|-----------------------------------------------|
| Cut | `Ctrl + X` | `Cmd + X` | `script_text_editor/cut` |
| Copy | `Ctrl + C` | `Cmd + C` | `script_text_editor/copy` |
| Paste | `Ctrl + V` | `Cmd + V` | `script_text_editor/paste` |
| Select All | `Ctrl + A` | `Cmd + A` | `script_text_editor/select_all` |
| Find | `Ctrl + F` | `Cmd + F` | `script_text_editor/find` |
| Find Next | `F3` | `Cmd + G` | `script_text_editor/find_next` |
| Find Previous | `Shift + F3` | `Cmd + Shift + G` | `script_text_editor/find_previous` |
| Find in Files | `Ctrl + Shift + F` | `Cmd + Shift + F` | `script_text_editor/find_in_files` |
| Replace | `Ctrl + R` | `Alt + Cmd + F` | `script_text_editor/replace` |
| Replace in Files | `Ctrl + Shift + R` | `Cmd + Shift + R` | `script_text_editor/replace_in_files` |
| Undo | `Ctrl + Z` | `Cmd + Z` | `script_text_editor/undo` |
| Redo | `Ctrl + Y` | `Cmd + Y` | `script_text_editor/redo` |
| Move Up | `Alt + Up Arrow` | `Alt + Up Arrow` | `script_text_editor/move_up` |
| Move Down | `Alt + Down Arrow` | `Alt + Down Arrow` | `script_text_editor/move_down` |
| Delete Line | `Ctrl + Shift + K` | `Cmd + Shift + K` | `script_text_editor/delete_line` |
| Toggle Comment | `Ctrl + K` | `Cmd + K` | `script_text_editor/toggle_comment` |
| Fold/Unfold Line | `Alt + F` | `Alt + F` | `script_text_editor/toggle_fold_line` |
| Clone Down | `Ctrl + D` | `Cmd + Shift + C` | `script_text_editor/clone_down` |
| Complete Symbol | `Ctrl + Space` | `Ctrl + Space` | `script_text_editor/complete_symbol` |
| Evaluate Selection | `Ctrl + Shift + E` | `Cmd + Shift + E` | `script_text_editor/evaluate_selection` |
| Trim Trailing Whitespace | `Ctrl + Alt + T` | `Cmd + Alt + T` | `script_text_editor/trim_trailing_whitespace` |
| Uppercase | `Shift + F4` | `Shift + F4` | `script_text_editor/convert_to_uppercase` |
| Lowercase | `Shift + F5` | `Shift + F5` | `script_text_editor/convert_to_lowercase` |
| Capitalize | `Shift + F6` | `Shift + F6` | `script_text_editor/capitalize` |
| Convert Indent to Spaces | `Ctrl + Shift + Y` | `Cmd + Shift + Y` | `script_text_editor/convert_indent_to_spaces` |
| Convert Indent to Tabs | `Ctrl + Shift + I` | `Cmd + Shift + I` | `script_text_editor/convert_indent_to_tabs` |
| Auto Indent | `Ctrl + I` | `Cmd + I` | `script_text_editor/auto_indent` |
| Toggle Bookmark | `Ctrl + Alt + B` | `Cmd + Alt + B` | `script_text_editor/toggle_bookmark` |
| Go to Next Bookmark | `Ctrl + B` | `Cmd + B` | `script_text_editor/goto_next_bookmark` |
| Go to Previous Bookmark | `Ctrl + Shift + B` | `Cmd + Shift + B` | `script_text_editor/goto_previous_bookmark` |
| Go to Function | `Ctrl + Alt + F` | `Ctrl + Cmd + J` | `script_text_editor/goto_function` |
| Go to Line | `Ctrl + L` | `Cmd + L` | `script_text_editor/goto_line` |
| Toggle Breakpoint | `F9` | `Cmd + Shift + B` | `script_text_editor/toggle_breakpoint` |
| Remove All Breakpoints | `Ctrl + Shift + F9` | `Cmd + Shift + F9` | `script_text_editor/remove_all_breakpoints` |
| Go to Next Breakpoint | `Ctrl + .` | `Cmd + .` | `script_text_editor/goto_next_breakpoint` |
| Go to Previous Breakpoint | `Ctrl + ,` | `Cmd + ,` | `script_text_editor/goto_previous_breakpoint` |
| Contextual Help | `Alt + F1` | `Alt + Shift + Space` | `script_text_editor/contextual_help` |
Debugger
--------
+-------------+----------------+------------+------------------------+
| Action name | Windows, Linux | macOS | Editor setting |
+=============+================+============+========================+
| Step Into | :kbd:`F11` | :kbd:`F11` | `debugger/step_into` |
+-------------+----------------+------------+------------------------+
| Step Over | :kbd:`F10` | :kbd:`F10` | `debugger/step_over` |
+-------------+----------------+------------+------------------------+
| Continue | :kbd:`F12` | :kbd:`F12` | `debugger/continue` |
+-------------+----------------+------------+------------------------+
## Script Editor
File Dialog
-----------
+---------------------+--------------------------+--------------------------+-------------------------------------+
| Action name | Windows, Linux | macOS | Editor setting |
+=====================+==========================+==========================+=====================================+
| Go Back | :kbd:`Alt + Left Arrow` | :kbd:`Alt + Left Arrow` | `file_dialog/go_back` |
+---------------------+--------------------------+--------------------------+-------------------------------------+
| Go Forward | :kbd:`Alt + Right Arrow` | :kbd:`Alt + Right Arrow` | `file_dialog/go_forward` |
+---------------------+--------------------------+--------------------------+-------------------------------------+
| Go Up | :kbd:`Alt + Up Arrow` | :kbd:`Alt + Up Arrow` | `file_dialog/go_up` |
+---------------------+--------------------------+--------------------------+-------------------------------------+
| Refresh | :kbd:`F5` | :kbd:`F5` | `file_dialog/refresh` |
+---------------------+--------------------------+--------------------------+-------------------------------------+
| Toggle Hidden Files | :kbd:`Ctrl + H` | :kbd:`Cmd + H` | `file_dialog/toggle_hidden_files` |
+---------------------+--------------------------+--------------------------+-------------------------------------+
| Toggle Favorite | :kbd:`Alt + F` | :kbd:`Alt + F` | `file_dialog/toggle_favorite` |
+---------------------+--------------------------+--------------------------+-------------------------------------+
| Toggle Mode | :kbd:`Alt + V` | :kbd:`Alt + V` | `file_dialog/toggle_mode` |
+---------------------+--------------------------+--------------------------+-------------------------------------+
| Create Folder | :kbd:`Ctrl + N` | :kbd:`Cmd + N` | `file_dialog/create_folder` |
+---------------------+--------------------------+--------------------------+-------------------------------------+
| Delete | :kbd:`Del` | :kbd:`Cmd + BkSp` | `file_dialog/delete` |
+---------------------+--------------------------+--------------------------+-------------------------------------+
| Focus Path | :kbd:`Ctrl + D` | :kbd:`Cmd + D` | `file_dialog/focus_path` |
+---------------------+--------------------------+--------------------------+-------------------------------------+
| Move Favorite Up | :kbd:`Ctrl + Up Arrow` | :kbd:`Cmd + Up Arrow` | `file_dialog/move_favorite_up` |
+---------------------+--------------------------+--------------------------+-------------------------------------+
| Move Favorite Down | :kbd:`Ctrl + Down Arrow` | :kbd:`Cmd + Down Arrow` | `file_dialog/move_favorite_down` |
+---------------------+--------------------------+--------------------------+-------------------------------------+
| Action name | Windows, Linux | macOS | Editor setting |
|----------------------|----------------------------|----------------------------|--------------------------------------|
| Find | `Ctrl + F` | `Cmd + F` | `script_editor/find` |
| Find Next | `F3` | `F3` | `script_editor/find_next` |
| Find Previous | `Shift + F3` | `Shift + F3` | `script_editor/find_previous` |
| Find in Files | `Ctrl + Shift + F` | `Cmd + Shift + F` | `script_editor/find_in_files` |
| Move Up | `Shift + Alt + Up Arrow` | `Shift + Alt + Up Arrow` | `script_editor/window_move_up` |
| Move Down | `Shift + Alt + Down Arrow` | `Shift + Alt + Down Arrow` | `script_editor/window_move_down` |
| Next Script | `Ctrl + Shift + .` | `Cmd + Shift + .` | `script_editor/next_script` |
| Previous Script | `Ctrl + Shift + ,` | `Cmd + Shift + ,` | `script_editor/prev_script` |
| Reopen Closed Script | `Ctrl + Shift + T` | `Cmd + Shift + T` | `script_editor/reopen_closed_script` |
| Save | `Ctrl + Alt + S` | `Cmd + Alt + S` | `script_editor/save` |
| Save All | `Ctrl + Shift + Alt + S` | `Cmd + Shift + Alt + S` | `script_editor/save_all` |
| Soft Reload Script | `Ctrl + Shift + R` | `Cmd + Shift + R` | `script_editor/reload_script_soft` |
| History Previous | `Alt + Left Arrow` | `Alt + Left Arrow` | `script_editor/history_previous` |
| History Next | `Alt + Right Arrow` | `Alt + Right Arrow` | `script_editor/history_next` |
| Close | `Ctrl + W` | `Cmd + W` | `script_editor/close_file` |
| Run | `Ctrl + Shift + X` | `Cmd + Shift + X` | `script_editor/run_file` |
| Toggle Scripts Panel | `Ctrl + \\` | `Cmd + \\` | `script_editor/toggle_scripts_panel` |
| Zoom In | `Ctrl + =` | `Cmd + =` | `script_editor/zoom_in` |
| Zoom Out | `Ctrl + -` | `Cmd + -` | `script_editor/zoom_out` |
| Reset Zoom | `Ctrl + 0` | `Cmd + 0` | `script_editor/reset_zoom` |
FileSystem Dock
---------------
+-------------+-----------------+-------------------+-------------------------------+
| Action name | Windows, Linux | macOS | Editor setting |
+=============+=================+===================+===============================+
| Copy Path | :kbd:`Ctrl + C` | :kbd:`Cmd + C` | `filesystem_dock/copy_path` |
+-------------+-----------------+-------------------+-------------------------------+
| Duplicate | :kbd:`Ctrl + D` | :kbd:`Cmd + D` | `filesystem_dock/duplicate` |
+-------------+-----------------+-------------------+-------------------------------+
| Delete | :kbd:`Del` | :kbd:`Cmd + BkSp` | `filesystem_dock/delete` |
+-------------+-----------------+-------------------+-------------------------------+
## Editor Output
Scene Tree Dock
---------------
| Action name | Windows, Linux | macOS | Editor setting |
|----------------|--------------------|-------------------|-----------------------|
| Copy Selection | `Ctrl + C` | `Cmd + C` | `editor/copy_output` |
| Clear Output | `Ctrl + Shift + K` | `Cmd + Shift + K` | `editor/clear_output` |
+----------------+--------------------------+-------------------------+----------------------------------+
| Action name | Windows, Linux | macOS | Editor setting |
+================+==========================+=========================+==================================+
| Add Child Node | :kbd:`Ctrl + A` | :kbd:`Cmd + A` | `scene_tree/add_child_node` |
+----------------+--------------------------+-------------------------+----------------------------------+
| Batch Rename | :kbd:`Ctrl + F2` | :kbd:`Cmd + F2` | `scene_tree/batch_rename` |
+----------------+--------------------------+-------------------------+----------------------------------+
| Copy Node Path | :kbd:`Ctrl + C` | :kbd:`Cmd + C` | `scene_tree/copy_node_path` |
+----------------+--------------------------+-------------------------+----------------------------------+
| Delete | :kbd:`Del` | :kbd:`Cmd + BkSp` | `scene_tree/delete` |
+----------------+--------------------------+-------------------------+----------------------------------+
| Force Delete | :kbd:`Shift + Del` | :kbd:`Shift + Del` | `scene_tree/delete_no_confirm` |
+----------------+--------------------------+-------------------------+----------------------------------+
| Duplicate | :kbd:`Ctrl + D` | :kbd:`Cmd + D` | `scene_tree/duplicate` |
+----------------+--------------------------+-------------------------+----------------------------------+
| Move Up | :kbd:`Ctrl + Up Arrow` | :kbd:`Cmd + Up Arrow` | `scene_tree/move_up` |
+----------------+--------------------------+-------------------------+----------------------------------+
| Move Down | :kbd:`Ctrl + Down Arrow` | :kbd:`Cmd + Down Arrow` | `scene_tree/move_down` |
+----------------+--------------------------+-------------------------+----------------------------------+
## Debugger
Animation Track Editor
----------------------
| Action name | Windows, Linux | macOS | Editor setting |
|-------------|----------------|-------|----------------------|
| Step Into | `F11` | `F11` | `debugger/step_into` |
| Step Over | `F10` | `F10` | `debugger/step_over` |
| Continue | `F12` | `F12` | `debugger/continue` |
+----------------------+---------------------------+--------------------------+-----------------------------------------------------+
| Action name | Windows, Linux | macOS | Editor setting |
+======================+===========================+==========================+=====================================================+
| Duplicate Selection | :kbd:`Ctrl + D` | :kbd:`Cmd + D` | `animation_editor/duplicate_selection` |
+----------------------+---------------------------+--------------------------+-----------------------------------------------------+
| Duplicate Transposed | :kbd:`Ctrl + Shift + D` | :kbd:`Cmd + Shift + D` | `animation_editor/duplicate_selection_transposed` |
+----------------------+---------------------------+--------------------------+-----------------------------------------------------+
| Delete Selection | :kbd:`Del` | :kbd:`Cmd + BkSp` | `animation_editor/delete_selection` |
+----------------------+---------------------------+--------------------------+-----------------------------------------------------+
| Go to Next Step | :kbd:`Ctrl + Right Arrow` | :kbd:`Cmd + Right Arrow` | `animation_editor/goto_next_step` |
+----------------------+---------------------------+--------------------------+-----------------------------------------------------+
| Go to Previous Step | :kbd:`Ctrl + Left Arrow` | :kbd:`Cmd + Left Arrow` | `animation_editor/goto_prev_step` |
+----------------------+---------------------------+--------------------------+-----------------------------------------------------+
## File Dialog
Tile Map Editor
---------------
+-------------------+-----------------+-------------------+-------------------------------------+
| Action name | Windows, Linux | macOS | Editor setting |
+===================+=================+===================+=====================================+
| Find Tile | :kbd:`Ctrl + F` | :kbd:`Cmd + F` | `tile_map_editor/find_tile` |
+-------------------+-----------------+-------------------+-------------------------------------+
| Pick Tile | :kbd:`I` | :kbd:`I` | `tile_map_editor/pick_tile` |
+-------------------+-----------------+-------------------+-------------------------------------+
| Paint Tile | :kbd:`P` | :kbd:`P` | `tile_map_editor/paint_tile` |
+-------------------+-----------------+-------------------+-------------------------------------+
| Bucket Fill | :kbd:`G` | :kbd:`G` | `tile_map_editor/bucket_fill` |
+-------------------+-----------------+-------------------+-------------------------------------+
| Transpose | :kbd:`T` | :kbd:`T` | `tile_map_editor/transpose` |
+-------------------+-----------------+-------------------+-------------------------------------+
| Flip Horizontally | :kbd:`X` | :kbd:`X` | `tile_map_editor/flip_horizontal` |
+-------------------+-----------------+-------------------+-------------------------------------+
| Flip Vertically | :kbd:`Z` | :kbd:`Z` | `tile_map_editor/flip_vertical` |
+-------------------+-----------------+-------------------+-------------------------------------+
| Rotate Left | :kbd:`A` | :kbd:`A` | `tile_map_editor/rotate_left` |
+-------------------+-----------------+-------------------+-------------------------------------+
| Rotate Right | :kbd:`S` | :kbd:`S` | `tile_map_editor/rotate_right` |
+-------------------+-----------------+-------------------+-------------------------------------+
| Clear Transform | :kbd:`W` | :kbd:`W` | `tile_map_editor/clear_transform` |
+-------------------+-----------------+-------------------+-------------------------------------+
| Select | :kbd:`M` | :kbd:`M` | `tile_map_editor/select` |
+-------------------+-----------------+-------------------+-------------------------------------+
| Cut Selection | :kbd:`Ctrl + X` | :kbd:`Cmd + X` | `tile_map_editor/cut_selection` |
+-------------------+-----------------+-------------------+-------------------------------------+
| Copy Selection | :kbd:`Ctrl + C` | :kbd:`Cmd + C` | `tile_map_editor/copy_selection` |
+-------------------+-----------------+-------------------+-------------------------------------+
| Erase Selection | :kbd:`Del` | :kbd:`Cmd + BkSp` | `tile_map_editor/erase_selection` |
+-------------------+-----------------+-------------------+-------------------------------------+
| Action name | Windows, Linux | macOS | Editor setting |
|---------------------|---------------------|---------------------|-----------------------------------|
| Go Back | `Alt + Left Arrow` | `Alt + Left Arrow` | `file_dialog/go_back` |
| Go Forward | `Alt + Right Arrow` | `Alt + Right Arrow` | `file_dialog/go_forward` |
| Go Up | `Alt + Up Arrow` | `Alt + Up Arrow` | `file_dialog/go_up` |
| Refresh | `F5` | `F5` | `file_dialog/refresh` |
| Toggle Hidden Files | `Ctrl + H` | `Cmd + H` | `file_dialog/toggle_hidden_files` |
| Toggle Favorite | `Alt + F` | `Alt + F` | `file_dialog/toggle_favorite` |
| Toggle Mode | `Alt + V` | `Alt + V` | `file_dialog/toggle_mode` |
| Create Folder | `Ctrl + N` | `Cmd + N` | `file_dialog/create_folder` |
| Delete | `Del` | `Cmd + BkSp` | `file_dialog/delete` |
| Focus Path | `Ctrl + D` | `Cmd + D` | `file_dialog/focus_path` |
| Move Favorite Up | `Ctrl + Up Arrow` | `Cmd + Up Arrow` | `file_dialog/move_favorite_up` |
| Move Favorite Down | `Ctrl + Down Arrow` | `Cmd + Down Arrow` | `file_dialog/move_favorite_down` |
Tileset Editor
--------------
+---------------------+----------------+---------------+----------------------------------------+
| Action name | Windows, Linux | macOS | Editor setting |
+=====================+================+===============+========================================+
| Next Coordinate | :kbd:`PgDown` | :kbd:`PgDown` | `tileset_editor/next_shape` |
+---------------------+----------------+---------------+----------------------------------------+
| Previous Coordinate | :kbd:`PgUp` | :kbd:`PgUp` | `tileset_editor/previous_shape` |
+---------------------+----------------+---------------+----------------------------------------+
| Region Mode | :kbd:`1` | :kbd:`1` | `tileset_editor/editmode_region` |
+---------------------+----------------+---------------+----------------------------------------+
| Collision Mode | :kbd:`2` | :kbd:`2` | `tileset_editor/editmode_collision` |
+---------------------+----------------+---------------+----------------------------------------+
| Occlusion Mode | :kbd:`3` | :kbd:`3` | `tileset_editor/editmode_occlusion` |
+---------------------+----------------+---------------+----------------------------------------+
| Navigation Mode | :kbd:`4` | :kbd:`4` | `tileset_editor/editmode_navigation` |
+---------------------+----------------+---------------+----------------------------------------+
| Bitmask Mode | :kbd:`5` | :kbd:`5` | `tileset_editor/editmode_bitmask` |
+---------------------+----------------+---------------+----------------------------------------+
| Priority Mode | :kbd:`6` | :kbd:`6` | `tileset_editor/editmode_priority` |
+---------------------+----------------+---------------+----------------------------------------+
| Icon Mode | :kbd:`7` | :kbd:`7` | `tileset_editor/editmode_icon` |
+---------------------+----------------+---------------+----------------------------------------+
| Z Index Mode | :kbd:`8` | :kbd:`8` | `tileset_editor/editmode_z_index` |
+---------------------+----------------+---------------+----------------------------------------+
## FileSystem Dock
| Action name | Windows, Linux | macOS | Editor setting |
|-------------|-----------------|--------------|-----------------------------|
| Copy Path | `Ctrl + C` | `Cmd + C` | `filesystem_dock/copy_path` |
| Duplicate | `Ctrl + D` | `Cmd + D` | `filesystem_dock/duplicate` |
| Delete | `Del` | `Cmd + BkSp` | `filesystem_dock/delete` |
## Scene Tree Dock
| Action name | Windows, Linux | macOS | Editor setting |
|----------------|---------------------|--------------------|--------------------------------|
| Add Child Node | `Ctrl + A` | `Cmd + A` | `scene_tree/add_child_node` |
| Batch Rename | `Ctrl + F2` | `Cmd + F2` | `scene_tree/batch_rename` |
| Copy Node Path | `Ctrl + C` | `Cmd + C` | `scene_tree/copy_node_path` |
| Delete | `Del` | `Cmd + BkSp` | `scene_tree/delete` |
| Force Delete | `Shift + Del` | `Shift + Del` | `scene_tree/delete_no_confirm` |
| Duplicate | `Ctrl + D` | `Cmd + D` | `scene_tree/duplicate` |
| Move Up | `Ctrl + Up Arrow` | `Cmd + Up Arrow` | `scene_tree/move_up` |
| Move Down | `Ctrl + Down Arrow` | `Cmd + Down Arrow` | `scene_tree/move_down` |
## Animation Track Editor
| Action name | Windows, Linux | macOS | Editor setting |
|----------------------|----------------------|---------------------|---------------------------------------------------|
| Duplicate Selection | `Ctrl + D` | `Cmd + D` | `animation_editor/duplicate_selection` |
| Duplicate Transposed | `Ctrl + Shift + D` | `Cmd + Shift + D` | `animation_editor/duplicate_selection_transposed` |
| Delete Selection | `Del` | `Cmd + BkSp` | `animation_editor/delete_selection` |
| Go to Next Step | `Ctrl + Right Arrow` | `Cmd + Right Arrow` | `animation_editor/goto_next_step` |
| Go to Previous Step | `Ctrl + Left Arrow` | `Cmd + Left Arrow` | `animation_editor/goto_prev_step` |
## Tile Map Editor
| Action name | Windows, Linux | macOS | Editor setting |
|-------------------|----------------|--------------|-----------------------------------|
| Find Tile | `Ctrl + F` | `Cmd + F` | `tile_map_editor/find_tile` |
| Pick Tile | `I` | `I` | `tile_map_editor/pick_tile` |
| Paint Tile | `P` | `P` | `tile_map_editor/paint_tile` |
| Bucket Fill | `G` | `G` | `tile_map_editor/bucket_fill` |
| Transpose | `T` | `T` | `tile_map_editor/transpose` |
| Flip Horizontally | `X` | `X` | `tile_map_editor/flip_horizontal` |
| Flip Vertically | `Z` | `Z` | `tile_map_editor/flip_vertical` |
| Rotate Left | `A` | `A` | `tile_map_editor/rotate_left` |
| Rotate Right | `S` | `S` | `tile_map_editor/rotate_right` |
| Clear Transform | `W` | `W` | `tile_map_editor/clear_transform` |
| Select | `M` | `M` | `tile_map_editor/select` |
| Cut Selection | `Ctrl + X` | `Cmd + X` | `tile_map_editor/cut_selection` |
| Copy Selection | `Ctrl + C` | `Cmd + C` | `tile_map_editor/copy_selection` |
| Erase Selection | `Del` | `Cmd + BkSp` | `tile_map_editor/erase_selection` |
## Tileset Editor
| Action name | Windows, Linux | macOS | Editor setting |
|---------------------|----------------|----------|--------------------------------------|
| Next Coordinate | `PgDown` | `PgDown` | `tileset_editor/next_shape` |
| Previous Coordinate | `PgUp` | `PgUp` | `tileset_editor/previous_shape` |
| Region Mode | `1` | `1` | `tileset_editor/editmode_region` |
| Collision Mode | `2` | `2` | `tileset_editor/editmode_collision` |
| Occlusion Mode | `3` | `3` | `tileset_editor/editmode_occlusion` |
| Navigation Mode | `4` | `4` | `tileset_editor/editmode_navigation` |
| Bitmask Mode | `5` | `5` | `tileset_editor/editmode_bitmask` |
| Priority Mode | `6` | `6` | `tileset_editor/editmode_priority` |
| Icon Mode | `7` | `7` | `tileset_editor/editmode_icon` |
| Z Index Mode | `8` | `8` | `tileset_editor/editmode_z_index` |

View File

@ -1,20 +1,17 @@
Using the Web editor
====================
# Using the Web editor
Since Pandemonium 3.3, there is a `Web editor ( https://editor.pandemoniumengine.org/ )`
you can use to work on new or existing projects.
Note:
The web editor is in a preliminary stage. While its feature set may be
sufficient for educational purposes, it is currently **not recommended for
production work**. See `doc_using_the_web_editor_limitations` below.
Browser support
---------------
## Browser support
The Web editor requires support for WebAssembly's SharedArrayBuffer. This
is in turn required to support threading in the browser. The following desktop
@ -34,15 +31,11 @@ recommended for better performance and compatibility with old/low-end hardware.
Note:
If you use Linux, due to
`poor Firefox WebGL performance ( https://bugzilla.mozilla.org/show_bug.cgi?id=1010527 )`,
it's recommended to use a Chromium-based browser instead of Firefox.
Limitations
-----------
## Limitations
Due to limitations on the Pandemonium or Web platform side, the following features
are currently missing:
@ -68,12 +61,10 @@ of the Web platform:
See also:
See the
`list of open issues on GitHub related to the web editor ( https://github.com/Relintai/pandemonium_engine/issues?q=is%3Aopen+is%3Aissue+label%3Aplatform%3Ahtml5+label%3Atopic%3Aeditor )` for a list of known bugs.
Importing a project
-------------------
## Importing a project
To import an existing project, the current process is as follows:
@ -87,7 +78,7 @@ To import an existing project, the current process is as follows:
(it doesn't have to match the ZIP archive's name).
- Click **Install & Edit** and the project will open in the editor.
.. attention::
Attention:
It's important to place the project folder somewhere in `/home/web_user/`.
If your project folder is placed outside `/home/web_user/`, you will
@ -96,8 +87,7 @@ To import an existing project, the current process is as follows:
When you follow the steps described above, the project folder will always be
located in `/home/web_user/projects`, keeping it safe.
Editing and running a project
-----------------------------
## Editing and running a project
Unlike the native version of Pandemonium, the web editor is constrained to a single
window. Therefore, it cannot open a new window when running the project.
@ -109,8 +99,7 @@ windows (which are now "tabs"). You can switch between the **Editor** and
**Game** tabs using the buttons on the top. You can also close the running game
or editor by clicking the **×** button next to those tabs.
Where are my project files?
---------------------------
## Where are my project files?
Due to browser security limitations, the editor will save the project files to
the browser's IndexedDB storage. This storage isn't accessible as a regular folder

View File

@ -1,10 +1,8 @@
Managing editor features
========================
# Managing editor features
Introduction
------------
## Introduction
In certain situations, it may be desirable to limit what features can be used
in the Pandemonium editor. For example, a UI designer on a team who doesn't need to
@ -17,15 +15,14 @@ these features, so scenes and scripts relying on those features will still work
This also means feature profiles are not an optimization technique. For
information on how to optimize Pandemonium see `doc_optimization`.
Creating a profile
------------------
## Creating a profile
To manage editor features go to **Editor > Manage Editor Features**. This
will open the **Manage Editor Feature Profiles** window. By default there
will be no profile. Click on **Create Profile** and give it a name. You will
then see a list of all the features in the Pandemonium editor.
..img:: img/configure_profile.png)
![](img/configure_profile.png)
The first section allows major editor features to be removed, such as the 3D
editor or scripting editor. Below the main features is every class and node in
@ -33,10 +30,9 @@ Pandemonium, which can be disabled as well. Click on a node and all of its prope
and options will be listed in the **Extra Items** box, these can all be
individually disabled.
..img:: img/node_features.png)
![](img/node_features.png)
Sharing a profile
-----------------
## Sharing a profile
To share profiles between editors click on the **Export** button. Save the custom
profile somewhere as a `.profile` file. To use this in another editor open that

View File

@ -1,10 +1,8 @@
Running code in the editor
==========================
# Running code in the editor
What is `tool`?
-----------------
## What is `tool`?
`tool` is a powerful line of code that, when added at the top of your script, makes it execute in the editor. You can also decide which parts of the script execute in the editor, which in game, and which in both.
@ -14,7 +12,7 @@ You can use it for doing many things, but it is mostly useful in level design fo
- If you have jumppads with varying jump heights, you can draw the maximum jump height a player would reach if it jumped on one, also making level design easier.
- If your player doesn't use a sprite, but draws itself using code, you can make that drawing code execute in the editor to see your player.
.. DANGER::
DANGER:
`tool` scripts run inside the editor, and let you access the scene tree
of the currently edited scene. This is a powerful feature which also comes
@ -24,8 +22,7 @@ You can use it for doing many things, but it is mostly useful in level design fo
`Node.queue_free( Node_method_queue_free )`, as it can cause
crashes if you free a node while the editor runs logic involving it.
How to use it
-------------
## How to use it
To turn a script into a tool, add the keyword `tool` at the top of your code.
@ -69,8 +66,7 @@ gdscript GDScript
Note:
Modifications in editor are permanent. For example, in the following case, when we remove the script, the node will keep its rotation. Be careful to avoid making unwanted modifications.
Try it out
-----------
## Try it out
Add a `Sprite` node to your scene and set the texture to Pandemonium icon. Attach and open a script, and change it to this:
@ -105,8 +101,8 @@ gdscript GDScript
Save the script. Now the object will spin clockwise in the editor, but if you run the game, it will spin counter-clockwise.
Editing variables
-----------------
## Editing variables
Add and export a variable speed to the script. The function set_speed after "setget" is executed with your input to change the variable.
Modify `process()` to include the rotation speed.
@ -134,8 +130,7 @@ gdscript GDScript
Note:
Code from other nodes doesn't run in the editor. Your access to other nodes is limited. You can access the tree and nodes, and their default properties, but you can't access user variables. If you want to do so, other nodes have to run in the editor too. AutoLoad nodes cannot be accessed in the editor at all.
Instancing scenes
-----------------
## Instancing scenes
You can instantiate packed scenes normally and add them to the scene currently
opened in the editor. By default, nodes or scenes added with

View File

@ -1,14 +1,12 @@
Installing plugins
==================
# Installing plugins
Pandemonium features an editor plugin system with numerous plugins developed by the
community. Plugins can extend the editor's functionality with new nodes,
additional docks, convenience features, and more.
Finding plugins
~~~~~~~~~~~~~~~
### Finding plugins
The preferred way to find Pandemonium plugins is to use the
`Asset Library ( https://pandemoniumengine.org/asset-library/ )`. While it can be
@ -32,8 +30,7 @@ Note:
repository contains a `plugin.cfg` file in a folder placed in the
`addons/` folder, then it is an editor plugin.
Installing a plugin
~~~~~~~~~~~~~~~~~~~
### Installing a plugin
To install a plugin, download it as a ZIP archive. On the Asset Library, this
can be done using the **Download** button, either from the editor or using the
@ -54,8 +51,7 @@ plugin's `addons/` folder into your project folder to merge the new folder
contents with the existing one. Your file manager may ask you whether to write
into the folder; answer **Yes**. No files will be overwritten in the process.
Enabling a plugin
~~~~~~~~~~~~~~~~~
### Enabling a plugin
To enable the freshly installed plugin, open **Project > Project Settings** at
the top of the editor then go the **Plugins** tab. If the plugin was packaged

View File

@ -1,10 +1,8 @@
Making plugins
==============
# Making plugins
About plugins
~~~~~~~~~~~~~
### About plugins
A plugin is a great way to extend the editor with useful tools. It can be made
entirely with GDScript and standard scenes, without even reloading the editor.
@ -18,8 +16,7 @@ you can understand how they work and be able to develop your own. The first
will be a custom node that you can add to any scene in the project and the
other will be a custom dock added to the editor.
Creating a plugin
~~~~~~~~~~~~~~~~~
### Creating a plugin
Before starting, create a new empty project wherever you want. This will serve
as a base to develop and test the plugins.
@ -76,8 +73,7 @@ if you are unsure on how to come up with the version number, check out `Semantic
The main script file will instruct Pandemonium what your plugin does in the editor
once it is active.
The script file
^^^^^^^^^^^^^^^
#### The script file
Upon creation of the plugin, the dialog will automatically open the
EditorPlugin script for you. The script has two requirements that you cannot
@ -119,8 +115,7 @@ gdscript GDScript
This is a good template to use when creating new plugins.
A custom node
~~~~~~~~~~~~~
## A custom node
Sometimes you want a certain behavior in many nodes, such as a custom scene
or control that can be reused. Instancing is helpful in a lot of cases, but
@ -206,8 +201,7 @@ click the button, you can see some text in the console:
![](img/making_plugins-custom_node_console.png)
A custom dock
^^^^^^^^^^^^^
#### A custom dock
Sometimes, you need to extend the editor and add tools that are always available.
An easy way to do it is to add a new dock with a plugin. Docks are just scenes
@ -287,8 +281,7 @@ gdscript GDScript
Note that, while the dock will initially appear at its specified position,
the user can freely change its position and save the resulting layout.
Checking the results
^^^^^^^^^^^^^^^^^^^^
#### Checking the results
It's now time to check the results of your work. Open the **Project
Settings** and click on the **Plugins** tab. Your plugin should be the only one
@ -303,8 +296,7 @@ the settings window. You should now have a custom dock:
![](img/making_plugins-custom_dock.png)
Going beyond
~~~~~~~~~~~~
#### Going beyond
Now that you've learned how to make basic plugins, you can extend the editor in
several ways. Lots of functionality can be added to the editor with GDScript;
@ -316,9 +308,7 @@ You can make your own plugins to help yourself and share them in the
can benefit from your work.
Registering autoloads/singletons in plugins
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
### Registering autoloads/singletons in plugins
It is possible for editor plugins to automatically register
`autoloads ( doc_singletons_autoload )` when the plugin is enabled.

View File

@ -1,10 +1,8 @@
Making main screen plugins
==========================
# Making main screen plugins
What this tutorial covers
-------------------------
## What this tutorial covers
As seen in the `doc_making_plugins` page, making a basic plugin that
extends the editor is fairly easy. Main screen plugins allow you to create
@ -16,8 +14,7 @@ This tutorial leads you through the creation of a basic main screen plugin.
For the sake of simplicity, our main screen plugin will contain a single
button that prints text to the console.
Initializing the plugin
-----------------------
## Initializing the plugin
First create a new plugin from the Plugins menu. For this tutorial, we'll put
it in a folder called `main_screen`, but you can use any name you'd like.
@ -61,8 +58,7 @@ called by the editor on plugin activation, to tell it that this plugin
adds a new center view to the editor. For now, we'll leave this script
as-is and we'll come back to it later.
Main screen scene
-----------------
## Main screen scene
Create a new scene with a root node derived from `Control` (for this
example plugin, we'll make the root node a `CenterContainer`).
@ -89,8 +85,7 @@ see the `doc_signals` article.
We are done with the main screen panel. Save the scene as `main_panel.tscn`.
Update the plugin script
------------------------
## Update the plugin script
We need to update the `main_screen_plugin.gd` script so the plugin
instances our main panel scene and places it where it needs to be.
@ -163,8 +158,7 @@ allows you to handle a node type, automatically focusing the main
screen when the type is selected. This is similar to how clicking
on a 3D node will automatically switch to the 3D viewport.
Try the plugin
--------------
## Try the plugin
Activate the plugin in the Project Settings. You'll observe a new button next
to 2D, 3D, Script above the main viewport. Clicking it will take you to your

View File

@ -1,15 +1,13 @@
Import plugins
==============
# Import plugins
Note:
This tutorial assumes you already know how to make generic plugins. If
in doubt, refer to the `doc_making_plugins` page. This also
assumes you are acquainted with Pandemonium's import system.
Introduction
------------
## Introduction
An import plugin is a special type of editor tool that allows custom resources
to be imported by Pandemonium and be treated as first-class resources. The editor
@ -28,8 +26,7 @@ imported material. In this example it will contain the pure blue color
0,0,255
```
Configuration
-------------
## Configuration
First we need a generic plugin that will handle the initialization and
destruction of our import plugin. Let's add the `plugin.cfg` file first:
@ -79,8 +76,7 @@ Note that the import plugin is a reference type, so it doesn't need to be
explicitly released from memory with the `free()` function. It will be
released automatically by the engine when it goes out of scope.
The EditorImportPlugin class
----------------------------
## The EditorImportPlugin class
The main character of the show is the
`EditorImportPlugin class`. It is responsible for
@ -168,8 +164,7 @@ Note:
have to create multiple import plugins. You can abstract the import
code on another file to avoid duplication in this regard.
Options and presets
-------------------
## Options and presets
Your plugin can provide different options to allow the user to control how the
resource will be imported. If a set of selected options is common, you can also
@ -246,19 +241,15 @@ an array of dictionaries, and each dictionary contains a few keys that are
checked to customize the option as its shown to the user. The following table
shows the possible keys:
+-------------------+------------+----------------------------------------------------------------------------------------------------------+
| Key | Type | Description |
+===================+============+==========================================================================================================+
| `name` | String | The name of the option. When showed, underscores become spaces and first letters are capitalized. |
+-------------------+------------+----------------------------------------------------------------------------------------------------------+
| `default_value` | Any | The default value of the option for this preset. |
+-------------------+------------+----------------------------------------------------------------------------------------------------------+
| `property_hint` | Enum value | One of the `PropertyHint <enum_@GlobalScope_PropertyHint )` values to use as hint. |
+-------------------+------------+----------------------------------------------------------------------------------------------------------+
| `hint_string` | String | The hint text of the property. The same as you'd add in the `export` statement in GDScript. |
+-------------------+------------+----------------------------------------------------------------------------------------------------------+
| `usage` | Enum value | One of the `PropertyUsageFlags <enum_@GlobalScope_PropertyUsageFlags )` values to define the usage. |
+-------------------+------------+----------------------------------------------------------------------------------------------------------+
|-------------------|------------|----------------------------------------------------------------------------------------------------------|
| `name` | String | The name of the option. When showed, underscores become spaces and first letters are capitalized. |
| `default_value` | Any | The default value of the option for this preset. |
| `property_hint` | Enum value | One of the `PropertyHint ( enum_@GlobalScope_PropertyHint )` values to use as hint. |
| `hint_string` | String | The hint text of the property. The same as you'd add in the `export` statement in GDScript. |
| `usage` | Enum value | One of the `PropertyUsageFlags ( enum_@GlobalScope_PropertyUsageFlags )` values to define the usage. |
The `name` and `default_value` keys are **mandatory**, the rest are optional.
@ -287,8 +278,7 @@ one we defined) are visible all the time.
If you need to make certain option visible only if another is set with a certain
value, you can add the logic in this method.
The `import` method
---------------------
## The `import` method
The heavy part of the process, responsible for converting the files into
resources, is covered by the `import()`
@ -357,8 +347,7 @@ We also return the result from the
`ResourceSaver.save()` method, so if there's an
error in this step, the editor will know about it.
Platform variants and generated files
-------------------------------------
## Platform variants and generated files
You may have noticed that our plugin ignored two arguments of the `import`
method. Those are *return arguments* (hence the `r` at the beginning of their
@ -402,8 +391,7 @@ in a different file:
r_gen_files.push_back(next_pass_path)
```
Trying the plugin
-----------------
## Trying the plugin
This has been theoretical, but now that the import plugin is done, let's
test it. Make sure you created the sample file (with the contents described in

View File

@ -1,10 +1,8 @@
Spatial gizmo plugins
=====================
# Spatial gizmo plugins
Introduction
------------
## Introduction
Spatial gizmo plugins are used by the editor and custom plugins to define the
gizmos attached to any kind of Spatial node.
@ -17,8 +15,7 @@ Note:
This tutorial assumes you already know how to make generic plugins. If
in doubt, refer to the `doc_making_plugins` page.
The EditorSpatialGizmoPlugin
----------------------------
## The EditorSpatialGizmoPlugin
Regardless of the approach we choose, we will need to create a new
`EditorSpatialGizmoPlugin`. This will allow
@ -62,8 +59,7 @@ is enough. If you want to store some per-gizmo data or you are porting a Pandemo
to 3.1+, you should go with the second approach.
Simple approach
---------------
## Simple approach
The first step is to, in our custom gizmo plugin, override the `has_gizmo()( EditorSpatialGizmoPlugin_method_has_gizmo )`
method so that it returns `true` when the spatial parameter is of our target type.
@ -163,8 +159,7 @@ Note that we just added some handles in the redraw method, but we still need to
the rest of handle-related callbacks in `EditorSpatialGizmoPlugin`
to get properly working handles.
Alternative approach
--------------------
## Alternative approach
In some cases we want to provide our own implementation of `EditorSpatialGizmo( EditorSpatialGizmo )`,
maybe because we want to have some state stored in each gizmo or because we are porting

View File

@ -1,7 +1,6 @@
Inspector plugins
=================
# Inspector plugins
The inspector dock allows you to create custom widgets to edit properties
through plugins. This can be beneficial when working with custom datatypes and
@ -14,14 +13,12 @@ This guide explains how to use the `EditorInspectorPlugin` and
replacing the default behavior with a button that generates random values
between 0 and 99.
.. figure:: img/inspector_plugin_example.png)
:align: center
![](img/inspector_plugin_example.png)
The default behavior on the left and the end result on the right.
The default behavior on the left and the end result on the right.
Setting up your plugin
----------------------
## Setting up your plugin
Create a new empty plugin to get started.
@ -63,8 +60,7 @@ gdscript GDScript
```
Interacting with the inspector
------------------------------
## Interacting with the inspector
To interact with the inspector dock, your `MyInspectorPlugin.gd` script must
extend the `EditorInspectorPlugin` class. This class provides several
@ -117,8 +113,7 @@ gdscript GDScript
```
Adding an interface to edit properties
--------------------------------------
## Adding an interface to edit properties
The `EditorProperty` class is a special type of `Control`
that can interact with the inspector dock's edited objects. It doesn't display

View File

@ -1,7 +1,6 @@
Visual Shader plugins
=====================
# Visual Shader plugins
Visual Shader plugins are used to create custom `VisualShader` nodes
in GDScript.