Browse Source

classref: Sync with current 3.6 branch (46104d488)

Rémi Verschelde 2 years ago
parent
commit
b4bfc5a4b1
83 changed files with 4139 additions and 671 deletions
  1. 7 5
      classes/[email protected]
  2. 5 1
      classes/[email protected]
  3. 9 9
      classes/class_animationnode.rst
  4. 1 1
      classes/class_animationnodestatemachinetransition.rst
  5. 1 1
      classes/class_animationplayer.rst
  6. 10 1
      classes/class_audioeffectcapture.rst
  7. 5 1
      classes/class_audioserver.rst
  8. 12 0
      classes/class_audiostreammicrophone.rst
  9. 42 22
      classes/class_audiostreamplayer2d.rst
  10. 18 0
      classes/class_audiostreamplayer3d.rst
  11. 4 2
      classes/class_camera.rst
  12. 10 6
      classes/class_canvasitem.rst
  13. 3 1
      classes/class_canvaslayer.rst
  14. 4 2
      classes/class_control.rst
  15. 1 1
      classes/class_cpuparticles.rst
  16. 1 1
      classes/class_cpuparticles2d.rst
  17. 2 0
      classes/class_curve.rst
  18. 40 40
      classes/class_curve2d.rst
  19. 50 50
      classes/class_curve3d.rst
  20. 13 1
      classes/class_dictionary.rst
  21. 1 11
      classes/class_editorproperty.rst
  22. 1 1
      classes/class_editorscript.rst
  23. 1702 0
      classes/class_editorsettings.rst
  24. 4 4
      classes/class_file.rst
  25. 18 0
      classes/class_filedialog.rst
  26. 2 0
      classes/class_font.rst
  27. 3 1
      classes/class_gradient.rst
  28. 23 5
      classes/class_gradienttexture.rst
  29. 2 2
      classes/class_graphedit.rst
  30. 16 0
      classes/class_graphnode.rst
  31. 3 1
      classes/class_httpclient.rst
  32. 13 5
      classes/class_input.rst
  33. 2 2
      classes/class_inputeventkey.rst
  34. 6 6
      classes/class_inputeventwithmodifiers.rst
  35. 7 1
      classes/class_instanceplaceholder.rst
  36. 4 4
      classes/class_itemlist.rst
  37. 23 23
      classes/class_line2d.rst
  38. 120 62
      classes/class_lineedit.rst
  39. 1 1
      classes/class_mesh.rst
  40. 1 1
      classes/class_meshinstance.rst
  41. 1 1
      classes/class_multimesh.rst
  42. 5 3
      classes/class_navigation2dserver.rst
  43. 1 1
      classes/class_navigationagent.rst
  44. 1 1
      classes/class_navigationagent2d.rst
  45. 5 3
      classes/class_navigationserver.rst
  46. 6 0
      classes/class_networkedmultiplayercustom.rst
  47. 1 1
      classes/class_node.rst
  48. 1 1
      classes/class_node2d.rst
  49. 470 252
      classes/class_os.rst
  50. 2 0
      classes/class_parallaxlayer.rst
  51. 1 1
      classes/class_particlesmaterial.rst
  52. 3 1
      classes/class_physics2dserver.rst
  53. 3 1
      classes/class_physicsserver.rst
  54. 10 0
      classes/class_poolbytearray.rst
  55. 10 0
      classes/class_poolcolorarray.rst
  56. 10 0
      classes/class_poolintarray.rst
  57. 10 0
      classes/class_poolrealarray.rst
  58. 10 0
      classes/class_poolstringarray.rst
  59. 10 0
      classes/class_poolvector2array.rst
  60. 10 0
      classes/class_poolvector3array.rst
  61. 2 0
      classes/class_popupmenu.rst
  62. 2 0
      classes/class_popuppanel.rst
  63. 1 1
      classes/class_primitivemesh.rst
  64. 49 1
      classes/class_projectsettings.rst
  65. 15 15
      classes/class_resourceformatloader.rst
  66. 22 0
      classes/class_resourceinteractiveloader.rst
  67. 21 19
      classes/class_resourceloader.rst
  68. 6 0
      classes/class_scenetree.rst
  69. 3 1
      classes/class_shape2d.rst
  70. 406 0
      classes/class_shapecast.rst
  71. 376 0
      classes/class_shapecast2d.rst
  72. 1 1
      classes/class_spatial.rst
  73. 17 17
      classes/class_spatialmaterial.rst
  74. 1 1
      classes/class_sprite3d.rst
  75. 6 0
      classes/class_string.rst
  76. 60 40
      classes/class_tabs.rst
  77. 102 0
      classes/class_torusmesh.rst
  78. 97 17
      classes/class_translationserver.rst
  79. 29 10
      classes/class_upnp.rst
  80. 2 2
      classes/class_upnpdevice.rst
  81. 41 3
      classes/class_visualinstance.rst
  82. 119 1
      classes/class_visualserver.rst
  83. 1 1
      classes/class_weakref.rst

+ 7 - 5
classes/[email protected]

@@ -722,7 +722,7 @@ Returns the Object that corresponds to ``instance_id``. All Objects have a uniqu
 
 - :ref:`float<class_float>` **inverse_lerp** **(** :ref:`float<class_float>` from, :ref:`float<class_float>` to, :ref:`float<class_float>` weight **)**
 
-Returns an interpolation or extrapolation factor considering the range specified in ``from`` and ``to``, and the interpolated value specified in ``weight``. The returned value will be between ``0.0`` and ``1.0`` if ``weight`` is between ``from`` and ``to`` (inclusive). If ``weight`` is located outside this range, then an extrapolation factor will be returned (return value lower than ``0.0`` or greater than ``1.0``).
+Returns an interpolation or extrapolation factor considering the range specified in ``from`` and ``to``, and the interpolated value specified in ``weight``. The returned value will be between ``0.0`` and ``1.0`` if ``weight`` is between ``from`` and ``to`` (inclusive). If ``weight`` is located outside this range, then an extrapolation factor will be returned (return value lower than ``0.0`` or greater than ``1.0``). Use :ref:`clamp<class_@GDScript_method_clamp>` on the result of :ref:`inverse_lerp<class_@GDScript_method_inverse_lerp>` if this is not desired.
 
 ::
 
@@ -733,7 +733,7 @@ Returns an interpolation or extrapolation factor considering the range specified
     var ratio = inverse_lerp(20, 30, 27.5)
     # `ratio` is now 0.75.
 
-See also :ref:`lerp<class_@GDScript_method_lerp>` which performs the reverse of this operation.
+See also :ref:`lerp<class_@GDScript_method_lerp>` which performs the reverse of this operation, and :ref:`range_lerp<class_@GDScript_method_range_lerp>` to map a continuous series of values to another.
 
 ----
 
@@ -802,7 +802,7 @@ Returns length of Variant ``var``. Length is the character count of String, elem
 
 - :ref:`Variant<class_Variant>` **lerp** **(** :ref:`Variant<class_Variant>` from, :ref:`Variant<class_Variant>` to, :ref:`float<class_float>` weight **)**
 
-Linearly interpolates between two values by the factor defined in ``weight``. To perform interpolation, ``weight`` should be between ``0.0`` and ``1.0`` (inclusive). However, values outside this range are allowed and can be used to perform *extrapolation*.
+Linearly interpolates between two values by the factor defined in ``weight``. To perform interpolation, ``weight`` should be between ``0.0`` and ``1.0`` (inclusive). However, values outside this range are allowed and can be used to perform *extrapolation*. Use :ref:`clamp<class_@GDScript_method_clamp>` on the result of :ref:`lerp<class_@GDScript_method_lerp>` if this is not desired.
 
 If the ``from`` and ``to`` arguments are of type :ref:`int<class_int>` or :ref:`float<class_float>`, the return value is a :ref:`float<class_float>`.
 
@@ -813,7 +813,7 @@ If both are of the same vector type (:ref:`Vector2<class_Vector2>`, :ref:`Vector
     lerp(0, 4, 0.75) # Returns 3.0
     lerp(Vector2(1, 5), Vector2(3, 2), 0.5) # Returns Vector2(2, 3.5)
 
-See also :ref:`inverse_lerp<class_@GDScript_method_inverse_lerp>` which performs the reverse of this operation. To perform eased interpolation with :ref:`lerp<class_@GDScript_method_lerp>`, combine it with :ref:`ease<class_@GDScript_method_ease>` or :ref:`smoothstep<class_@GDScript_method_smoothstep>`.
+See also :ref:`inverse_lerp<class_@GDScript_method_inverse_lerp>` which performs the reverse of this operation. To perform eased interpolation with :ref:`lerp<class_@GDScript_method_lerp>`, combine it with :ref:`ease<class_@GDScript_method_ease>` or :ref:`smoothstep<class_@GDScript_method_smoothstep>`. See also :ref:`range_lerp<class_@GDScript_method_range_lerp>` to map a continuous series of values to another.
 
 ----
 
@@ -1293,12 +1293,14 @@ Output:
 
 - :ref:`float<class_float>` **range_lerp** **(** :ref:`float<class_float>` value, :ref:`float<class_float>` istart, :ref:`float<class_float>` istop, :ref:`float<class_float>` ostart, :ref:`float<class_float>` ostop **)**
 
-Maps a ``value`` from range ``[istart, istop]`` to ``[ostart, ostop]``.
+Maps a ``value`` from range ``[istart, istop]`` to ``[ostart, ostop]``. See also :ref:`lerp<class_@GDScript_method_lerp>` and :ref:`inverse_lerp<class_@GDScript_method_inverse_lerp>`. If ``value`` is outside ``[istart, istop]``, then the resulting value will also be outside ``[ostart, ostop]``. Use :ref:`clamp<class_@GDScript_method_clamp>` on the result of :ref:`range_lerp<class_@GDScript_method_range_lerp>` if this is not desired.
 
 ::
 
     range_lerp(75, 0, 100, -1, 1) # Returns 0.5
 
+For complex use cases where you need multiple ranges, consider using :ref:`Curve<class_Curve>` or :ref:`Gradient<class_Gradient>` instead.
+
 ----
 
 .. _class_@GDScript_method_round:

+ 5 - 1
classes/[email protected]

@@ -667,7 +667,7 @@ enum **KeyList**:
 
 - **KEY_TAB** = **16777218** --- Tab key.
 
-- **KEY_BACKTAB** = **16777219** --- Shift+Tab key.
+- **KEY_BACKTAB** = **16777219** --- Shift + Tab key.
 
 - **KEY_BACKSPACE** = **16777220** --- Backspace key.
 
@@ -1944,6 +1944,8 @@ Since :ref:`OK<class_@GlobalScope_constant_OK>` has value 0, and all other failu
 
 .. _class_@GlobalScope_constant_PROPERTY_HINT_IMAGE_COMPRESS_LOSSLESS:
 
+.. _class_@GlobalScope_constant_PROPERTY_HINT_LOCALE_ID:
+
 enum **PropertyHint**:
 
 - **PROPERTY_HINT_NONE** = **0** --- No hint for the edited property.
@@ -2000,6 +2002,8 @@ Unlike :ref:`PROPERTY_HINT_ENUM<class_@GlobalScope_constant_PROPERTY_HINT_ENUM>`
 
 - **PROPERTY_HINT_IMAGE_COMPRESS_LOSSLESS** = **24** --- Hints that an image is compressed using lossless compression.
 
+- **PROPERTY_HINT_LOCALE_ID** = **40** --- Hints that a string property is a locale code. Editing it will show a locale dialog for picking language and country.
+
 ----
 
 .. _enum_@GlobalScope_PropertyUsageFlags:

+ 9 - 9
classes/class_animationnode.rst

@@ -63,7 +63,7 @@ Methods
 +-------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`Array<class_Array>`           | :ref:`get_parameter_list<class_AnimationNode_method_get_parameter_list>` **(** **)** |virtual|                                                                                                                                                                                                                                                             |
 +-------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_String>`         | :ref:`has_filter<class_AnimationNode_method_has_filter>` **(** **)** |virtual|                                                                                                                                                                                                                                                                             |
+| :ref:`bool<class_bool>`             | :ref:`has_filter<class_AnimationNode_method_has_filter>` **(** **)** |virtual|                                                                                                                                                                                                                                                                             |
 +-------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`bool<class_bool>`             | :ref:`is_path_filtered<class_AnimationNode_method_is_path_filtered>` **(** :ref:`NodePath<class_NodePath>` path **)** |const|                                                                                                                                                                                                                              |
 +-------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
@@ -170,7 +170,7 @@ Blend another animation node (in case this node contains children animation node
 
 - :ref:`String<class_String>` **get_caption** **(** **)** |virtual|
 
-Gets the text caption for this node (used by some editors).
+When inheriting from :ref:`AnimationRootNode<class_AnimationRootNode>`, implement this virtual method to override the text caption for this node.
 
 ----
 
@@ -178,7 +178,7 @@ Gets the text caption for this node (used by some editors).
 
 - :ref:`Object<class_Object>` **get_child_by_name** **(** :ref:`String<class_String>` name **)** |virtual|
 
-Gets a child node by index (used by editors inheriting from :ref:`AnimationRootNode<class_AnimationRootNode>`).
+When inheriting from :ref:`AnimationRootNode<class_AnimationRootNode>`, implement this virtual method to return a child node by its ``name``.
 
 ----
 
@@ -186,7 +186,7 @@ Gets a child node by index (used by editors inheriting from :ref:`AnimationRootN
 
 - :ref:`Dictionary<class_Dictionary>` **get_child_nodes** **(** **)** |virtual|
 
-Gets all children nodes in order as a ``name: node`` dictionary. Only useful when inheriting :ref:`AnimationRootNode<class_AnimationRootNode>`.
+When inheriting from :ref:`AnimationRootNode<class_AnimationRootNode>`, implement this virtual method to return all children nodes in order as a ``name: node`` dictionary.
 
 ----
 
@@ -218,7 +218,7 @@ Gets the value of a parameter. Parameters are custom local memory used for your
 
 - :ref:`Variant<class_Variant>` **get_parameter_default_value** **(** :ref:`String<class_String>` name **)** |virtual|
 
-Gets the default value of a parameter. Parameters are custom local memory used for your nodes, given a resource can be reused in multiple trees.
+When inheriting from :ref:`AnimationRootNode<class_AnimationRootNode>`, implement this virtual method to return the default value of parameter "``name``". Parameters are custom local memory used for your nodes, given a resource can be reused in multiple trees.
 
 ----
 
@@ -226,15 +226,15 @@ Gets the default value of a parameter. Parameters are custom local memory used f
 
 - :ref:`Array<class_Array>` **get_parameter_list** **(** **)** |virtual|
 
-Gets the property information for parameter. Parameters are custom local memory used for your nodes, given a resource can be reused in multiple trees. Format is similar to :ref:`Object.get_property_list<class_Object_method_get_property_list>`.
+When inheriting from :ref:`AnimationRootNode<class_AnimationRootNode>`, implement this virtual method to return a list of the properties on this node. Parameters are custom local memory used for your nodes, given a resource can be reused in multiple trees. Format is similar to :ref:`Object.get_property_list<class_Object_method_get_property_list>`.
 
 ----
 
 .. _class_AnimationNode_method_has_filter:
 
-- :ref:`String<class_String>` **has_filter** **(** **)** |virtual|
+- :ref:`bool<class_bool>` **has_filter** **(** **)** |virtual|
 
-Returns ``true`` whether you want the blend tree editor to display filter editing on this node.
+When inheriting from :ref:`AnimationRootNode<class_AnimationRootNode>`, implement this virtual method to return whether the blend tree editor should display filter editing on this node.
 
 ----
 
@@ -250,7 +250,7 @@ Returns whether the given path is filtered.
 
 - void **process** **(** :ref:`float<class_float>` time, :ref:`bool<class_bool>` seek **)** |virtual|
 
-User-defined callback called when a custom node is processed. The ``time`` parameter is a relative delta, unless ``seek`` is ``true``, in which case it is absolute.
+When inheriting from :ref:`AnimationRootNode<class_AnimationRootNode>`, implement this virtual method to run some code when this node is processed. The ``time`` parameter is a relative delta, unless ``seek`` is ``true``, in which case it is absolute.
 
 Here, call the :ref:`blend_input<class_AnimationNode_method_blend_input>`, :ref:`blend_node<class_AnimationNode_method_blend_node>` or :ref:`blend_animation<class_AnimationNode_method_blend_animation>` functions. You can also use :ref:`get_parameter<class_AnimationNode_method_get_parameter>` and :ref:`set_parameter<class_AnimationNode_method_set_parameter>` to modify local memory.
 

+ 1 - 1
classes/class_animationnodestatemachinetransition.rst

@@ -79,7 +79,7 @@ Property Descriptions
 | *Getter*  | get_advance_condition()      |
 +-----------+------------------------------+
 
-Turn on auto advance when this condition is set. The provided name will become a boolean parameter on the :ref:`AnimationTree<class_AnimationTree>` that can be controlled from code (see `#controlling-from-code <../tutorials/animation/animation_tree.html#controlling-from-code>`__ in :doc:`../tutorials/animation/animation_tree`). For example, if :ref:`AnimationTree.tree_root<class_AnimationTree_property_tree_root>` is an :ref:`AnimationNodeStateMachine<class_AnimationNodeStateMachine>` and :ref:`advance_condition<class_AnimationNodeStateMachineTransition_property_advance_condition>` is set to ``"idle"``:
+Turn on auto advance when this condition is set. The provided name will become a boolean parameter on the :ref:`AnimationTree<class_AnimationTree>` that can be controlled from code (see `Using AnimationTree <../tutorials/animation/animation_tree.html#controlling-from-code>`__). For example, if :ref:`AnimationTree.tree_root<class_AnimationTree_property_tree_root>` is an :ref:`AnimationNodeStateMachine<class_AnimationNodeStateMachine>` and :ref:`advance_condition<class_AnimationNodeStateMachineTransition_property_advance_condition>` is set to ``"idle"``:
 
 ::
 

+ 1 - 1
classes/class_animationplayer.rst

@@ -426,7 +426,7 @@ Returns the name of ``animation`` or an empty string if not found.
 
 - :ref:`Animation<class_Animation>` **get_animation** **(** :ref:`String<class_String>` name **)** |const|
 
-Returns the :ref:`Animation<class_Animation>` with key ``name`` or ``null`` if not found.
+Returns the :ref:`Animation<class_Animation>` with the key ``name``. If the animation does not exist, ``null`` is returned and an error is logged.
 
 ----
 

+ 10 - 1
classes/class_audioeffectcapture.rst

@@ -19,7 +19,16 @@ Description
 
 AudioEffectCapture is an AudioEffect which copies all audio frames from the attached audio effect bus into its internal ring buffer.
 
-Application code should consume these audio frames from this ring buffer using :ref:`get_buffer<class_AudioEffectCapture_method_get_buffer>` and process it as needed, for example to capture data from a microphone, implement application defined effects, or to transmit audio over the network. When capturing audio data from a microphone, the format of the samples will be stereo 32-bit floating point PCM.
+Application code should consume these audio frames from this ring buffer using :ref:`get_buffer<class_AudioEffectCapture_method_get_buffer>` and process it as needed, for example to capture data from an :ref:`AudioStreamMicrophone<class_AudioStreamMicrophone>`, implement application-defined effects, or to transmit audio over the network. When capturing audio data from a microphone, the format of the samples will be stereo 32-bit floating point PCM.
+
+\ **Note:** :ref:`ProjectSettings.audio/enable_audio_input<class_ProjectSettings_property_audio/enable_audio_input>` must be ``true`` for audio input to work. See also that setting's description for caveats related to permissions and operating system privacy settings.
+
+Tutorials
+---------
+
+- :doc:`Audio buses <../tutorials/audio/audio_buses>`
+
+- `Audio Mic Record Demo <https://github.com/godotengine/godot-demo-projects/tree/master/audio/mic_record>`__
 
 Properties
 ----------

+ 5 - 1
classes/class_audioserver.rst

@@ -187,7 +187,9 @@ Number of available audio buses.
 | *Getter*  | capture_get_device()      |
 +-----------+---------------------------+
 
-Name of the current device for audio input (see :ref:`get_device_list<class_AudioServer_method_get_device_list>`). On systems with multiple audio inputs (such as analog, USB and HDMI audio), this can be used to select the audio input device. The value ``"Default"`` will record audio on the system-wide default audio input. If an invalid device name is set, the value will be reverted back to ``"Default"``.
+Name of the current device for audio input (see :ref:`capture_get_device_list<class_AudioServer_method_capture_get_device_list>`). On systems with multiple audio inputs (such as analog, USB and HDMI audio), this can be used to select the audio input device. The value ``"Default"`` will record audio on the system-wide default audio input. If an invalid device name is set, the value will be reverted back to ``"Default"``.
+
+\ **Note:** :ref:`ProjectSettings.audio/enable_audio_input<class_ProjectSettings_property_audio/enable_audio_input>` must be ``true`` for audio input to work. See also that setting's description for caveats related to permissions and operating system privacy settings.
 
 ----
 
@@ -246,6 +248,8 @@ Adds an :ref:`AudioEffect<class_AudioEffect>` effect to the bus ``bus_idx`` at `
 
 Returns the names of all audio input devices detected on the system.
 
+\ **Note:** :ref:`ProjectSettings.audio/enable_audio_input<class_ProjectSettings_property_audio/enable_audio_input>` must be ``true`` for audio input to work. See also that setting's description for caveats related to permissions and operating system privacy settings.
+
 ----
 
 .. _class_AudioServer_method_generate_bus_layout:

+ 12 - 0
classes/class_audiostreammicrophone.rst

@@ -12,7 +12,19 @@ AudioStreamMicrophone
 
 **Inherits:** :ref:`AudioStream<class_AudioStream>` **<** :ref:`Resource<class_Resource>` **<** :ref:`Reference<class_Reference>` **<** :ref:`Object<class_Object>`
 
+Plays real-time audio input data.
 
+Description
+-----------
+
+When used directly in an :ref:`AudioStreamPlayer<class_AudioStreamPlayer>` node, ``AudioStreamMicrophone`` plays back microphone input in real-time. This can be used in conjunction with :ref:`AudioEffectCapture<class_AudioEffectCapture>` to process the data or save it.
+
+\ **Note:** :ref:`ProjectSettings.audio/enable_audio_input<class_ProjectSettings_property_audio/enable_audio_input>` must be ``true`` for audio input to work. See also that setting's description for caveats related to permissions and operating system privacy settings.
+
+Tutorials
+---------
+
+- `Audio Mic Record Demo <https://github.com/godotengine/godot-demo-projects/tree/master/audio/mic_record>`__
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`

+ 42 - 22
classes/class_audiostreamplayer2d.rst

@@ -17,7 +17,9 @@ Plays positional sound in 2D space.
 Description
 -----------
 
-Plays audio that dampens with distance from screen center.
+Plays audio that dampens with distance from a given position.
+
+By default, audio is heard from the screen center. This can be changed by adding a :ref:`Listener2D<class_Listener2D>` node to the scene and enabling it by calling :ref:`Listener2D.make_current<class_Listener2D_method_make_current>` on it.
 
 See also :ref:`AudioStreamPlayer<class_AudioStreamPlayer>` to play a sound non-positionally.
 
@@ -31,27 +33,29 @@ Tutorials
 Properties
 ----------
 
-+---------------------------------------+------------------------------------------------------------------------+--------------+
-| :ref:`int<class_int>`                 | :ref:`area_mask<class_AudioStreamPlayer2D_property_area_mask>`         | ``1``        |
-+---------------------------------------+------------------------------------------------------------------------+--------------+
-| :ref:`float<class_float>`             | :ref:`attenuation<class_AudioStreamPlayer2D_property_attenuation>`     | ``1.0``      |
-+---------------------------------------+------------------------------------------------------------------------+--------------+
-| :ref:`bool<class_bool>`               | :ref:`autoplay<class_AudioStreamPlayer2D_property_autoplay>`           | ``false``    |
-+---------------------------------------+------------------------------------------------------------------------+--------------+
-| :ref:`String<class_String>`           | :ref:`bus<class_AudioStreamPlayer2D_property_bus>`                     | ``"Master"`` |
-+---------------------------------------+------------------------------------------------------------------------+--------------+
-| :ref:`float<class_float>`             | :ref:`max_distance<class_AudioStreamPlayer2D_property_max_distance>`   | ``2000.0``   |
-+---------------------------------------+------------------------------------------------------------------------+--------------+
-| :ref:`float<class_float>`             | :ref:`pitch_scale<class_AudioStreamPlayer2D_property_pitch_scale>`     | ``1.0``      |
-+---------------------------------------+------------------------------------------------------------------------+--------------+
-| :ref:`bool<class_bool>`               | :ref:`playing<class_AudioStreamPlayer2D_property_playing>`             | ``false``    |
-+---------------------------------------+------------------------------------------------------------------------+--------------+
-| :ref:`AudioStream<class_AudioStream>` | :ref:`stream<class_AudioStreamPlayer2D_property_stream>`               |              |
-+---------------------------------------+------------------------------------------------------------------------+--------------+
-| :ref:`bool<class_bool>`               | :ref:`stream_paused<class_AudioStreamPlayer2D_property_stream_paused>` | ``false``    |
-+---------------------------------------+------------------------------------------------------------------------+--------------+
-| :ref:`float<class_float>`             | :ref:`volume_db<class_AudioStreamPlayer2D_property_volume_db>`         | ``0.0``      |
-+---------------------------------------+------------------------------------------------------------------------+--------------+
++---------------------------------------+------------------------------------------------------------------------------+--------------+
+| :ref:`int<class_int>`                 | :ref:`area_mask<class_AudioStreamPlayer2D_property_area_mask>`               | ``1``        |
++---------------------------------------+------------------------------------------------------------------------------+--------------+
+| :ref:`float<class_float>`             | :ref:`attenuation<class_AudioStreamPlayer2D_property_attenuation>`           | ``1.0``      |
++---------------------------------------+------------------------------------------------------------------------------+--------------+
+| :ref:`bool<class_bool>`               | :ref:`autoplay<class_AudioStreamPlayer2D_property_autoplay>`                 | ``false``    |
++---------------------------------------+------------------------------------------------------------------------------+--------------+
+| :ref:`String<class_String>`           | :ref:`bus<class_AudioStreamPlayer2D_property_bus>`                           | ``"Master"`` |
++---------------------------------------+------------------------------------------------------------------------------+--------------+
+| :ref:`float<class_float>`             | :ref:`max_distance<class_AudioStreamPlayer2D_property_max_distance>`         | ``2000.0``   |
++---------------------------------------+------------------------------------------------------------------------------+--------------+
+| :ref:`float<class_float>`             | :ref:`panning_strength<class_AudioStreamPlayer2D_property_panning_strength>` | ``1.0``      |
++---------------------------------------+------------------------------------------------------------------------------+--------------+
+| :ref:`float<class_float>`             | :ref:`pitch_scale<class_AudioStreamPlayer2D_property_pitch_scale>`           | ``1.0``      |
++---------------------------------------+------------------------------------------------------------------------------+--------------+
+| :ref:`bool<class_bool>`               | :ref:`playing<class_AudioStreamPlayer2D_property_playing>`                   | ``false``    |
++---------------------------------------+------------------------------------------------------------------------------+--------------+
+| :ref:`AudioStream<class_AudioStream>` | :ref:`stream<class_AudioStreamPlayer2D_property_stream>`                     |              |
++---------------------------------------+------------------------------------------------------------------------------+--------------+
+| :ref:`bool<class_bool>`               | :ref:`stream_paused<class_AudioStreamPlayer2D_property_stream_paused>`       | ``false``    |
++---------------------------------------+------------------------------------------------------------------------------+--------------+
+| :ref:`float<class_float>`             | :ref:`volume_db<class_AudioStreamPlayer2D_property_volume_db>`               | ``0.0``      |
++---------------------------------------+------------------------------------------------------------------------------+--------------+
 
 Methods
 -------
@@ -162,6 +166,22 @@ Maximum distance from which audio is still hearable.
 
 ----
 
+.. _class_AudioStreamPlayer2D_property_panning_strength:
+
+- :ref:`float<class_float>` **panning_strength**
+
++-----------+-----------------------------+
+| *Default* | ``1.0``                     |
++-----------+-----------------------------+
+| *Setter*  | set_panning_strength(value) |
++-----------+-----------------------------+
+| *Getter*  | get_panning_strength()      |
++-----------+-----------------------------+
+
+Scales the panning strength for this node by multiplying the base :ref:`ProjectSettings.audio/2d_panning_strength<class_ProjectSettings_property_audio/2d_panning_strength>` with this factor. Higher values will pan audio from left to right more dramatically than lower values.
+
+----
+
 .. _class_AudioStreamPlayer2D_property_pitch_scale:
 
 - :ref:`float<class_float>` **pitch_scale**

+ 18 - 0
classes/class_audiostreamplayer3d.rst

@@ -60,6 +60,8 @@ Properties
 +--------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+--------------+
 | :ref:`OutOfRangeMode<enum_AudioStreamPlayer3D_OutOfRangeMode>`     | :ref:`out_of_range_mode<class_AudioStreamPlayer3D_property_out_of_range_mode>`                                       | ``0``        |
 +--------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+--------------+
+| :ref:`float<class_float>`                                          | :ref:`panning_strength<class_AudioStreamPlayer3D_property_panning_strength>`                                         | ``1.0``      |
++--------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+--------------+
 | :ref:`float<class_float>`                                          | :ref:`pitch_scale<class_AudioStreamPlayer3D_property_pitch_scale>`                                                   | ``1.0``      |
 +--------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+--------------+
 | :ref:`bool<class_bool>`                                            | :ref:`playing<class_AudioStreamPlayer3D_property_playing>`                                                           | ``false``    |
@@ -367,6 +369,22 @@ Decides if audio should pause when source is outside of :ref:`max_distance<class
 
 ----
 
+.. _class_AudioStreamPlayer3D_property_panning_strength:
+
+- :ref:`float<class_float>` **panning_strength**
+
++-----------+-----------------------------+
+| *Default* | ``1.0``                     |
++-----------+-----------------------------+
+| *Setter*  | set_panning_strength(value) |
++-----------+-----------------------------+
+| *Getter*  | get_panning_strength()      |
++-----------+-----------------------------+
+
+Scales the panning strength for this node by multiplying the base :ref:`ProjectSettings.audio/3d_panning_strength<class_ProjectSettings_property_audio/3d_panning_strength>` with this factor. Higher values will pan audio from left to right more dramatically than lower values.
+
+----
+
 .. _class_AudioStreamPlayer3D_property_pitch_scale:
 
 - :ref:`float<class_float>` **pitch_scale**

+ 4 - 2
classes/class_camera.rst

@@ -270,6 +270,8 @@ For reference, the default vertical field of view value (``70.0``) is equivalent
 
 The camera's frustum offset. This can be changed from the default to create "tilted frustum" effects such as `Y-shearing <https://zdoom.org/wiki/Y-shearing>`__.
 
+\ **Note:** Only effective if :ref:`projection<class_Camera_property_projection>` is :ref:`PROJECTION_FRUSTUM<class_Camera_constant_PROJECTION_FRUSTUM>`.
+
 ----
 
 .. _class_Camera_property_h_offset:
@@ -348,7 +350,7 @@ The camera's projection mode. In :ref:`PROJECTION_PERSPECTIVE<class_Camera_const
 | *Getter*  | get_size()      |
 +-----------+-----------------+
 
-The camera's size measured as 1/2 the width or height. Only applicable in orthogonal and frustum modes. Since :ref:`keep_aspect<class_Camera_property_keep_aspect>` locks on axis, ``size`` sets the other axis' size length.
+The camera's size in meters measured as the diameter of the width or height, depending on :ref:`keep_aspect<class_Camera_property_keep_aspect>`. Only applicable in orthogonal and frustum modes.
 
 ----
 
@@ -471,7 +473,7 @@ Enables or disables the given ``layer`` in the :ref:`cull_mask<class_Camera_prop
 
 - void **set_frustum** **(** :ref:`float<class_float>` size, :ref:`Vector2<class_Vector2>` offset, :ref:`float<class_float>` z_near, :ref:`float<class_float>` z_far **)**
 
-Sets the camera projection to frustum mode (see :ref:`PROJECTION_FRUSTUM<class_Camera_constant_PROJECTION_FRUSTUM>`), by specifying a ``size``, an ``offset``, and the ``z_near`` and ``z_far`` clip planes in world space units.
+Sets the camera projection to frustum mode (see :ref:`PROJECTION_FRUSTUM<class_Camera_constant_PROJECTION_FRUSTUM>`), by specifying a ``size``, an ``offset``, and the ``z_near`` and ``z_far`` clip planes in world space units. See also :ref:`frustum_offset<class_Camera_property_frustum_offset>`.
 
 ----
 

+ 10 - 6
classes/class_canvasitem.rst

@@ -21,7 +21,7 @@ Description
 
 Base class of anything 2D. Canvas items are laid out in a tree; children inherit and extend their parent's transform. ``CanvasItem`` is extended by :ref:`Control<class_Control>` for anything GUI-related, and by :ref:`Node2D<class_Node2D>` for anything related to the 2D engine.
 
-Any ``CanvasItem`` can draw. For this, :ref:`update<class_CanvasItem_method_update>` must be called, then :ref:`NOTIFICATION_DRAW<class_CanvasItem_constant_NOTIFICATION_DRAW>` will be received on idle time to request redraw. Because of this, canvas items don't need to be redrawn on every frame, improving the performance significantly. Several functions for drawing on the ``CanvasItem`` are provided (see ``draw_*`` functions). However, they can only be used inside the :ref:`Object._notification<class_Object_method__notification>`, signal or :ref:`_draw<class_CanvasItem_method__draw>` virtual functions.
+Any ``CanvasItem`` can draw. For this, :ref:`update<class_CanvasItem_method_update>` is called by the engine, then :ref:`NOTIFICATION_DRAW<class_CanvasItem_constant_NOTIFICATION_DRAW>` will be received on idle time to request redraw. Because of this, canvas items don't need to be redrawn on every frame, improving the performance significantly. Several functions for drawing on the ``CanvasItem`` are provided (see ``draw_*`` functions). However, they can only be used inside :ref:`_draw<class_CanvasItem_method__draw>`, its corresponding :ref:`Object._notification<class_Object_method__notification>` or methods connected to the :ref:`draw<class_CanvasItem_signal_draw>` signal.
 
 Canvas items are drawn in tree order. By default, children are on top of their parents so a root ``CanvasItem`` will be drawn behind everything. This behavior can be changed on a per-item basis.
 
@@ -165,7 +165,9 @@ Signals
 
 - **draw** **(** **)**
 
-Emitted when the ``CanvasItem`` must redraw. This can only be connected realtime, as deferred will not allow drawing.
+Emitted when the ``CanvasItem`` must redraw, *after* the related :ref:`NOTIFICATION_DRAW<class_CanvasItem_constant_NOTIFICATION_DRAW>` notification, and *before* :ref:`_draw<class_CanvasItem_method__draw>` is called.
+
+\ **Note:** Deferred connections do not allow drawing through the ``draw_*`` methods.
 
 ----
 
@@ -241,7 +243,7 @@ Constants
 
 - **NOTIFICATION_LOCAL_TRANSFORM_CHANGED** = **35** --- The ``CanvasItem``'s local transform has changed. This notification is only received if enabled by :ref:`set_notify_local_transform<class_CanvasItem_method_set_notify_local_transform>`.
 
-- **NOTIFICATION_DRAW** = **30** --- The ``CanvasItem`` is requested to draw.
+- **NOTIFICATION_DRAW** = **30** --- The ``CanvasItem`` is requested to draw (see :ref:`_draw<class_CanvasItem_method__draw>`).
 
 - **NOTIFICATION_VISIBILITY_CHANGED** = **31** --- The ``CanvasItem``'s visibility has changed.
 
@@ -377,7 +379,9 @@ Method Descriptions
 
 - void **_draw** **(** **)** |virtual|
 
-Overridable function called by the engine (if defined) to draw the canvas item.
+Called when ``CanvasItem`` has been requested to redraw (when :ref:`update<class_CanvasItem_method_update>` is called, either manually or by the engine).
+
+Corresponds to the :ref:`NOTIFICATION_DRAW<class_CanvasItem_constant_NOTIFICATION_DRAW>` notification in :ref:`Object._notification<class_Object_method__notification>`.
 
 ----
 
@@ -719,7 +723,7 @@ Returns ``true`` if global transform notifications are communicated to children.
 
 - :ref:`bool<class_bool>` **is_visible_in_tree** **(** **)** |const|
 
-Returns ``true`` if the node is present in the :ref:`SceneTree<class_SceneTree>`, its :ref:`visible<class_CanvasItem_property_visible>` property is ``true`` and all its antecedents are also visible. If any antecedent is hidden, this node will not be visible in the scene tree.
+Returns ``true`` if the node is present in the :ref:`SceneTree<class_SceneTree>`, its :ref:`visible<class_CanvasItem_property_visible>` property is ``true`` and all its antecedents are also visible. If any antecedent is hidden, this node will not be visible in the scene tree, and is consequently not drawn (see :ref:`_draw<class_CanvasItem_method__draw>`).
 
 ----
 
@@ -775,7 +779,7 @@ Show the ``CanvasItem`` if it's currently hidden. This is equivalent to setting
 
 - void **update** **(** **)**
 
-Queue the ``CanvasItem`` for update. :ref:`NOTIFICATION_DRAW<class_CanvasItem_constant_NOTIFICATION_DRAW>` will be called on idle time to request redraw.
+Queues the ``CanvasItem`` to redraw. During idle time, if ``CanvasItem`` is visible, :ref:`NOTIFICATION_DRAW<class_CanvasItem_constant_NOTIFICATION_DRAW>` is sent and :ref:`_draw<class_CanvasItem_method__draw>` is called. This only occurs **once** per frame, even if this method has been called multiple times.
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`

+ 3 - 1
classes/class_canvaslayer.rst

@@ -104,7 +104,9 @@ The custom :ref:`Viewport<class_Viewport>` node assigned to the ``CanvasLayer``.
 | *Getter*  | is_following_viewport()    |
 +-----------+----------------------------+
 
-Sets the layer to follow the viewport in order to simulate a pseudo 3D effect.
+If enabled, the ``CanvasLayer`` will use the viewport's transform, so it will move when camera moves instead of being anchored in a fixed position on the screen.
+
+Together with :ref:`follow_viewport_scale<class_CanvasLayer_property_follow_viewport_scale>` it can be used for a pseudo 3D effect.
 
 ----
 

+ 4 - 2
classes/class_control.rst

@@ -818,7 +818,7 @@ Tells Godot which node it should give keyboard focus to if the user presses the
 | *Getter*  | get_focus_next()      |
 +-----------+-----------------------+
 
-Tells Godot which node it should give keyboard focus to if the user presses Tab on a keyboard by default. You can change the key by editing the ``ui_focus_next`` input action.
+Tells Godot which node it should give keyboard focus to if the user presses :kbd:`Tab` on a keyboard by default. You can change the key by editing the ``ui_focus_next`` input action.
 
 If this property is not set, Godot will select a "best guess" based on surrounding nodes in the scene tree.
 
@@ -836,7 +836,7 @@ If this property is not set, Godot will select a "best guess" based on surroundi
 | *Getter*  | get_focus_previous()      |
 +-----------+---------------------------+
 
-Tells Godot which node it should give keyboard focus to if the user presses Shift+Tab on a keyboard by default. You can change the key by editing the ``ui_focus_prev`` input action.
+Tells Godot which node it should give keyboard focus to if the user presses :kbd:`Shift + Tab` on a keyboard by default. You can change the key by editing the ``ui_focus_prev`` input action.
 
 If this property is not set, Godot will select a "best guess" based on surrounding nodes in the scene tree.
 
@@ -1697,6 +1697,8 @@ Creates an :ref:`InputEventMouseButton<class_InputEventMouseButton>` that attemp
 
 Steal the focus from another control and become the focused control (see :ref:`focus_mode<class_Control_property_focus_mode>`).
 
+\ **Note**: Using this method together with :ref:`Object.call_deferred<class_Object_method_call_deferred>` makes it more reliable, especially when called inside :ref:`Node._ready<class_Node_method__ready>`.
+
 ----
 
 .. _class_Control_method_has_color:

+ 1 - 1
classes/class_cpuparticles.rst

@@ -1273,7 +1273,7 @@ Emission lifetime randomness ratio.
 | *Getter*  | get_param()      |
 +-----------+------------------+
 
-Initial scale applied to each particle.
+Initial scale applied to each particle. This can be set to a negative value to flip the particle on all axes.
 
 ----
 

+ 1 - 1
classes/class_cpuparticles2d.rst

@@ -1158,7 +1158,7 @@ Emission lifetime randomness ratio.
 | *Getter*  | get_param()      |
 +-----------+------------------+
 
-Initial scale applied to each particle.
+Initial scale applied to each particle. This can be set to a negative value to flip the particle on both axes.
 
 ----
 

+ 2 - 0
classes/class_curve.rst

@@ -19,6 +19,8 @@ Description
 
 A curve that can be saved and re-used for other objects. By default, it ranges between ``0`` and ``1`` on the Y axis and positions points relative to the ``0.5`` Y position.
 
+See also :ref:`Gradient<class_Gradient>` which is designed for color interpolation. See also :ref:`Curve2D<class_Curve2D>` and :ref:`Curve3D<class_Curve3D>`.
+
 Properties
 ----------
 

+ 40 - 40
classes/class_curve2d.rst

@@ -31,43 +31,43 @@ Properties
 Methods
 -------
 
-+-------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                            | :ref:`add_point<class_Curve2D_method_add_point>` **(** :ref:`Vector2<class_Vector2>` position, :ref:`Vector2<class_Vector2>` in=Vector2( 0, 0 ), :ref:`Vector2<class_Vector2>` out=Vector2( 0, 0 ), :ref:`int<class_int>` at_position=-1 **)** |
-+-------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                            | :ref:`clear_points<class_Curve2D_method_clear_points>` **(** **)**                                                                                                                                                                             |
-+-------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                       | :ref:`get_baked_length<class_Curve2D_method_get_baked_length>` **(** **)** |const|                                                                                                                                                             |
-+-------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`PoolVector2Array<class_PoolVector2Array>` | :ref:`get_baked_points<class_Curve2D_method_get_baked_points>` **(** **)** |const|                                                                                                                                                             |
-+-------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                       | :ref:`get_closest_offset<class_Curve2D_method_get_closest_offset>` **(** :ref:`Vector2<class_Vector2>` to_point **)** |const|                                                                                                                  |
-+-------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Vector2<class_Vector2>`                   | :ref:`get_closest_point<class_Curve2D_method_get_closest_point>` **(** :ref:`Vector2<class_Vector2>` to_point **)** |const|                                                                                                                    |
-+-------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                           | :ref:`get_point_count<class_Curve2D_method_get_point_count>` **(** **)** |const|                                                                                                                                                               |
-+-------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Vector2<class_Vector2>`                   | :ref:`get_point_in<class_Curve2D_method_get_point_in>` **(** :ref:`int<class_int>` idx **)** |const|                                                                                                                                           |
-+-------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Vector2<class_Vector2>`                   | :ref:`get_point_out<class_Curve2D_method_get_point_out>` **(** :ref:`int<class_int>` idx **)** |const|                                                                                                                                         |
-+-------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Vector2<class_Vector2>`                   | :ref:`get_point_position<class_Curve2D_method_get_point_position>` **(** :ref:`int<class_int>` idx **)** |const|                                                                                                                               |
-+-------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Vector2<class_Vector2>`                   | :ref:`interpolate<class_Curve2D_method_interpolate>` **(** :ref:`int<class_int>` idx, :ref:`float<class_float>` t **)** |const|                                                                                                                |
-+-------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Vector2<class_Vector2>`                   | :ref:`interpolate_baked<class_Curve2D_method_interpolate_baked>` **(** :ref:`float<class_float>` offset, :ref:`bool<class_bool>` cubic=false **)** |const|                                                                                     |
-+-------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Vector2<class_Vector2>`                   | :ref:`interpolatef<class_Curve2D_method_interpolatef>` **(** :ref:`float<class_float>` fofs **)** |const|                                                                                                                                      |
-+-------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                            | :ref:`remove_point<class_Curve2D_method_remove_point>` **(** :ref:`int<class_int>` idx **)**                                                                                                                                                   |
-+-------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                            | :ref:`set_point_in<class_Curve2D_method_set_point_in>` **(** :ref:`int<class_int>` idx, :ref:`Vector2<class_Vector2>` position **)**                                                                                                           |
-+-------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                            | :ref:`set_point_out<class_Curve2D_method_set_point_out>` **(** :ref:`int<class_int>` idx, :ref:`Vector2<class_Vector2>` position **)**                                                                                                         |
-+-------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                            | :ref:`set_point_position<class_Curve2D_method_set_point_position>` **(** :ref:`int<class_int>` idx, :ref:`Vector2<class_Vector2>` position **)**                                                                                               |
-+-------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`PoolVector2Array<class_PoolVector2Array>` | :ref:`tessellate<class_Curve2D_method_tessellate>` **(** :ref:`int<class_int>` max_stages=5, :ref:`float<class_float>` tolerance_degrees=4 **)** |const|                                                                                       |
-+-------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
++-------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                            | :ref:`add_point<class_Curve2D_method_add_point>` **(** :ref:`Vector2<class_Vector2>` position, :ref:`Vector2<class_Vector2>` in=Vector2( 0, 0 ), :ref:`Vector2<class_Vector2>` out=Vector2( 0, 0 ), :ref:`int<class_int>` index=-1 **)** |
++-------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                            | :ref:`clear_points<class_Curve2D_method_clear_points>` **(** **)**                                                                                                                                                                       |
++-------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                       | :ref:`get_baked_length<class_Curve2D_method_get_baked_length>` **(** **)** |const|                                                                                                                                                       |
++-------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`PoolVector2Array<class_PoolVector2Array>` | :ref:`get_baked_points<class_Curve2D_method_get_baked_points>` **(** **)** |const|                                                                                                                                                       |
++-------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                       | :ref:`get_closest_offset<class_Curve2D_method_get_closest_offset>` **(** :ref:`Vector2<class_Vector2>` to_point **)** |const|                                                                                                            |
++-------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Vector2<class_Vector2>`                   | :ref:`get_closest_point<class_Curve2D_method_get_closest_point>` **(** :ref:`Vector2<class_Vector2>` to_point **)** |const|                                                                                                              |
++-------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                           | :ref:`get_point_count<class_Curve2D_method_get_point_count>` **(** **)** |const|                                                                                                                                                         |
++-------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Vector2<class_Vector2>`                   | :ref:`get_point_in<class_Curve2D_method_get_point_in>` **(** :ref:`int<class_int>` idx **)** |const|                                                                                                                                     |
++-------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Vector2<class_Vector2>`                   | :ref:`get_point_out<class_Curve2D_method_get_point_out>` **(** :ref:`int<class_int>` idx **)** |const|                                                                                                                                   |
++-------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Vector2<class_Vector2>`                   | :ref:`get_point_position<class_Curve2D_method_get_point_position>` **(** :ref:`int<class_int>` idx **)** |const|                                                                                                                         |
++-------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Vector2<class_Vector2>`                   | :ref:`interpolate<class_Curve2D_method_interpolate>` **(** :ref:`int<class_int>` idx, :ref:`float<class_float>` t **)** |const|                                                                                                          |
++-------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Vector2<class_Vector2>`                   | :ref:`interpolate_baked<class_Curve2D_method_interpolate_baked>` **(** :ref:`float<class_float>` offset, :ref:`bool<class_bool>` cubic=false **)** |const|                                                                               |
++-------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Vector2<class_Vector2>`                   | :ref:`interpolatef<class_Curve2D_method_interpolatef>` **(** :ref:`float<class_float>` fofs **)** |const|                                                                                                                                |
++-------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                            | :ref:`remove_point<class_Curve2D_method_remove_point>` **(** :ref:`int<class_int>` idx **)**                                                                                                                                             |
++-------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                            | :ref:`set_point_in<class_Curve2D_method_set_point_in>` **(** :ref:`int<class_int>` idx, :ref:`Vector2<class_Vector2>` position **)**                                                                                                     |
++-------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                            | :ref:`set_point_out<class_Curve2D_method_set_point_out>` **(** :ref:`int<class_int>` idx, :ref:`Vector2<class_Vector2>` position **)**                                                                                                   |
++-------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                            | :ref:`set_point_position<class_Curve2D_method_set_point_position>` **(** :ref:`int<class_int>` idx, :ref:`Vector2<class_Vector2>` position **)**                                                                                         |
++-------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`PoolVector2Array<class_PoolVector2Array>` | :ref:`tessellate<class_Curve2D_method_tessellate>` **(** :ref:`int<class_int>` max_stages=5, :ref:`float<class_float>` tolerance_degrees=4 **)** |const|                                                                                 |
++-------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 
 Property Descriptions
 ---------------------
@@ -91,11 +91,11 @@ Method Descriptions
 
 .. _class_Curve2D_method_add_point:
 
-- void **add_point** **(** :ref:`Vector2<class_Vector2>` position, :ref:`Vector2<class_Vector2>` in=Vector2( 0, 0 ), :ref:`Vector2<class_Vector2>` out=Vector2( 0, 0 ), :ref:`int<class_int>` at_position=-1 **)**
+- void **add_point** **(** :ref:`Vector2<class_Vector2>` position, :ref:`Vector2<class_Vector2>` in=Vector2( 0, 0 ), :ref:`Vector2<class_Vector2>` out=Vector2( 0, 0 ), :ref:`int<class_int>` index=-1 **)**
 
-Adds a point to a curve at ``position`` relative to the ``Curve2D``'s position, with control points ``in`` and ``out``.
+Adds a point with the specified ``position`` relative to the curve's own position, with control points ``in`` and ``out``. Appends the new point at the end of the point list.
 
-If ``at_position`` is given, the point is inserted before the point number ``at_position``, moving that point (and every point after) after the inserted point. If ``at_position`` is not given, or is an illegal value (``at_position <0`` or ``at_position >= [method get_point_count]``), the point will be appended at the end of the point list.
+If ``index`` is given, the new point is inserted before the existing point identified by index ``index``. Every existing point starting from ``index`` is shifted further down the list of points. The index must be greater than or equal to ``0`` and must not exceed the number of existing points in the line. See :ref:`get_point_count<class_Curve2D_method_get_point_count>`.
 
 ----
 

+ 50 - 50
classes/class_curve3d.rst

@@ -33,53 +33,53 @@ Properties
 Methods
 -------
 
-+-------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                            | :ref:`add_point<class_Curve3D_method_add_point>` **(** :ref:`Vector3<class_Vector3>` position, :ref:`Vector3<class_Vector3>` in=Vector3( 0, 0, 0 ), :ref:`Vector3<class_Vector3>` out=Vector3( 0, 0, 0 ), :ref:`int<class_int>` at_position=-1 **)** |
-+-------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                            | :ref:`clear_points<class_Curve3D_method_clear_points>` **(** **)**                                                                                                                                                                                   |
-+-------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                       | :ref:`get_baked_length<class_Curve3D_method_get_baked_length>` **(** **)** |const|                                                                                                                                                                   |
-+-------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`PoolVector3Array<class_PoolVector3Array>` | :ref:`get_baked_points<class_Curve3D_method_get_baked_points>` **(** **)** |const|                                                                                                                                                                   |
-+-------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`PoolRealArray<class_PoolRealArray>`       | :ref:`get_baked_tilts<class_Curve3D_method_get_baked_tilts>` **(** **)** |const|                                                                                                                                                                     |
-+-------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`PoolVector3Array<class_PoolVector3Array>` | :ref:`get_baked_up_vectors<class_Curve3D_method_get_baked_up_vectors>` **(** **)** |const|                                                                                                                                                           |
-+-------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                       | :ref:`get_closest_offset<class_Curve3D_method_get_closest_offset>` **(** :ref:`Vector3<class_Vector3>` to_point **)** |const|                                                                                                                        |
-+-------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Vector3<class_Vector3>`                   | :ref:`get_closest_point<class_Curve3D_method_get_closest_point>` **(** :ref:`Vector3<class_Vector3>` to_point **)** |const|                                                                                                                          |
-+-------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                           | :ref:`get_point_count<class_Curve3D_method_get_point_count>` **(** **)** |const|                                                                                                                                                                     |
-+-------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Vector3<class_Vector3>`                   | :ref:`get_point_in<class_Curve3D_method_get_point_in>` **(** :ref:`int<class_int>` idx **)** |const|                                                                                                                                                 |
-+-------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Vector3<class_Vector3>`                   | :ref:`get_point_out<class_Curve3D_method_get_point_out>` **(** :ref:`int<class_int>` idx **)** |const|                                                                                                                                               |
-+-------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Vector3<class_Vector3>`                   | :ref:`get_point_position<class_Curve3D_method_get_point_position>` **(** :ref:`int<class_int>` idx **)** |const|                                                                                                                                     |
-+-------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                       | :ref:`get_point_tilt<class_Curve3D_method_get_point_tilt>` **(** :ref:`int<class_int>` idx **)** |const|                                                                                                                                             |
-+-------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Vector3<class_Vector3>`                   | :ref:`interpolate<class_Curve3D_method_interpolate>` **(** :ref:`int<class_int>` idx, :ref:`float<class_float>` t **)** |const|                                                                                                                      |
-+-------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Vector3<class_Vector3>`                   | :ref:`interpolate_baked<class_Curve3D_method_interpolate_baked>` **(** :ref:`float<class_float>` offset, :ref:`bool<class_bool>` cubic=false **)** |const|                                                                                           |
-+-------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Vector3<class_Vector3>`                   | :ref:`interpolate_baked_up_vector<class_Curve3D_method_interpolate_baked_up_vector>` **(** :ref:`float<class_float>` offset, :ref:`bool<class_bool>` apply_tilt=false **)** |const|                                                                  |
-+-------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Vector3<class_Vector3>`                   | :ref:`interpolatef<class_Curve3D_method_interpolatef>` **(** :ref:`float<class_float>` fofs **)** |const|                                                                                                                                            |
-+-------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                            | :ref:`remove_point<class_Curve3D_method_remove_point>` **(** :ref:`int<class_int>` idx **)**                                                                                                                                                         |
-+-------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                            | :ref:`set_point_in<class_Curve3D_method_set_point_in>` **(** :ref:`int<class_int>` idx, :ref:`Vector3<class_Vector3>` position **)**                                                                                                                 |
-+-------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                            | :ref:`set_point_out<class_Curve3D_method_set_point_out>` **(** :ref:`int<class_int>` idx, :ref:`Vector3<class_Vector3>` position **)**                                                                                                               |
-+-------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                            | :ref:`set_point_position<class_Curve3D_method_set_point_position>` **(** :ref:`int<class_int>` idx, :ref:`Vector3<class_Vector3>` position **)**                                                                                                     |
-+-------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                            | :ref:`set_point_tilt<class_Curve3D_method_set_point_tilt>` **(** :ref:`int<class_int>` idx, :ref:`float<class_float>` tilt **)**                                                                                                                     |
-+-------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`PoolVector3Array<class_PoolVector3Array>` | :ref:`tessellate<class_Curve3D_method_tessellate>` **(** :ref:`int<class_int>` max_stages=5, :ref:`float<class_float>` tolerance_degrees=4 **)** |const|                                                                                             |
-+-------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
++-------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                            | :ref:`add_point<class_Curve3D_method_add_point>` **(** :ref:`Vector3<class_Vector3>` position, :ref:`Vector3<class_Vector3>` in=Vector3( 0, 0, 0 ), :ref:`Vector3<class_Vector3>` out=Vector3( 0, 0, 0 ), :ref:`int<class_int>` index=-1 **)** |
++-------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                            | :ref:`clear_points<class_Curve3D_method_clear_points>` **(** **)**                                                                                                                                                                             |
++-------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                       | :ref:`get_baked_length<class_Curve3D_method_get_baked_length>` **(** **)** |const|                                                                                                                                                             |
++-------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`PoolVector3Array<class_PoolVector3Array>` | :ref:`get_baked_points<class_Curve3D_method_get_baked_points>` **(** **)** |const|                                                                                                                                                             |
++-------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`PoolRealArray<class_PoolRealArray>`       | :ref:`get_baked_tilts<class_Curve3D_method_get_baked_tilts>` **(** **)** |const|                                                                                                                                                               |
++-------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`PoolVector3Array<class_PoolVector3Array>` | :ref:`get_baked_up_vectors<class_Curve3D_method_get_baked_up_vectors>` **(** **)** |const|                                                                                                                                                     |
++-------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                       | :ref:`get_closest_offset<class_Curve3D_method_get_closest_offset>` **(** :ref:`Vector3<class_Vector3>` to_point **)** |const|                                                                                                                  |
++-------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Vector3<class_Vector3>`                   | :ref:`get_closest_point<class_Curve3D_method_get_closest_point>` **(** :ref:`Vector3<class_Vector3>` to_point **)** |const|                                                                                                                    |
++-------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                           | :ref:`get_point_count<class_Curve3D_method_get_point_count>` **(** **)** |const|                                                                                                                                                               |
++-------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Vector3<class_Vector3>`                   | :ref:`get_point_in<class_Curve3D_method_get_point_in>` **(** :ref:`int<class_int>` idx **)** |const|                                                                                                                                           |
++-------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Vector3<class_Vector3>`                   | :ref:`get_point_out<class_Curve3D_method_get_point_out>` **(** :ref:`int<class_int>` idx **)** |const|                                                                                                                                         |
++-------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Vector3<class_Vector3>`                   | :ref:`get_point_position<class_Curve3D_method_get_point_position>` **(** :ref:`int<class_int>` idx **)** |const|                                                                                                                               |
++-------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                       | :ref:`get_point_tilt<class_Curve3D_method_get_point_tilt>` **(** :ref:`int<class_int>` idx **)** |const|                                                                                                                                       |
++-------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Vector3<class_Vector3>`                   | :ref:`interpolate<class_Curve3D_method_interpolate>` **(** :ref:`int<class_int>` idx, :ref:`float<class_float>` t **)** |const|                                                                                                                |
++-------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Vector3<class_Vector3>`                   | :ref:`interpolate_baked<class_Curve3D_method_interpolate_baked>` **(** :ref:`float<class_float>` offset, :ref:`bool<class_bool>` cubic=false **)** |const|                                                                                     |
++-------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Vector3<class_Vector3>`                   | :ref:`interpolate_baked_up_vector<class_Curve3D_method_interpolate_baked_up_vector>` **(** :ref:`float<class_float>` offset, :ref:`bool<class_bool>` apply_tilt=false **)** |const|                                                            |
++-------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Vector3<class_Vector3>`                   | :ref:`interpolatef<class_Curve3D_method_interpolatef>` **(** :ref:`float<class_float>` fofs **)** |const|                                                                                                                                      |
++-------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                            | :ref:`remove_point<class_Curve3D_method_remove_point>` **(** :ref:`int<class_int>` idx **)**                                                                                                                                                   |
++-------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                            | :ref:`set_point_in<class_Curve3D_method_set_point_in>` **(** :ref:`int<class_int>` idx, :ref:`Vector3<class_Vector3>` position **)**                                                                                                           |
++-------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                            | :ref:`set_point_out<class_Curve3D_method_set_point_out>` **(** :ref:`int<class_int>` idx, :ref:`Vector3<class_Vector3>` position **)**                                                                                                         |
++-------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                            | :ref:`set_point_position<class_Curve3D_method_set_point_position>` **(** :ref:`int<class_int>` idx, :ref:`Vector3<class_Vector3>` position **)**                                                                                               |
++-------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                            | :ref:`set_point_tilt<class_Curve3D_method_set_point_tilt>` **(** :ref:`int<class_int>` idx, :ref:`float<class_float>` tilt **)**                                                                                                               |
++-------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`PoolVector3Array<class_PoolVector3Array>` | :ref:`tessellate<class_Curve3D_method_tessellate>` **(** :ref:`int<class_int>` max_stages=5, :ref:`float<class_float>` tolerance_degrees=4 **)** |const|                                                                                       |
++-------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 
 Property Descriptions
 ---------------------
@@ -119,11 +119,11 @@ Method Descriptions
 
 .. _class_Curve3D_method_add_point:
 
-- void **add_point** **(** :ref:`Vector3<class_Vector3>` position, :ref:`Vector3<class_Vector3>` in=Vector3( 0, 0, 0 ), :ref:`Vector3<class_Vector3>` out=Vector3( 0, 0, 0 ), :ref:`int<class_int>` at_position=-1 **)**
+- void **add_point** **(** :ref:`Vector3<class_Vector3>` position, :ref:`Vector3<class_Vector3>` in=Vector3( 0, 0, 0 ), :ref:`Vector3<class_Vector3>` out=Vector3( 0, 0, 0 ), :ref:`int<class_int>` index=-1 **)**
 
-Adds a point to a curve at ``position`` relative to the ``Curve3D``'s position, with control points ``in`` and ``out``.
+Adds a point with the specified ``position`` relative to the curve's own position, with control points ``in`` and ``out``. Appends the new point at the end of the point list.
 
-If ``at_position`` is given, the point is inserted before the point number ``at_position``, moving that point (and every point after) after the inserted point. If ``at_position`` is not given, or is an illegal value (``at_position <0`` or ``at_position >= [method get_point_count]``), the point will be appended at the end of the point list.
+If ``index`` is given, the new point is inserted before the existing point identified by index ``index``. Every existing point starting from ``index`` is shifted further down the list of points. The index must be greater than or equal to ``0`` and must not exceed the number of existing points in the line. See :ref:`get_point_count<class_Curve3D_method_get_point_count>`.
 
 ----
 

+ 13 - 1
classes/class_dictionary.rst

@@ -15,7 +15,7 @@ Dictionary type.
 Description
 -----------
 
-Dictionary type. Associative container which contains values referenced by unique keys. Dictionaries are composed of pairs of keys (which must be unique) and values. Dictionaries will preserve the insertion order when adding elements, even though this may not be reflected when printing the dictionary. In other programming languages, this data structure is sometimes referred to as a hash map or associative array.
+Dictionary type. Associative container, which contains values referenced by unique keys. Dictionaries are composed of pairs of keys (which must be unique) and values. Dictionaries will preserve the insertion order when adding elements. In other programming languages, this data structure is sometimes referred to as a hash map or associative array.
 
 You can define a dictionary by placing a comma-separated list of ``key: value`` pairs in curly braces ``{}``.
 
@@ -134,6 +134,8 @@ Methods
 +-------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`bool<class_bool>`             | :ref:`erase<class_Dictionary_method_erase>` **(** :ref:`Variant<class_Variant>` key **)**                                                       |
 +-------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Variant<class_Variant>`       | :ref:`find_key<class_Dictionary_method_find_key>` **(** :ref:`Variant<class_Variant>` value **)**                                               |
++-------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`Variant<class_Variant>`       | :ref:`get<class_Dictionary_method_get>` **(** :ref:`Variant<class_Variant>` key, :ref:`Variant<class_Variant>` default=null **)**               |
 +-------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`bool<class_bool>`             | :ref:`has<class_Dictionary_method_has>` **(** :ref:`Variant<class_Variant>` key **)**                                                           |
@@ -188,6 +190,16 @@ Erase a dictionary key/value pair by key. Returns ``true`` if the given key was
 
 ----
 
+.. _class_Dictionary_method_find_key:
+
+- :ref:`Variant<class_Variant>` **find_key** **(** :ref:`Variant<class_Variant>` value **)**
+
+Returns the first key whose associated value is equal to ``value``, or ``null`` if no such value is found.
+
+\ **Note:** ``null`` is also a valid key. If you have it in your ``Dictionary``, the :ref:`find_key<class_Dictionary_method_find_key>` method can give misleading results.
+
+----
+
 .. _class_Dictionary_method_get:
 
 - :ref:`Variant<class_Variant>` **get** **(** :ref:`Variant<class_Variant>` key, :ref:`Variant<class_Variant>` default=null **)**

+ 1 - 11
classes/class_editorproperty.rst

@@ -48,8 +48,6 @@ Methods
 +-----------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`String<class_String>` | :ref:`get_edited_property<class_EditorProperty_method_get_edited_property>` **(** **)**                                                                                                                                           |
 +-----------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_String>` | :ref:`get_tooltip_text<class_EditorProperty_method_get_tooltip_text>` **(** **)** |const|                                                                                                                                         |
-+-----------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                        | :ref:`set_bottom_editor<class_EditorProperty_method_set_bottom_editor>` **(** :ref:`Control<class_Control>` editor **)**                                                                                                          |
 +-----------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                        | :ref:`update_property<class_EditorProperty_method_update_property>` **(** **)** |virtual|                                                                                                                                         |
@@ -76,7 +74,7 @@ Used by sub-inspectors. Emit it if what was selected was an Object ID.
 
 .. _class_EditorProperty_signal_property_changed:
 
-- **property_changed** **(** :ref:`String<class_String>` property, :ref:`Variant<class_Variant>` value **)**
+- **property_changed** **(** :ref:`String<class_String>` property, :ref:`Variant<class_Variant>` value, :ref:`String<class_String>` field, :ref:`bool<class_bool>` changing **)**
 
 Do not emit this manually, use the :ref:`emit_changed<class_EditorProperty_method_emit_changed>` method instead.
 
@@ -262,14 +260,6 @@ Gets the edited property. If your editor is for a single property (added via :re
 
 ----
 
-.. _class_EditorProperty_method_get_tooltip_text:
-
-- :ref:`String<class_String>` **get_tooltip_text** **(** **)** |const|
-
-Must be implemented to provide a custom tooltip to the property editor.
-
-----
-
 .. _class_EditorProperty_method_set_bottom_editor:
 
 - void **set_bottom_editor** **(** :ref:`Control<class_Control>` editor **)**

+ 1 - 1
classes/class_editorscript.rst

@@ -17,7 +17,7 @@ Base script that can be used to add extension functions to the editor.
 Description
 -----------
 
-Scripts extending this class and implementing its :ref:`_run<class_EditorScript_method__run>` method can be executed from the Script Editor's **File > Run** menu option (or by pressing ``Ctrl+Shift+X``) while the editor is running. This is useful for adding custom in-editor functionality to Godot. For more complex additions, consider using :ref:`EditorPlugin<class_EditorPlugin>`\ s instead.
+Scripts extending this class and implementing its :ref:`_run<class_EditorScript_method__run>` method can be executed from the Script Editor's **File > Run** menu option (or by pressing :kbd:`Ctrl + Shift + X`) while the editor is running. This is useful for adding custom in-editor functionality to Godot. For more complex additions, consider using :ref:`EditorPlugin<class_EditorPlugin>`\ s instead.
 
 \ **Note:** Extending scripts need to have ``tool`` mode enabled.
 

+ 1702 - 0
classes/class_editorsettings.rst

@@ -35,6 +35,435 @@ Accessing the settings can be done using the following methods, such as:
 
 \ **Note:** This class shouldn't be instantiated directly. Instead, access the singleton using :ref:`EditorInterface.get_editor_settings<class_EditorInterface_method_get_editor_settings>`.
 
+Properties
+----------
+
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`       | :ref:`docks/filesystem/always_show_folders<class_EditorSettings_property_docks/filesystem/always_show_folders>`                                                     |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`         | :ref:`docks/filesystem/thumbnail_size<class_EditorSettings_property_docks/filesystem/thumbnail_size>`                                                               |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`     | :ref:`docks/property_editor/auto_refresh_interval<class_EditorSettings_property_docks/property_editor/auto_refresh_interval>`                                       |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`     | :ref:`docks/property_editor/subresource_hue_tint<class_EditorSettings_property_docks/property_editor/subresource_hue_tint>`                                         |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`       | :ref:`docks/scene_tree/start_create_dialog_fully_expanded<class_EditorSettings_property_docks/scene_tree/start_create_dialog_fully_expanded>`                       |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Color<class_Color>`     | :ref:`editors/2d/bone_color1<class_EditorSettings_property_editors/2d/bone_color1>`                                                                                 |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Color<class_Color>`     | :ref:`editors/2d/bone_color2<class_EditorSettings_property_editors/2d/bone_color2>`                                                                                 |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Color<class_Color>`     | :ref:`editors/2d/bone_ik_color<class_EditorSettings_property_editors/2d/bone_ik_color>`                                                                             |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Color<class_Color>`     | :ref:`editors/2d/bone_outline_color<class_EditorSettings_property_editors/2d/bone_outline_color>`                                                                   |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`         | :ref:`editors/2d/bone_outline_size<class_EditorSettings_property_editors/2d/bone_outline_size>`                                                                     |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Color<class_Color>`     | :ref:`editors/2d/bone_selected_color<class_EditorSettings_property_editors/2d/bone_selected_color>`                                                                 |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`         | :ref:`editors/2d/bone_width<class_EditorSettings_property_editors/2d/bone_width>`                                                                                   |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`       | :ref:`editors/2d/constrain_editor_view<class_EditorSettings_property_editors/2d/constrain_editor_view>`                                                             |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Color<class_Color>`     | :ref:`editors/2d/grid_color<class_EditorSettings_property_editors/2d/grid_color>`                                                                                   |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Color<class_Color>`     | :ref:`editors/2d/guides_color<class_EditorSettings_property_editors/2d/guides_color>`                                                                               |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`         | :ref:`editors/2d/pan_speed<class_EditorSettings_property_editors/2d/pan_speed>`                                                                                     |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`       | :ref:`editors/2d/scroll_to_pan<class_EditorSettings_property_editors/2d/scroll_to_pan>`                                                                             |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`       | :ref:`editors/2d/simple_panning<class_EditorSettings_property_editors/2d/simple_panning>`                                                                           |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Color<class_Color>`     | :ref:`editors/2d/smart_snapping_line_color<class_EditorSettings_property_editors/2d/smart_snapping_line_color>`                                                     |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Color<class_Color>`     | :ref:`editors/2d/viewport_border_color<class_EditorSettings_property_editors/2d/viewport_border_color>`                                                             |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`       | :ref:`editors/2d/warped_mouse_panning<class_EditorSettings_property_editors/2d/warped_mouse_panning>`                                                               |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`     | :ref:`editors/3d/default_fov<class_EditorSettings_property_editors/3d/default_fov>`                                                                                 |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`     | :ref:`editors/3d/default_z_far<class_EditorSettings_property_editors/3d/default_z_far>`                                                                             |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`     | :ref:`editors/3d/default_z_near<class_EditorSettings_property_editors/3d/default_z_near>`                                                                           |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`         | :ref:`editors/3d/freelook/freelook_activation_modifier<class_EditorSettings_property_editors/3d/freelook/freelook_activation_modifier>`                             |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`     | :ref:`editors/3d/freelook/freelook_base_speed<class_EditorSettings_property_editors/3d/freelook/freelook_base_speed>`                                               |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`     | :ref:`editors/3d/freelook/freelook_inertia<class_EditorSettings_property_editors/3d/freelook/freelook_inertia>`                                                     |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`         | :ref:`editors/3d/freelook/freelook_navigation_scheme<class_EditorSettings_property_editors/3d/freelook/freelook_navigation_scheme>`                                 |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`     | :ref:`editors/3d/freelook/freelook_sensitivity<class_EditorSettings_property_editors/3d/freelook/freelook_sensitivity>`                                             |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`       | :ref:`editors/3d/freelook/freelook_speed_zoom_link<class_EditorSettings_property_editors/3d/freelook/freelook_speed_zoom_link>`                                     |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`     | :ref:`editors/3d/grid_division_level_bias<class_EditorSettings_property_editors/3d/grid_division_level_bias>`                                                       |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`         | :ref:`editors/3d/grid_division_level_max<class_EditorSettings_property_editors/3d/grid_division_level_max>`                                                         |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`         | :ref:`editors/3d/grid_division_level_min<class_EditorSettings_property_editors/3d/grid_division_level_min>`                                                         |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`         | :ref:`editors/3d/grid_size<class_EditorSettings_property_editors/3d/grid_size>`                                                                                     |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`       | :ref:`editors/3d/grid_xy_plane<class_EditorSettings_property_editors/3d/grid_xy_plane>`                                                                             |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`       | :ref:`editors/3d/grid_xz_plane<class_EditorSettings_property_editors/3d/grid_xz_plane>`                                                                             |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`       | :ref:`editors/3d/grid_yz_plane<class_EditorSettings_property_editors/3d/grid_yz_plane>`                                                                             |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`         | :ref:`editors/3d/lightmap_baking_number_of_cpu_threads<class_EditorSettings_property_editors/3d/lightmap_baking_number_of_cpu_threads>`                             |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`       | :ref:`editors/3d/navigation/emulate_3_button_mouse<class_EditorSettings_property_editors/3d/navigation/emulate_3_button_mouse>`                                     |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`       | :ref:`editors/3d/navigation/emulate_numpad<class_EditorSettings_property_editors/3d/navigation/emulate_numpad>`                                                     |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`       | :ref:`editors/3d/navigation/invert_x_axis<class_EditorSettings_property_editors/3d/navigation/invert_x_axis>`                                                       |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`       | :ref:`editors/3d/navigation/invert_y_axis<class_EditorSettings_property_editors/3d/navigation/invert_y_axis>`                                                       |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`         | :ref:`editors/3d/navigation/navigation_scheme<class_EditorSettings_property_editors/3d/navigation/navigation_scheme>`                                               |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`         | :ref:`editors/3d/navigation/orbit_modifier<class_EditorSettings_property_editors/3d/navigation/orbit_modifier>`                                                     |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`         | :ref:`editors/3d/navigation/pan_modifier<class_EditorSettings_property_editors/3d/navigation/pan_modifier>`                                                         |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`       | :ref:`editors/3d/navigation/warped_mouse_panning<class_EditorSettings_property_editors/3d/navigation/warped_mouse_panning>`                                         |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`         | :ref:`editors/3d/navigation/zoom_modifier<class_EditorSettings_property_editors/3d/navigation/zoom_modifier>`                                                       |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`         | :ref:`editors/3d/navigation/zoom_style<class_EditorSettings_property_editors/3d/navigation/zoom_style>`                                                             |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`     | :ref:`editors/3d/navigation_feel/orbit_inertia<class_EditorSettings_property_editors/3d/navigation_feel/orbit_inertia>`                                             |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`     | :ref:`editors/3d/navigation_feel/orbit_sensitivity<class_EditorSettings_property_editors/3d/navigation_feel/orbit_sensitivity>`                                     |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`     | :ref:`editors/3d/navigation_feel/translation_inertia<class_EditorSettings_property_editors/3d/navigation_feel/translation_inertia>`                                 |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`     | :ref:`editors/3d/navigation_feel/zoom_inertia<class_EditorSettings_property_editors/3d/navigation_feel/zoom_inertia>`                                               |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Color<class_Color>`     | :ref:`editors/3d/primary_grid_color<class_EditorSettings_property_editors/3d/primary_grid_color>`                                                                   |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`         | :ref:`editors/3d/primary_grid_steps<class_EditorSettings_property_editors/3d/primary_grid_steps>`                                                                   |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Color<class_Color>`     | :ref:`editors/3d/secondary_grid_color<class_EditorSettings_property_editors/3d/secondary_grid_color>`                                                               |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Color<class_Color>`     | :ref:`editors/3d/selection_box_color<class_EditorSettings_property_editors/3d/selection_box_color>`                                                                 |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Color<class_Color>`     | :ref:`editors/3d_gizmos/gizmo_colors/instanced<class_EditorSettings_property_editors/3d_gizmos/gizmo_colors/instanced>`                                             |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Color<class_Color>`     | :ref:`editors/3d_gizmos/gizmo_colors/joint<class_EditorSettings_property_editors/3d_gizmos/gizmo_colors/joint>`                                                     |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Color<class_Color>`     | :ref:`editors/3d_gizmos/gizmo_colors/shape<class_EditorSettings_property_editors/3d_gizmos/gizmo_colors/shape>`                                                     |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`       | :ref:`editors/animation/autorename_animation_tracks<class_EditorSettings_property_editors/animation/autorename_animation_tracks>`                                   |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`       | :ref:`editors/animation/confirm_insert_track<class_EditorSettings_property_editors/animation/confirm_insert_track>`                                                 |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`       | :ref:`editors/animation/default_create_bezier_tracks<class_EditorSettings_property_editors/animation/default_create_bezier_tracks>`                                 |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`       | :ref:`editors/animation/default_create_reset_tracks<class_EditorSettings_property_editors/animation/default_create_reset_tracks>`                                   |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Color<class_Color>`     | :ref:`editors/animation/onion_layers_future_color<class_EditorSettings_property_editors/animation/onion_layers_future_color>`                                       |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Color<class_Color>`     | :ref:`editors/animation/onion_layers_past_color<class_EditorSettings_property_editors/animation/onion_layers_past_color>`                                           |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`     | :ref:`editors/grid_map/pick_distance<class_EditorSettings_property_editors/grid_map/pick_distance>`                                                                 |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`         | :ref:`editors/grid_map/preview_size<class_EditorSettings_property_editors/grid_map/preview_size>`                                                                   |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`         | :ref:`editors/poly_editor/point_grab_radius<class_EditorSettings_property_editors/poly_editor/point_grab_radius>`                                                   |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`       | :ref:`editors/poly_editor/show_previous_outline<class_EditorSettings_property_editors/poly_editor/show_previous_outline>`                                           |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`     | :ref:`editors/visual_editors/minimap_opacity<class_EditorSettings_property_editors/visual_editors/minimap_opacity>`                                                 |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`   | :ref:`filesystem/directories/autoscan_project_path<class_EditorSettings_property_filesystem/directories/autoscan_project_path>`                                     |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`   | :ref:`filesystem/directories/default_project_path<class_EditorSettings_property_filesystem/directories/default_project_path>`                                       |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`         | :ref:`filesystem/file_dialog/display_mode<class_EditorSettings_property_filesystem/file_dialog/display_mode>`                                                       |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`       | :ref:`filesystem/file_dialog/show_hidden_files<class_EditorSettings_property_filesystem/file_dialog/show_hidden_files>`                                             |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`         | :ref:`filesystem/file_dialog/thumbnail_size<class_EditorSettings_property_filesystem/file_dialog/thumbnail_size>`                                                   |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`       | :ref:`filesystem/on_save/compress_binary_resources<class_EditorSettings_property_filesystem/on_save/compress_binary_resources>`                                     |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`       | :ref:`filesystem/on_save/safe_save_on_backup_then_rename<class_EditorSettings_property_filesystem/on_save/safe_save_on_backup_then_rename>`                         |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`       | :ref:`interface/editor/automatically_open_screenshots<class_EditorSettings_property_interface/editor/automatically_open_screenshots>`                               |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`   | :ref:`interface/editor/code_font<class_EditorSettings_property_interface/editor/code_font>`                                                                         |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`         | :ref:`interface/editor/code_font_size<class_EditorSettings_property_interface/editor/code_font_size>`                                                               |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`     | :ref:`interface/editor/custom_display_scale<class_EditorSettings_property_interface/editor/custom_display_scale>`                                                   |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`       | :ref:`interface/editor/dim_editor_on_dialog_popup<class_EditorSettings_property_interface/editor/dim_editor_on_dialog_popup>`                                       |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`         | :ref:`interface/editor/display_scale<class_EditorSettings_property_interface/editor/display_scale>`                                                                 |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`   | :ref:`interface/editor/editor_language<class_EditorSettings_property_interface/editor/editor_language>`                                                             |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`       | :ref:`interface/editor/font_antialiased<class_EditorSettings_property_interface/editor/font_antialiased>`                                                           |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`         | :ref:`interface/editor/font_hinting<class_EditorSettings_property_interface/editor/font_hinting>`                                                                   |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`     | :ref:`interface/editor/low_processor_mode_sleep_usec<class_EditorSettings_property_interface/editor/low_processor_mode_sleep_usec>`                                 |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`   | :ref:`interface/editor/main_font<class_EditorSettings_property_interface/editor/main_font>`                                                                         |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`   | :ref:`interface/editor/main_font_bold<class_EditorSettings_property_interface/editor/main_font_bold>`                                                               |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`         | :ref:`interface/editor/main_font_size<class_EditorSettings_property_interface/editor/main_font_size>`                                                               |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`       | :ref:`interface/editor/quit_confirmation<class_EditorSettings_property_interface/editor/quit_confirmation>`                                                         |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`       | :ref:`interface/editor/save_each_scene_on_quit<class_EditorSettings_property_interface/editor/save_each_scene_on_quit>`                                             |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`       | :ref:`interface/editor/separate_distraction_mode<class_EditorSettings_property_interface/editor/separate_distraction_mode>`                                         |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`     | :ref:`interface/editor/unfocused_low_processor_mode_sleep_usec<class_EditorSettings_property_interface/editor/unfocused_low_processor_mode_sleep_usec>`             |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`         | :ref:`interface/inspector/max_array_dictionary_items_per_page<class_EditorSettings_property_interface/inspector/max_array_dictionary_items_per_page>`               |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`         | :ref:`interface/scene_tabs/minimum_width<class_EditorSettings_property_interface/scene_tabs/minimum_width>`                                                         |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`       | :ref:`interface/scene_tabs/resize_if_many_tabs<class_EditorSettings_property_interface/scene_tabs/resize_if_many_tabs>`                                             |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`       | :ref:`interface/scene_tabs/show_script_button<class_EditorSettings_property_interface/scene_tabs/show_script_button>`                                               |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`       | :ref:`interface/scene_tabs/show_thumbnail_on_hover<class_EditorSettings_property_interface/scene_tabs/show_thumbnail_on_hover>`                                     |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Color<class_Color>`     | :ref:`interface/theme/accent_color<class_EditorSettings_property_interface/theme/accent_color>`                                                                     |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`     | :ref:`interface/theme/additional_spacing<class_EditorSettings_property_interface/theme/additional_spacing>`                                                         |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Color<class_Color>`     | :ref:`interface/theme/base_color<class_EditorSettings_property_interface/theme/base_color>`                                                                         |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`         | :ref:`interface/theme/border_size<class_EditorSettings_property_interface/theme/border_size>`                                                                       |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`     | :ref:`interface/theme/contrast<class_EditorSettings_property_interface/theme/contrast>`                                                                             |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`   | :ref:`interface/theme/custom_theme<class_EditorSettings_property_interface/theme/custom_theme>`                                                                     |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`       | :ref:`interface/theme/highlight_tabs<class_EditorSettings_property_interface/theme/highlight_tabs>`                                                                 |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`         | :ref:`interface/theme/icon_and_font_color<class_EditorSettings_property_interface/theme/icon_and_font_color>`                                                       |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`   | :ref:`interface/theme/preset<class_EditorSettings_property_interface/theme/preset>`                                                                                 |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`     | :ref:`interface/theme/relationship_line_opacity<class_EditorSettings_property_interface/theme/relationship_line_opacity>`                                           |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`       | :ref:`interface/theme/use_graph_node_headers<class_EditorSettings_property_interface/theme/use_graph_node_headers>`                                                 |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`   | :ref:`network/debug/remote_host<class_EditorSettings_property_network/debug/remote_host>`                                                                           |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`         | :ref:`network/debug/remote_port<class_EditorSettings_property_network/debug/remote_port>`                                                                           |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`   | :ref:`network/http_proxy/host<class_EditorSettings_property_network/http_proxy/host>`                                                                               |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`         | :ref:`network/http_proxy/port<class_EditorSettings_property_network/http_proxy/port>`                                                                               |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`   | :ref:`network/ssl/editor_ssl_certificates<class_EditorSettings_property_network/ssl/editor_ssl_certificates>`                                                       |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`         | :ref:`project_manager/sorting_order<class_EditorSettings_property_project_manager/sorting_order>`                                                                   |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`       | :ref:`run/auto_save/save_before_running<class_EditorSettings_property_run/auto_save/save_before_running>`                                                           |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`       | :ref:`run/output/always_clear_output_on_play<class_EditorSettings_property_run/output/always_clear_output_on_play>`                                                 |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`       | :ref:`run/output/always_close_output_on_stop<class_EditorSettings_property_run/output/always_close_output_on_stop>`                                                 |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`       | :ref:`run/output/always_open_output_on_play<class_EditorSettings_property_run/output/always_open_output_on_play>`                                                   |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`         | :ref:`run/output/font_size<class_EditorSettings_property_run/output/font_size>`                                                                                     |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`         | :ref:`run/window_placement/rect<class_EditorSettings_property_run/window_placement/rect>`                                                                           |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Vector2<class_Vector2>` | :ref:`run/window_placement/rect_custom_position<class_EditorSettings_property_run/window_placement/rect_custom_position>`                                           |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`         | :ref:`run/window_placement/screen<class_EditorSettings_property_run/window_placement/screen>`                                                                       |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`       | :ref:`text_editor/appearance/code_folding<class_EditorSettings_property_text_editor/appearance/code_folding>`                                                       |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`         | :ref:`text_editor/appearance/line_length_guideline_hard_column<class_EditorSettings_property_text_editor/appearance/line_length_guideline_hard_column>`             |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`         | :ref:`text_editor/appearance/line_length_guideline_soft_column<class_EditorSettings_property_text_editor/appearance/line_length_guideline_soft_column>`             |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`       | :ref:`text_editor/appearance/line_numbers_zero_padded<class_EditorSettings_property_text_editor/appearance/line_numbers_zero_padded>`                               |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`       | :ref:`text_editor/appearance/show_bookmark_gutter<class_EditorSettings_property_text_editor/appearance/show_bookmark_gutter>`                                       |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`       | :ref:`text_editor/appearance/show_breakpoint_gutter<class_EditorSettings_property_text_editor/appearance/show_breakpoint_gutter>`                                   |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`       | :ref:`text_editor/appearance/show_info_gutter<class_EditorSettings_property_text_editor/appearance/show_info_gutter>`                                               |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`       | :ref:`text_editor/appearance/show_line_length_guidelines<class_EditorSettings_property_text_editor/appearance/show_line_length_guidelines>`                         |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`       | :ref:`text_editor/appearance/show_line_numbers<class_EditorSettings_property_text_editor/appearance/show_line_numbers>`                                             |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`       | :ref:`text_editor/appearance/word_wrap<class_EditorSettings_property_text_editor/appearance/word_wrap>`                                                             |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`       | :ref:`text_editor/completion/add_type_hints<class_EditorSettings_property_text_editor/completion/add_type_hints>`                                                   |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`       | :ref:`text_editor/completion/auto_brace_complete<class_EditorSettings_property_text_editor/completion/auto_brace_complete>`                                         |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Vector2<class_Vector2>` | :ref:`text_editor/completion/callhint_tooltip_offset<class_EditorSettings_property_text_editor/completion/callhint_tooltip_offset>`                                 |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`     | :ref:`text_editor/completion/code_complete_delay<class_EditorSettings_property_text_editor/completion/code_complete_delay>`                                         |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`       | :ref:`text_editor/completion/complete_file_paths<class_EditorSettings_property_text_editor/completion/complete_file_paths>`                                         |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`     | :ref:`text_editor/completion/idle_parse_delay<class_EditorSettings_property_text_editor/completion/idle_parse_delay>`                                               |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`       | :ref:`text_editor/completion/put_callhint_tooltip_below_current_line<class_EditorSettings_property_text_editor/completion/put_callhint_tooltip_below_current_line>` |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`       | :ref:`text_editor/completion/use_single_quotes<class_EditorSettings_property_text_editor/completion/use_single_quotes>`                                             |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`       | :ref:`text_editor/cursor/block_caret<class_EditorSettings_property_text_editor/cursor/block_caret>`                                                                 |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`       | :ref:`text_editor/cursor/caret_blink<class_EditorSettings_property_text_editor/cursor/caret_blink>`                                                                 |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`     | :ref:`text_editor/cursor/caret_blink_speed<class_EditorSettings_property_text_editor/cursor/caret_blink_speed>`                                                     |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`       | :ref:`text_editor/cursor/right_click_moves_caret<class_EditorSettings_property_text_editor/cursor/right_click_moves_caret>`                                         |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`       | :ref:`text_editor/cursor/scroll_past_end_of_file<class_EditorSettings_property_text_editor/cursor/scroll_past_end_of_file>`                                         |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`       | :ref:`text_editor/files/auto_reload_and_parse_scripts_on_save<class_EditorSettings_property_text_editor/files/auto_reload_and_parse_scripts_on_save>`               |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`       | :ref:`text_editor/files/auto_reload_scripts_on_external_change<class_EditorSettings_property_text_editor/files/auto_reload_scripts_on_external_change>`             |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`         | :ref:`text_editor/files/autosave_interval_secs<class_EditorSettings_property_text_editor/files/autosave_interval_secs>`                                             |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`       | :ref:`text_editor/files/restore_scripts_on_load<class_EditorSettings_property_text_editor/files/restore_scripts_on_load>`                                           |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`       | :ref:`text_editor/files/trim_trailing_whitespace_on_save<class_EditorSettings_property_text_editor/files/trim_trailing_whitespace_on_save>`                         |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`         | :ref:`text_editor/help/help_font_size<class_EditorSettings_property_text_editor/help/help_font_size>`                                                               |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`         | :ref:`text_editor/help/help_source_font_size<class_EditorSettings_property_text_editor/help/help_source_font_size>`                                                 |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`         | :ref:`text_editor/help/help_title_font_size<class_EditorSettings_property_text_editor/help/help_title_font_size>`                                                   |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`       | :ref:`text_editor/help/show_help_index<class_EditorSettings_property_text_editor/help/show_help_index>`                                                             |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Color<class_Color>`     | :ref:`text_editor/highlighting/background_color<class_EditorSettings_property_text_editor/highlighting/background_color>`                                           |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Color<class_Color>`     | :ref:`text_editor/highlighting/base_type_color<class_EditorSettings_property_text_editor/highlighting/base_type_color>`                                             |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Color<class_Color>`     | :ref:`text_editor/highlighting/bookmark_color<class_EditorSettings_property_text_editor/highlighting/bookmark_color>`                                               |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Color<class_Color>`     | :ref:`text_editor/highlighting/brace_mismatch_color<class_EditorSettings_property_text_editor/highlighting/brace_mismatch_color>`                                   |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Color<class_Color>`     | :ref:`text_editor/highlighting/breakpoint_color<class_EditorSettings_property_text_editor/highlighting/breakpoint_color>`                                           |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Color<class_Color>`     | :ref:`text_editor/highlighting/caret_background_color<class_EditorSettings_property_text_editor/highlighting/caret_background_color>`                               |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Color<class_Color>`     | :ref:`text_editor/highlighting/caret_color<class_EditorSettings_property_text_editor/highlighting/caret_color>`                                                     |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Color<class_Color>`     | :ref:`text_editor/highlighting/code_folding_color<class_EditorSettings_property_text_editor/highlighting/code_folding_color>`                                       |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Color<class_Color>`     | :ref:`text_editor/highlighting/comment_color<class_EditorSettings_property_text_editor/highlighting/comment_color>`                                                 |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Color<class_Color>`     | :ref:`text_editor/highlighting/completion_background_color<class_EditorSettings_property_text_editor/highlighting/completion_background_color>`                     |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Color<class_Color>`     | :ref:`text_editor/highlighting/completion_existing_color<class_EditorSettings_property_text_editor/highlighting/completion_existing_color>`                         |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Color<class_Color>`     | :ref:`text_editor/highlighting/completion_font_color<class_EditorSettings_property_text_editor/highlighting/completion_font_color>`                                 |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Color<class_Color>`     | :ref:`text_editor/highlighting/completion_scroll_color<class_EditorSettings_property_text_editor/highlighting/completion_scroll_color>`                             |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Color<class_Color>`     | :ref:`text_editor/highlighting/completion_selected_color<class_EditorSettings_property_text_editor/highlighting/completion_selected_color>`                         |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Color<class_Color>`     | :ref:`text_editor/highlighting/control_flow_keyword_color<class_EditorSettings_property_text_editor/highlighting/control_flow_keyword_color>`                       |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Color<class_Color>`     | :ref:`text_editor/highlighting/current_line_color<class_EditorSettings_property_text_editor/highlighting/current_line_color>`                                       |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Color<class_Color>`     | :ref:`text_editor/highlighting/engine_type_color<class_EditorSettings_property_text_editor/highlighting/engine_type_color>`                                         |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Color<class_Color>`     | :ref:`text_editor/highlighting/executing_line_color<class_EditorSettings_property_text_editor/highlighting/executing_line_color>`                                   |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Color<class_Color>`     | :ref:`text_editor/highlighting/function_color<class_EditorSettings_property_text_editor/highlighting/function_color>`                                               |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`       | :ref:`text_editor/highlighting/highlight_all_occurrences<class_EditorSettings_property_text_editor/highlighting/highlight_all_occurrences>`                         |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`       | :ref:`text_editor/highlighting/highlight_current_line<class_EditorSettings_property_text_editor/highlighting/highlight_current_line>`                               |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`       | :ref:`text_editor/highlighting/highlight_type_safe_lines<class_EditorSettings_property_text_editor/highlighting/highlight_type_safe_lines>`                         |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Color<class_Color>`     | :ref:`text_editor/highlighting/keyword_color<class_EditorSettings_property_text_editor/highlighting/keyword_color>`                                                 |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Color<class_Color>`     | :ref:`text_editor/highlighting/line_length_guideline_color<class_EditorSettings_property_text_editor/highlighting/line_length_guideline_color>`                     |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Color<class_Color>`     | :ref:`text_editor/highlighting/line_number_color<class_EditorSettings_property_text_editor/highlighting/line_number_color>`                                         |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Color<class_Color>`     | :ref:`text_editor/highlighting/mark_color<class_EditorSettings_property_text_editor/highlighting/mark_color>`                                                       |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Color<class_Color>`     | :ref:`text_editor/highlighting/member_variable_color<class_EditorSettings_property_text_editor/highlighting/member_variable_color>`                                 |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Color<class_Color>`     | :ref:`text_editor/highlighting/number_color<class_EditorSettings_property_text_editor/highlighting/number_color>`                                                   |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Color<class_Color>`     | :ref:`text_editor/highlighting/safe_line_number_color<class_EditorSettings_property_text_editor/highlighting/safe_line_number_color>`                               |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Color<class_Color>`     | :ref:`text_editor/highlighting/search_result_border_color<class_EditorSettings_property_text_editor/highlighting/search_result_border_color>`                       |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Color<class_Color>`     | :ref:`text_editor/highlighting/search_result_color<class_EditorSettings_property_text_editor/highlighting/search_result_color>`                                     |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Color<class_Color>`     | :ref:`text_editor/highlighting/selection_color<class_EditorSettings_property_text_editor/highlighting/selection_color>`                                             |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Color<class_Color>`     | :ref:`text_editor/highlighting/string_color<class_EditorSettings_property_text_editor/highlighting/string_color>`                                                   |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Color<class_Color>`     | :ref:`text_editor/highlighting/symbol_color<class_EditorSettings_property_text_editor/highlighting/symbol_color>`                                                   |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`       | :ref:`text_editor/highlighting/syntax_highlighting<class_EditorSettings_property_text_editor/highlighting/syntax_highlighting>`                                     |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Color<class_Color>`     | :ref:`text_editor/highlighting/text_color<class_EditorSettings_property_text_editor/highlighting/text_color>`                                                       |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Color<class_Color>`     | :ref:`text_editor/highlighting/text_selected_color<class_EditorSettings_property_text_editor/highlighting/text_selected_color>`                                     |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Color<class_Color>`     | :ref:`text_editor/highlighting/user_type_color<class_EditorSettings_property_text_editor/highlighting/user_type_color>`                                             |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Color<class_Color>`     | :ref:`text_editor/highlighting/word_highlighted_color<class_EditorSettings_property_text_editor/highlighting/word_highlighted_color>`                               |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`       | :ref:`text_editor/indent/auto_indent<class_EditorSettings_property_text_editor/indent/auto_indent>`                                                                 |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`       | :ref:`text_editor/indent/convert_indent_on_save<class_EditorSettings_property_text_editor/indent/convert_indent_on_save>`                                           |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`       | :ref:`text_editor/indent/draw_spaces<class_EditorSettings_property_text_editor/indent/draw_spaces>`                                                                 |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`       | :ref:`text_editor/indent/draw_tabs<class_EditorSettings_property_text_editor/indent/draw_tabs>`                                                                     |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`         | :ref:`text_editor/indent/size<class_EditorSettings_property_text_editor/indent/size>`                                                                               |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`         | :ref:`text_editor/indent/type<class_EditorSettings_property_text_editor/indent/type>`                                                                               |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`       | :ref:`text_editor/navigation/drag_and_drop_selection<class_EditorSettings_property_text_editor/navigation/drag_and_drop_selection>`                                 |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`         | :ref:`text_editor/navigation/minimap_width<class_EditorSettings_property_text_editor/navigation/minimap_width>`                                                     |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`       | :ref:`text_editor/navigation/mouse_extra_buttons_navigate_history<class_EditorSettings_property_text_editor/navigation/mouse_extra_buttons_navigate_history>`       |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`       | :ref:`text_editor/navigation/show_minimap<class_EditorSettings_property_text_editor/navigation/show_minimap>`                                                       |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`       | :ref:`text_editor/navigation/smooth_scrolling<class_EditorSettings_property_text_editor/navigation/smooth_scrolling>`                                               |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`       | :ref:`text_editor/navigation/stay_in_script_editor_on_node_selected<class_EditorSettings_property_text_editor/navigation/stay_in_script_editor_on_node_selected>`   |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`         | :ref:`text_editor/navigation/v_scroll_speed<class_EditorSettings_property_text_editor/navigation/v_scroll_speed>`                                                   |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`       | :ref:`text_editor/script_list/show_members_overview<class_EditorSettings_property_text_editor/script_list/show_members_overview>`                                   |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`   | :ref:`text_editor/theme/color_theme<class_EditorSettings_property_text_editor/theme/color_theme>`                                                                   |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`         | :ref:`text_editor/theme/line_spacing<class_EditorSettings_property_text_editor/theme/line_spacing>`                                                                 |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`       | :ref:`text_editor/tools/sort_members_outline_alphabetically<class_EditorSettings_property_text_editor/tools/sort_members_outline_alphabetically>`                   |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
 Methods
 -------
 
@@ -88,6 +517,1279 @@ Constants
 
 - **NOTIFICATION_EDITOR_SETTINGS_CHANGED** = **10000** --- Emitted after any editor setting has changed. It's used by various editor plugins to update their visuals on theme changes or logic on configuration changes.
 
+Property Descriptions
+---------------------
+
+.. _class_EditorSettings_property_docks/filesystem/always_show_folders:
+
+- :ref:`bool<class_bool>` **docks/filesystem/always_show_folders**
+
+----
+
+.. _class_EditorSettings_property_docks/filesystem/thumbnail_size:
+
+- :ref:`int<class_int>` **docks/filesystem/thumbnail_size**
+
+----
+
+.. _class_EditorSettings_property_docks/property_editor/auto_refresh_interval:
+
+- :ref:`float<class_float>` **docks/property_editor/auto_refresh_interval**
+
+----
+
+.. _class_EditorSettings_property_docks/property_editor/subresource_hue_tint:
+
+- :ref:`float<class_float>` **docks/property_editor/subresource_hue_tint**
+
+----
+
+.. _class_EditorSettings_property_docks/scene_tree/start_create_dialog_fully_expanded:
+
+- :ref:`bool<class_bool>` **docks/scene_tree/start_create_dialog_fully_expanded**
+
+----
+
+.. _class_EditorSettings_property_editors/2d/bone_color1:
+
+- :ref:`Color<class_Color>` **editors/2d/bone_color1**
+
+----
+
+.. _class_EditorSettings_property_editors/2d/bone_color2:
+
+- :ref:`Color<class_Color>` **editors/2d/bone_color2**
+
+----
+
+.. _class_EditorSettings_property_editors/2d/bone_ik_color:
+
+- :ref:`Color<class_Color>` **editors/2d/bone_ik_color**
+
+----
+
+.. _class_EditorSettings_property_editors/2d/bone_outline_color:
+
+- :ref:`Color<class_Color>` **editors/2d/bone_outline_color**
+
+----
+
+.. _class_EditorSettings_property_editors/2d/bone_outline_size:
+
+- :ref:`int<class_int>` **editors/2d/bone_outline_size**
+
+----
+
+.. _class_EditorSettings_property_editors/2d/bone_selected_color:
+
+- :ref:`Color<class_Color>` **editors/2d/bone_selected_color**
+
+----
+
+.. _class_EditorSettings_property_editors/2d/bone_width:
+
+- :ref:`int<class_int>` **editors/2d/bone_width**
+
+----
+
+.. _class_EditorSettings_property_editors/2d/constrain_editor_view:
+
+- :ref:`bool<class_bool>` **editors/2d/constrain_editor_view**
+
+----
+
+.. _class_EditorSettings_property_editors/2d/grid_color:
+
+- :ref:`Color<class_Color>` **editors/2d/grid_color**
+
+----
+
+.. _class_EditorSettings_property_editors/2d/guides_color:
+
+- :ref:`Color<class_Color>` **editors/2d/guides_color**
+
+----
+
+.. _class_EditorSettings_property_editors/2d/pan_speed:
+
+- :ref:`int<class_int>` **editors/2d/pan_speed**
+
+----
+
+.. _class_EditorSettings_property_editors/2d/scroll_to_pan:
+
+- :ref:`bool<class_bool>` **editors/2d/scroll_to_pan**
+
+----
+
+.. _class_EditorSettings_property_editors/2d/simple_panning:
+
+- :ref:`bool<class_bool>` **editors/2d/simple_panning**
+
+----
+
+.. _class_EditorSettings_property_editors/2d/smart_snapping_line_color:
+
+- :ref:`Color<class_Color>` **editors/2d/smart_snapping_line_color**
+
+----
+
+.. _class_EditorSettings_property_editors/2d/viewport_border_color:
+
+- :ref:`Color<class_Color>` **editors/2d/viewport_border_color**
+
+----
+
+.. _class_EditorSettings_property_editors/2d/warped_mouse_panning:
+
+- :ref:`bool<class_bool>` **editors/2d/warped_mouse_panning**
+
+----
+
+.. _class_EditorSettings_property_editors/3d/default_fov:
+
+- :ref:`float<class_float>` **editors/3d/default_fov**
+
+----
+
+.. _class_EditorSettings_property_editors/3d/default_z_far:
+
+- :ref:`float<class_float>` **editors/3d/default_z_far**
+
+----
+
+.. _class_EditorSettings_property_editors/3d/default_z_near:
+
+- :ref:`float<class_float>` **editors/3d/default_z_near**
+
+----
+
+.. _class_EditorSettings_property_editors/3d/freelook/freelook_activation_modifier:
+
+- :ref:`int<class_int>` **editors/3d/freelook/freelook_activation_modifier**
+
+----
+
+.. _class_EditorSettings_property_editors/3d/freelook/freelook_base_speed:
+
+- :ref:`float<class_float>` **editors/3d/freelook/freelook_base_speed**
+
+----
+
+.. _class_EditorSettings_property_editors/3d/freelook/freelook_inertia:
+
+- :ref:`float<class_float>` **editors/3d/freelook/freelook_inertia**
+
+----
+
+.. _class_EditorSettings_property_editors/3d/freelook/freelook_navigation_scheme:
+
+- :ref:`int<class_int>` **editors/3d/freelook/freelook_navigation_scheme**
+
+----
+
+.. _class_EditorSettings_property_editors/3d/freelook/freelook_sensitivity:
+
+- :ref:`float<class_float>` **editors/3d/freelook/freelook_sensitivity**
+
+----
+
+.. _class_EditorSettings_property_editors/3d/freelook/freelook_speed_zoom_link:
+
+- :ref:`bool<class_bool>` **editors/3d/freelook/freelook_speed_zoom_link**
+
+----
+
+.. _class_EditorSettings_property_editors/3d/grid_division_level_bias:
+
+- :ref:`float<class_float>` **editors/3d/grid_division_level_bias**
+
+----
+
+.. _class_EditorSettings_property_editors/3d/grid_division_level_max:
+
+- :ref:`int<class_int>` **editors/3d/grid_division_level_max**
+
+----
+
+.. _class_EditorSettings_property_editors/3d/grid_division_level_min:
+
+- :ref:`int<class_int>` **editors/3d/grid_division_level_min**
+
+----
+
+.. _class_EditorSettings_property_editors/3d/grid_size:
+
+- :ref:`int<class_int>` **editors/3d/grid_size**
+
+----
+
+.. _class_EditorSettings_property_editors/3d/grid_xy_plane:
+
+- :ref:`bool<class_bool>` **editors/3d/grid_xy_plane**
+
+----
+
+.. _class_EditorSettings_property_editors/3d/grid_xz_plane:
+
+- :ref:`bool<class_bool>` **editors/3d/grid_xz_plane**
+
+----
+
+.. _class_EditorSettings_property_editors/3d/grid_yz_plane:
+
+- :ref:`bool<class_bool>` **editors/3d/grid_yz_plane**
+
+----
+
+.. _class_EditorSettings_property_editors/3d/lightmap_baking_number_of_cpu_threads:
+
+- :ref:`int<class_int>` **editors/3d/lightmap_baking_number_of_cpu_threads**
+
+----
+
+.. _class_EditorSettings_property_editors/3d/navigation/emulate_3_button_mouse:
+
+- :ref:`bool<class_bool>` **editors/3d/navigation/emulate_3_button_mouse**
+
+----
+
+.. _class_EditorSettings_property_editors/3d/navigation/emulate_numpad:
+
+- :ref:`bool<class_bool>` **editors/3d/navigation/emulate_numpad**
+
+----
+
+.. _class_EditorSettings_property_editors/3d/navigation/invert_x_axis:
+
+- :ref:`bool<class_bool>` **editors/3d/navigation/invert_x_axis**
+
+----
+
+.. _class_EditorSettings_property_editors/3d/navigation/invert_y_axis:
+
+- :ref:`bool<class_bool>` **editors/3d/navigation/invert_y_axis**
+
+----
+
+.. _class_EditorSettings_property_editors/3d/navigation/navigation_scheme:
+
+- :ref:`int<class_int>` **editors/3d/navigation/navigation_scheme**
+
+----
+
+.. _class_EditorSettings_property_editors/3d/navigation/orbit_modifier:
+
+- :ref:`int<class_int>` **editors/3d/navigation/orbit_modifier**
+
+----
+
+.. _class_EditorSettings_property_editors/3d/navigation/pan_modifier:
+
+- :ref:`int<class_int>` **editors/3d/navigation/pan_modifier**
+
+----
+
+.. _class_EditorSettings_property_editors/3d/navigation/warped_mouse_panning:
+
+- :ref:`bool<class_bool>` **editors/3d/navigation/warped_mouse_panning**
+
+----
+
+.. _class_EditorSettings_property_editors/3d/navigation/zoom_modifier:
+
+- :ref:`int<class_int>` **editors/3d/navigation/zoom_modifier**
+
+----
+
+.. _class_EditorSettings_property_editors/3d/navigation/zoom_style:
+
+- :ref:`int<class_int>` **editors/3d/navigation/zoom_style**
+
+----
+
+.. _class_EditorSettings_property_editors/3d/navigation_feel/orbit_inertia:
+
+- :ref:`float<class_float>` **editors/3d/navigation_feel/orbit_inertia**
+
+----
+
+.. _class_EditorSettings_property_editors/3d/navigation_feel/orbit_sensitivity:
+
+- :ref:`float<class_float>` **editors/3d/navigation_feel/orbit_sensitivity**
+
+----
+
+.. _class_EditorSettings_property_editors/3d/navigation_feel/translation_inertia:
+
+- :ref:`float<class_float>` **editors/3d/navigation_feel/translation_inertia**
+
+----
+
+.. _class_EditorSettings_property_editors/3d/navigation_feel/zoom_inertia:
+
+- :ref:`float<class_float>` **editors/3d/navigation_feel/zoom_inertia**
+
+----
+
+.. _class_EditorSettings_property_editors/3d/primary_grid_color:
+
+- :ref:`Color<class_Color>` **editors/3d/primary_grid_color**
+
+----
+
+.. _class_EditorSettings_property_editors/3d/primary_grid_steps:
+
+- :ref:`int<class_int>` **editors/3d/primary_grid_steps**
+
+----
+
+.. _class_EditorSettings_property_editors/3d/secondary_grid_color:
+
+- :ref:`Color<class_Color>` **editors/3d/secondary_grid_color**
+
+----
+
+.. _class_EditorSettings_property_editors/3d/selection_box_color:
+
+- :ref:`Color<class_Color>` **editors/3d/selection_box_color**
+
+----
+
+.. _class_EditorSettings_property_editors/3d_gizmos/gizmo_colors/instanced:
+
+- :ref:`Color<class_Color>` **editors/3d_gizmos/gizmo_colors/instanced**
+
+----
+
+.. _class_EditorSettings_property_editors/3d_gizmos/gizmo_colors/joint:
+
+- :ref:`Color<class_Color>` **editors/3d_gizmos/gizmo_colors/joint**
+
+----
+
+.. _class_EditorSettings_property_editors/3d_gizmos/gizmo_colors/shape:
+
+- :ref:`Color<class_Color>` **editors/3d_gizmos/gizmo_colors/shape**
+
+----
+
+.. _class_EditorSettings_property_editors/animation/autorename_animation_tracks:
+
+- :ref:`bool<class_bool>` **editors/animation/autorename_animation_tracks**
+
+----
+
+.. _class_EditorSettings_property_editors/animation/confirm_insert_track:
+
+- :ref:`bool<class_bool>` **editors/animation/confirm_insert_track**
+
+----
+
+.. _class_EditorSettings_property_editors/animation/default_create_bezier_tracks:
+
+- :ref:`bool<class_bool>` **editors/animation/default_create_bezier_tracks**
+
+----
+
+.. _class_EditorSettings_property_editors/animation/default_create_reset_tracks:
+
+- :ref:`bool<class_bool>` **editors/animation/default_create_reset_tracks**
+
+----
+
+.. _class_EditorSettings_property_editors/animation/onion_layers_future_color:
+
+- :ref:`Color<class_Color>` **editors/animation/onion_layers_future_color**
+
+----
+
+.. _class_EditorSettings_property_editors/animation/onion_layers_past_color:
+
+- :ref:`Color<class_Color>` **editors/animation/onion_layers_past_color**
+
+----
+
+.. _class_EditorSettings_property_editors/grid_map/pick_distance:
+
+- :ref:`float<class_float>` **editors/grid_map/pick_distance**
+
+----
+
+.. _class_EditorSettings_property_editors/grid_map/preview_size:
+
+- :ref:`int<class_int>` **editors/grid_map/preview_size**
+
+----
+
+.. _class_EditorSettings_property_editors/poly_editor/point_grab_radius:
+
+- :ref:`int<class_int>` **editors/poly_editor/point_grab_radius**
+
+----
+
+.. _class_EditorSettings_property_editors/poly_editor/show_previous_outline:
+
+- :ref:`bool<class_bool>` **editors/poly_editor/show_previous_outline**
+
+----
+
+.. _class_EditorSettings_property_editors/visual_editors/minimap_opacity:
+
+- :ref:`float<class_float>` **editors/visual_editors/minimap_opacity**
+
+----
+
+.. _class_EditorSettings_property_filesystem/directories/autoscan_project_path:
+
+- :ref:`String<class_String>` **filesystem/directories/autoscan_project_path**
+
+----
+
+.. _class_EditorSettings_property_filesystem/directories/default_project_path:
+
+- :ref:`String<class_String>` **filesystem/directories/default_project_path**
+
+----
+
+.. _class_EditorSettings_property_filesystem/file_dialog/display_mode:
+
+- :ref:`int<class_int>` **filesystem/file_dialog/display_mode**
+
+----
+
+.. _class_EditorSettings_property_filesystem/file_dialog/show_hidden_files:
+
+- :ref:`bool<class_bool>` **filesystem/file_dialog/show_hidden_files**
+
+----
+
+.. _class_EditorSettings_property_filesystem/file_dialog/thumbnail_size:
+
+- :ref:`int<class_int>` **filesystem/file_dialog/thumbnail_size**
+
+----
+
+.. _class_EditorSettings_property_filesystem/on_save/compress_binary_resources:
+
+- :ref:`bool<class_bool>` **filesystem/on_save/compress_binary_resources**
+
+----
+
+.. _class_EditorSettings_property_filesystem/on_save/safe_save_on_backup_then_rename:
+
+- :ref:`bool<class_bool>` **filesystem/on_save/safe_save_on_backup_then_rename**
+
+----
+
+.. _class_EditorSettings_property_interface/editor/automatically_open_screenshots:
+
+- :ref:`bool<class_bool>` **interface/editor/automatically_open_screenshots**
+
+----
+
+.. _class_EditorSettings_property_interface/editor/code_font:
+
+- :ref:`String<class_String>` **interface/editor/code_font**
+
+----
+
+.. _class_EditorSettings_property_interface/editor/code_font_size:
+
+- :ref:`int<class_int>` **interface/editor/code_font_size**
+
+----
+
+.. _class_EditorSettings_property_interface/editor/custom_display_scale:
+
+- :ref:`float<class_float>` **interface/editor/custom_display_scale**
+
+----
+
+.. _class_EditorSettings_property_interface/editor/dim_editor_on_dialog_popup:
+
+- :ref:`bool<class_bool>` **interface/editor/dim_editor_on_dialog_popup**
+
+----
+
+.. _class_EditorSettings_property_interface/editor/display_scale:
+
+- :ref:`int<class_int>` **interface/editor/display_scale**
+
+----
+
+.. _class_EditorSettings_property_interface/editor/editor_language:
+
+- :ref:`String<class_String>` **interface/editor/editor_language**
+
+----
+
+.. _class_EditorSettings_property_interface/editor/font_antialiased:
+
+- :ref:`bool<class_bool>` **interface/editor/font_antialiased**
+
+----
+
+.. _class_EditorSettings_property_interface/editor/font_hinting:
+
+- :ref:`int<class_int>` **interface/editor/font_hinting**
+
+----
+
+.. _class_EditorSettings_property_interface/editor/low_processor_mode_sleep_usec:
+
+- :ref:`float<class_float>` **interface/editor/low_processor_mode_sleep_usec**
+
+----
+
+.. _class_EditorSettings_property_interface/editor/main_font:
+
+- :ref:`String<class_String>` **interface/editor/main_font**
+
+----
+
+.. _class_EditorSettings_property_interface/editor/main_font_bold:
+
+- :ref:`String<class_String>` **interface/editor/main_font_bold**
+
+----
+
+.. _class_EditorSettings_property_interface/editor/main_font_size:
+
+- :ref:`int<class_int>` **interface/editor/main_font_size**
+
+----
+
+.. _class_EditorSettings_property_interface/editor/quit_confirmation:
+
+- :ref:`bool<class_bool>` **interface/editor/quit_confirmation**
+
+----
+
+.. _class_EditorSettings_property_interface/editor/save_each_scene_on_quit:
+
+- :ref:`bool<class_bool>` **interface/editor/save_each_scene_on_quit**
+
+----
+
+.. _class_EditorSettings_property_interface/editor/separate_distraction_mode:
+
+- :ref:`bool<class_bool>` **interface/editor/separate_distraction_mode**
+
+----
+
+.. _class_EditorSettings_property_interface/editor/unfocused_low_processor_mode_sleep_usec:
+
+- :ref:`float<class_float>` **interface/editor/unfocused_low_processor_mode_sleep_usec**
+
+----
+
+.. _class_EditorSettings_property_interface/inspector/max_array_dictionary_items_per_page:
+
+- :ref:`int<class_int>` **interface/inspector/max_array_dictionary_items_per_page**
+
+----
+
+.. _class_EditorSettings_property_interface/scene_tabs/minimum_width:
+
+- :ref:`int<class_int>` **interface/scene_tabs/minimum_width**
+
+----
+
+.. _class_EditorSettings_property_interface/scene_tabs/resize_if_many_tabs:
+
+- :ref:`bool<class_bool>` **interface/scene_tabs/resize_if_many_tabs**
+
+----
+
+.. _class_EditorSettings_property_interface/scene_tabs/show_script_button:
+
+- :ref:`bool<class_bool>` **interface/scene_tabs/show_script_button**
+
+----
+
+.. _class_EditorSettings_property_interface/scene_tabs/show_thumbnail_on_hover:
+
+- :ref:`bool<class_bool>` **interface/scene_tabs/show_thumbnail_on_hover**
+
+----
+
+.. _class_EditorSettings_property_interface/theme/accent_color:
+
+- :ref:`Color<class_Color>` **interface/theme/accent_color**
+
+----
+
+.. _class_EditorSettings_property_interface/theme/additional_spacing:
+
+- :ref:`float<class_float>` **interface/theme/additional_spacing**
+
+----
+
+.. _class_EditorSettings_property_interface/theme/base_color:
+
+- :ref:`Color<class_Color>` **interface/theme/base_color**
+
+----
+
+.. _class_EditorSettings_property_interface/theme/border_size:
+
+- :ref:`int<class_int>` **interface/theme/border_size**
+
+----
+
+.. _class_EditorSettings_property_interface/theme/contrast:
+
+- :ref:`float<class_float>` **interface/theme/contrast**
+
+----
+
+.. _class_EditorSettings_property_interface/theme/custom_theme:
+
+- :ref:`String<class_String>` **interface/theme/custom_theme**
+
+----
+
+.. _class_EditorSettings_property_interface/theme/highlight_tabs:
+
+- :ref:`bool<class_bool>` **interface/theme/highlight_tabs**
+
+----
+
+.. _class_EditorSettings_property_interface/theme/icon_and_font_color:
+
+- :ref:`int<class_int>` **interface/theme/icon_and_font_color**
+
+----
+
+.. _class_EditorSettings_property_interface/theme/preset:
+
+- :ref:`String<class_String>` **interface/theme/preset**
+
+----
+
+.. _class_EditorSettings_property_interface/theme/relationship_line_opacity:
+
+- :ref:`float<class_float>` **interface/theme/relationship_line_opacity**
+
+----
+
+.. _class_EditorSettings_property_interface/theme/use_graph_node_headers:
+
+- :ref:`bool<class_bool>` **interface/theme/use_graph_node_headers**
+
+----
+
+.. _class_EditorSettings_property_network/debug/remote_host:
+
+- :ref:`String<class_String>` **network/debug/remote_host**
+
+----
+
+.. _class_EditorSettings_property_network/debug/remote_port:
+
+- :ref:`int<class_int>` **network/debug/remote_port**
+
+----
+
+.. _class_EditorSettings_property_network/http_proxy/host:
+
+- :ref:`String<class_String>` **network/http_proxy/host**
+
+----
+
+.. _class_EditorSettings_property_network/http_proxy/port:
+
+- :ref:`int<class_int>` **network/http_proxy/port**
+
+----
+
+.. _class_EditorSettings_property_network/ssl/editor_ssl_certificates:
+
+- :ref:`String<class_String>` **network/ssl/editor_ssl_certificates**
+
+----
+
+.. _class_EditorSettings_property_project_manager/sorting_order:
+
+- :ref:`int<class_int>` **project_manager/sorting_order**
+
+----
+
+.. _class_EditorSettings_property_run/auto_save/save_before_running:
+
+- :ref:`bool<class_bool>` **run/auto_save/save_before_running**
+
+----
+
+.. _class_EditorSettings_property_run/output/always_clear_output_on_play:
+
+- :ref:`bool<class_bool>` **run/output/always_clear_output_on_play**
+
+----
+
+.. _class_EditorSettings_property_run/output/always_close_output_on_stop:
+
+- :ref:`bool<class_bool>` **run/output/always_close_output_on_stop**
+
+----
+
+.. _class_EditorSettings_property_run/output/always_open_output_on_play:
+
+- :ref:`bool<class_bool>` **run/output/always_open_output_on_play**
+
+----
+
+.. _class_EditorSettings_property_run/output/font_size:
+
+- :ref:`int<class_int>` **run/output/font_size**
+
+----
+
+.. _class_EditorSettings_property_run/window_placement/rect:
+
+- :ref:`int<class_int>` **run/window_placement/rect**
+
+----
+
+.. _class_EditorSettings_property_run/window_placement/rect_custom_position:
+
+- :ref:`Vector2<class_Vector2>` **run/window_placement/rect_custom_position**
+
+----
+
+.. _class_EditorSettings_property_run/window_placement/screen:
+
+- :ref:`int<class_int>` **run/window_placement/screen**
+
+----
+
+.. _class_EditorSettings_property_text_editor/appearance/code_folding:
+
+- :ref:`bool<class_bool>` **text_editor/appearance/code_folding**
+
+----
+
+.. _class_EditorSettings_property_text_editor/appearance/line_length_guideline_hard_column:
+
+- :ref:`int<class_int>` **text_editor/appearance/line_length_guideline_hard_column**
+
+----
+
+.. _class_EditorSettings_property_text_editor/appearance/line_length_guideline_soft_column:
+
+- :ref:`int<class_int>` **text_editor/appearance/line_length_guideline_soft_column**
+
+----
+
+.. _class_EditorSettings_property_text_editor/appearance/line_numbers_zero_padded:
+
+- :ref:`bool<class_bool>` **text_editor/appearance/line_numbers_zero_padded**
+
+----
+
+.. _class_EditorSettings_property_text_editor/appearance/show_bookmark_gutter:
+
+- :ref:`bool<class_bool>` **text_editor/appearance/show_bookmark_gutter**
+
+----
+
+.. _class_EditorSettings_property_text_editor/appearance/show_breakpoint_gutter:
+
+- :ref:`bool<class_bool>` **text_editor/appearance/show_breakpoint_gutter**
+
+----
+
+.. _class_EditorSettings_property_text_editor/appearance/show_info_gutter:
+
+- :ref:`bool<class_bool>` **text_editor/appearance/show_info_gutter**
+
+----
+
+.. _class_EditorSettings_property_text_editor/appearance/show_line_length_guidelines:
+
+- :ref:`bool<class_bool>` **text_editor/appearance/show_line_length_guidelines**
+
+----
+
+.. _class_EditorSettings_property_text_editor/appearance/show_line_numbers:
+
+- :ref:`bool<class_bool>` **text_editor/appearance/show_line_numbers**
+
+----
+
+.. _class_EditorSettings_property_text_editor/appearance/word_wrap:
+
+- :ref:`bool<class_bool>` **text_editor/appearance/word_wrap**
+
+----
+
+.. _class_EditorSettings_property_text_editor/completion/add_type_hints:
+
+- :ref:`bool<class_bool>` **text_editor/completion/add_type_hints**
+
+----
+
+.. _class_EditorSettings_property_text_editor/completion/auto_brace_complete:
+
+- :ref:`bool<class_bool>` **text_editor/completion/auto_brace_complete**
+
+----
+
+.. _class_EditorSettings_property_text_editor/completion/callhint_tooltip_offset:
+
+- :ref:`Vector2<class_Vector2>` **text_editor/completion/callhint_tooltip_offset**
+
+----
+
+.. _class_EditorSettings_property_text_editor/completion/code_complete_delay:
+
+- :ref:`float<class_float>` **text_editor/completion/code_complete_delay**
+
+----
+
+.. _class_EditorSettings_property_text_editor/completion/complete_file_paths:
+
+- :ref:`bool<class_bool>` **text_editor/completion/complete_file_paths**
+
+----
+
+.. _class_EditorSettings_property_text_editor/completion/idle_parse_delay:
+
+- :ref:`float<class_float>` **text_editor/completion/idle_parse_delay**
+
+----
+
+.. _class_EditorSettings_property_text_editor/completion/put_callhint_tooltip_below_current_line:
+
+- :ref:`bool<class_bool>` **text_editor/completion/put_callhint_tooltip_below_current_line**
+
+----
+
+.. _class_EditorSettings_property_text_editor/completion/use_single_quotes:
+
+- :ref:`bool<class_bool>` **text_editor/completion/use_single_quotes**
+
+----
+
+.. _class_EditorSettings_property_text_editor/cursor/block_caret:
+
+- :ref:`bool<class_bool>` **text_editor/cursor/block_caret**
+
+----
+
+.. _class_EditorSettings_property_text_editor/cursor/caret_blink:
+
+- :ref:`bool<class_bool>` **text_editor/cursor/caret_blink**
+
+----
+
+.. _class_EditorSettings_property_text_editor/cursor/caret_blink_speed:
+
+- :ref:`float<class_float>` **text_editor/cursor/caret_blink_speed**
+
+----
+
+.. _class_EditorSettings_property_text_editor/cursor/right_click_moves_caret:
+
+- :ref:`bool<class_bool>` **text_editor/cursor/right_click_moves_caret**
+
+----
+
+.. _class_EditorSettings_property_text_editor/cursor/scroll_past_end_of_file:
+
+- :ref:`bool<class_bool>` **text_editor/cursor/scroll_past_end_of_file**
+
+----
+
+.. _class_EditorSettings_property_text_editor/files/auto_reload_and_parse_scripts_on_save:
+
+- :ref:`bool<class_bool>` **text_editor/files/auto_reload_and_parse_scripts_on_save**
+
+----
+
+.. _class_EditorSettings_property_text_editor/files/auto_reload_scripts_on_external_change:
+
+- :ref:`bool<class_bool>` **text_editor/files/auto_reload_scripts_on_external_change**
+
+----
+
+.. _class_EditorSettings_property_text_editor/files/autosave_interval_secs:
+
+- :ref:`int<class_int>` **text_editor/files/autosave_interval_secs**
+
+----
+
+.. _class_EditorSettings_property_text_editor/files/restore_scripts_on_load:
+
+- :ref:`bool<class_bool>` **text_editor/files/restore_scripts_on_load**
+
+----
+
+.. _class_EditorSettings_property_text_editor/files/trim_trailing_whitespace_on_save:
+
+- :ref:`bool<class_bool>` **text_editor/files/trim_trailing_whitespace_on_save**
+
+----
+
+.. _class_EditorSettings_property_text_editor/help/help_font_size:
+
+- :ref:`int<class_int>` **text_editor/help/help_font_size**
+
+----
+
+.. _class_EditorSettings_property_text_editor/help/help_source_font_size:
+
+- :ref:`int<class_int>` **text_editor/help/help_source_font_size**
+
+----
+
+.. _class_EditorSettings_property_text_editor/help/help_title_font_size:
+
+- :ref:`int<class_int>` **text_editor/help/help_title_font_size**
+
+----
+
+.. _class_EditorSettings_property_text_editor/help/show_help_index:
+
+- :ref:`bool<class_bool>` **text_editor/help/show_help_index**
+
+----
+
+.. _class_EditorSettings_property_text_editor/highlighting/background_color:
+
+- :ref:`Color<class_Color>` **text_editor/highlighting/background_color**
+
+----
+
+.. _class_EditorSettings_property_text_editor/highlighting/base_type_color:
+
+- :ref:`Color<class_Color>` **text_editor/highlighting/base_type_color**
+
+----
+
+.. _class_EditorSettings_property_text_editor/highlighting/bookmark_color:
+
+- :ref:`Color<class_Color>` **text_editor/highlighting/bookmark_color**
+
+----
+
+.. _class_EditorSettings_property_text_editor/highlighting/brace_mismatch_color:
+
+- :ref:`Color<class_Color>` **text_editor/highlighting/brace_mismatch_color**
+
+----
+
+.. _class_EditorSettings_property_text_editor/highlighting/breakpoint_color:
+
+- :ref:`Color<class_Color>` **text_editor/highlighting/breakpoint_color**
+
+----
+
+.. _class_EditorSettings_property_text_editor/highlighting/caret_background_color:
+
+- :ref:`Color<class_Color>` **text_editor/highlighting/caret_background_color**
+
+----
+
+.. _class_EditorSettings_property_text_editor/highlighting/caret_color:
+
+- :ref:`Color<class_Color>` **text_editor/highlighting/caret_color**
+
+----
+
+.. _class_EditorSettings_property_text_editor/highlighting/code_folding_color:
+
+- :ref:`Color<class_Color>` **text_editor/highlighting/code_folding_color**
+
+----
+
+.. _class_EditorSettings_property_text_editor/highlighting/comment_color:
+
+- :ref:`Color<class_Color>` **text_editor/highlighting/comment_color**
+
+----
+
+.. _class_EditorSettings_property_text_editor/highlighting/completion_background_color:
+
+- :ref:`Color<class_Color>` **text_editor/highlighting/completion_background_color**
+
+----
+
+.. _class_EditorSettings_property_text_editor/highlighting/completion_existing_color:
+
+- :ref:`Color<class_Color>` **text_editor/highlighting/completion_existing_color**
+
+----
+
+.. _class_EditorSettings_property_text_editor/highlighting/completion_font_color:
+
+- :ref:`Color<class_Color>` **text_editor/highlighting/completion_font_color**
+
+----
+
+.. _class_EditorSettings_property_text_editor/highlighting/completion_scroll_color:
+
+- :ref:`Color<class_Color>` **text_editor/highlighting/completion_scroll_color**
+
+----
+
+.. _class_EditorSettings_property_text_editor/highlighting/completion_selected_color:
+
+- :ref:`Color<class_Color>` **text_editor/highlighting/completion_selected_color**
+
+----
+
+.. _class_EditorSettings_property_text_editor/highlighting/control_flow_keyword_color:
+
+- :ref:`Color<class_Color>` **text_editor/highlighting/control_flow_keyword_color**
+
+----
+
+.. _class_EditorSettings_property_text_editor/highlighting/current_line_color:
+
+- :ref:`Color<class_Color>` **text_editor/highlighting/current_line_color**
+
+----
+
+.. _class_EditorSettings_property_text_editor/highlighting/engine_type_color:
+
+- :ref:`Color<class_Color>` **text_editor/highlighting/engine_type_color**
+
+----
+
+.. _class_EditorSettings_property_text_editor/highlighting/executing_line_color:
+
+- :ref:`Color<class_Color>` **text_editor/highlighting/executing_line_color**
+
+----
+
+.. _class_EditorSettings_property_text_editor/highlighting/function_color:
+
+- :ref:`Color<class_Color>` **text_editor/highlighting/function_color**
+
+----
+
+.. _class_EditorSettings_property_text_editor/highlighting/highlight_all_occurrences:
+
+- :ref:`bool<class_bool>` **text_editor/highlighting/highlight_all_occurrences**
+
+----
+
+.. _class_EditorSettings_property_text_editor/highlighting/highlight_current_line:
+
+- :ref:`bool<class_bool>` **text_editor/highlighting/highlight_current_line**
+
+----
+
+.. _class_EditorSettings_property_text_editor/highlighting/highlight_type_safe_lines:
+
+- :ref:`bool<class_bool>` **text_editor/highlighting/highlight_type_safe_lines**
+
+----
+
+.. _class_EditorSettings_property_text_editor/highlighting/keyword_color:
+
+- :ref:`Color<class_Color>` **text_editor/highlighting/keyword_color**
+
+----
+
+.. _class_EditorSettings_property_text_editor/highlighting/line_length_guideline_color:
+
+- :ref:`Color<class_Color>` **text_editor/highlighting/line_length_guideline_color**
+
+----
+
+.. _class_EditorSettings_property_text_editor/highlighting/line_number_color:
+
+- :ref:`Color<class_Color>` **text_editor/highlighting/line_number_color**
+
+----
+
+.. _class_EditorSettings_property_text_editor/highlighting/mark_color:
+
+- :ref:`Color<class_Color>` **text_editor/highlighting/mark_color**
+
+----
+
+.. _class_EditorSettings_property_text_editor/highlighting/member_variable_color:
+
+- :ref:`Color<class_Color>` **text_editor/highlighting/member_variable_color**
+
+----
+
+.. _class_EditorSettings_property_text_editor/highlighting/number_color:
+
+- :ref:`Color<class_Color>` **text_editor/highlighting/number_color**
+
+----
+
+.. _class_EditorSettings_property_text_editor/highlighting/safe_line_number_color:
+
+- :ref:`Color<class_Color>` **text_editor/highlighting/safe_line_number_color**
+
+----
+
+.. _class_EditorSettings_property_text_editor/highlighting/search_result_border_color:
+
+- :ref:`Color<class_Color>` **text_editor/highlighting/search_result_border_color**
+
+----
+
+.. _class_EditorSettings_property_text_editor/highlighting/search_result_color:
+
+- :ref:`Color<class_Color>` **text_editor/highlighting/search_result_color**
+
+----
+
+.. _class_EditorSettings_property_text_editor/highlighting/selection_color:
+
+- :ref:`Color<class_Color>` **text_editor/highlighting/selection_color**
+
+----
+
+.. _class_EditorSettings_property_text_editor/highlighting/string_color:
+
+- :ref:`Color<class_Color>` **text_editor/highlighting/string_color**
+
+----
+
+.. _class_EditorSettings_property_text_editor/highlighting/symbol_color:
+
+- :ref:`Color<class_Color>` **text_editor/highlighting/symbol_color**
+
+----
+
+.. _class_EditorSettings_property_text_editor/highlighting/syntax_highlighting:
+
+- :ref:`bool<class_bool>` **text_editor/highlighting/syntax_highlighting**
+
+----
+
+.. _class_EditorSettings_property_text_editor/highlighting/text_color:
+
+- :ref:`Color<class_Color>` **text_editor/highlighting/text_color**
+
+----
+
+.. _class_EditorSettings_property_text_editor/highlighting/text_selected_color:
+
+- :ref:`Color<class_Color>` **text_editor/highlighting/text_selected_color**
+
+----
+
+.. _class_EditorSettings_property_text_editor/highlighting/user_type_color:
+
+- :ref:`Color<class_Color>` **text_editor/highlighting/user_type_color**
+
+----
+
+.. _class_EditorSettings_property_text_editor/highlighting/word_highlighted_color:
+
+- :ref:`Color<class_Color>` **text_editor/highlighting/word_highlighted_color**
+
+----
+
+.. _class_EditorSettings_property_text_editor/indent/auto_indent:
+
+- :ref:`bool<class_bool>` **text_editor/indent/auto_indent**
+
+----
+
+.. _class_EditorSettings_property_text_editor/indent/convert_indent_on_save:
+
+- :ref:`bool<class_bool>` **text_editor/indent/convert_indent_on_save**
+
+----
+
+.. _class_EditorSettings_property_text_editor/indent/draw_spaces:
+
+- :ref:`bool<class_bool>` **text_editor/indent/draw_spaces**
+
+----
+
+.. _class_EditorSettings_property_text_editor/indent/draw_tabs:
+
+- :ref:`bool<class_bool>` **text_editor/indent/draw_tabs**
+
+----
+
+.. _class_EditorSettings_property_text_editor/indent/size:
+
+- :ref:`int<class_int>` **text_editor/indent/size**
+
+----
+
+.. _class_EditorSettings_property_text_editor/indent/type:
+
+- :ref:`int<class_int>` **text_editor/indent/type**
+
+----
+
+.. _class_EditorSettings_property_text_editor/navigation/drag_and_drop_selection:
+
+- :ref:`bool<class_bool>` **text_editor/navigation/drag_and_drop_selection**
+
+----
+
+.. _class_EditorSettings_property_text_editor/navigation/minimap_width:
+
+- :ref:`int<class_int>` **text_editor/navigation/minimap_width**
+
+----
+
+.. _class_EditorSettings_property_text_editor/navigation/mouse_extra_buttons_navigate_history:
+
+- :ref:`bool<class_bool>` **text_editor/navigation/mouse_extra_buttons_navigate_history**
+
+----
+
+.. _class_EditorSettings_property_text_editor/navigation/show_minimap:
+
+- :ref:`bool<class_bool>` **text_editor/navigation/show_minimap**
+
+----
+
+.. _class_EditorSettings_property_text_editor/navigation/smooth_scrolling:
+
+- :ref:`bool<class_bool>` **text_editor/navigation/smooth_scrolling**
+
+----
+
+.. _class_EditorSettings_property_text_editor/navigation/stay_in_script_editor_on_node_selected:
+
+- :ref:`bool<class_bool>` **text_editor/navigation/stay_in_script_editor_on_node_selected**
+
+----
+
+.. _class_EditorSettings_property_text_editor/navigation/v_scroll_speed:
+
+- :ref:`int<class_int>` **text_editor/navigation/v_scroll_speed**
+
+----
+
+.. _class_EditorSettings_property_text_editor/script_list/show_members_overview:
+
+- :ref:`bool<class_bool>` **text_editor/script_list/show_members_overview**
+
+----
+
+.. _class_EditorSettings_property_text_editor/theme/color_theme:
+
+- :ref:`String<class_String>` **text_editor/theme/color_theme**
+
+----
+
+.. _class_EditorSettings_property_text_editor/theme/line_spacing:
+
+- :ref:`int<class_int>` **text_editor/theme/line_spacing**
+
+----
+
+.. _class_EditorSettings_property_text_editor/tools/sort_members_outline_alphabetically:
+
+- :ref:`bool<class_bool>` **text_editor/tools/sort_members_outline_alphabetically**
+
 Method Descriptions
 -------------------
 

+ 4 - 4
classes/class_file.rst

@@ -76,7 +76,7 @@ Methods
 +-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`int<class_int>`                         | :ref:`get_8<class_File_method_get_8>` **(** **)** |const|                                                                                                                                                                      |
 +-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_String>`                   | :ref:`get_as_text<class_File_method_get_as_text>` **(** **)** |const|                                                                                                                                                          |
+| :ref:`String<class_String>`                   | :ref:`get_as_text<class_File_method_get_as_text>` **(** :ref:`bool<class_bool>` skip_cr=true **)** |const|                                                                                                                     |
 +-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`PoolByteArray<class_PoolByteArray>`     | :ref:`get_buffer<class_File_method_get_buffer>` **(** :ref:`int<class_int>` len **)** |const|                                                                                                                                  |
 +-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
@@ -297,11 +297,11 @@ Returns the next 8 bits from the file as an integer. See :ref:`store_8<class_Fil
 
 .. _class_File_method_get_as_text:
 
-- :ref:`String<class_String>` **get_as_text** **(** **)** |const|
+- :ref:`String<class_String>` **get_as_text** **(** :ref:`bool<class_bool>` skip_cr=true **)** |const|
 
-Returns the whole file as a :ref:`String<class_String>`.
+Returns the whole file as a :ref:`String<class_String>`. Text is interpreted as being UTF-8 encoded.
 
-Text is interpreted as being UTF-8 encoded.
+If ``skip_cr`` is ``true``, carriage return characters (``\r``, CR) will be ignored when parsing the UTF-8, so that only line feed characters (``\n``, LF) represent a new line (Unix convention).
 
 ----
 

+ 18 - 0
classes/class_filedialog.rst

@@ -39,6 +39,8 @@ Properties
 +-----------------------------------------------+-----------------------------------------------------------------------------+---------------------------------------------------------------------------------------------+
 | :ref:`bool<class_bool>`                       | :ref:`mode_overrides_title<class_FileDialog_property_mode_overrides_title>` | ``true``                                                                                    |
 +-----------------------------------------------+-----------------------------------------------------------------------------+---------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`                   | :ref:`root_subfolder<class_FileDialog_property_root_subfolder>`             | ``""``                                                                                      |
++-----------------------------------------------+-----------------------------------------------------------------------------+---------------------------------------------------------------------------------------------+
 | :ref:`bool<class_bool>`                       | :ref:`show_hidden_files<class_FileDialog_property_show_hidden_files>`       | ``false``                                                                                   |
 +-----------------------------------------------+-----------------------------------------------------------------------------+---------------------------------------------------------------------------------------------+
 | :ref:`String<class_String>`                   | window_title                                                                | ``"Save a File"`` (overrides :ref:`WindowDialog<class_WindowDialog_property_window_title>`) |
@@ -263,6 +265,22 @@ If ``true``, changing the ``Mode`` property will set the window title accordingl
 
 ----
 
+.. _class_FileDialog_property_root_subfolder:
+
+- :ref:`String<class_String>` **root_subfolder**
+
++-----------+---------------------------+
+| *Default* | ``""``                    |
++-----------+---------------------------+
+| *Setter*  | set_root_subfolder(value) |
++-----------+---------------------------+
+| *Getter*  | get_root_subfolder()      |
++-----------+---------------------------+
+
+If non-empty, the given sub-folder will be "root" of this ``FileDialog``, i.e. user won't be able to go to its parent directory.
+
+----
+
 .. _class_FileDialog_property_show_hidden_files:
 
 - :ref:`bool<class_bool>` **show_hidden_files**

+ 2 - 0
classes/class_font.rst

@@ -104,6 +104,8 @@ See also :ref:`CanvasItem.draw_string<class_CanvasItem_method_draw_string>`.
 
 Draw character ``char`` into a canvas item using the font at a given position, with ``modulate`` color, and optionally kerning if ``next`` is passed. clipping the width. ``position`` specifies the baseline, not the top. To draw from the top, *ascent* must be added to the Y axis. The width used by the character is returned, making this function useful for drawing strings character by character.
 
+If ``outline`` is ``true``, the outline of the character is drawn instead of the character itself.
+
 ----
 
 .. _class_Font_method_get_ascent:

+ 3 - 1
classes/class_gradient.rst

@@ -17,7 +17,9 @@ A color interpolator resource which can be used to generate colors between user-
 Description
 -----------
 
-Given a set of colors, this resource will interpolate them in order. This means that if you have color 1, color 2 and color 3, the ramp will interpolate from color 1 to color 2 and from color 2 to color 3. The ramp will initially have 2 colors (black and white), one (black) at ramp lower offset 0 and the other (white) at the ramp higher offset 1.
+Given a set of colors, this resource will interpolate them in order. This means that if you have color 1, color 2 and color 3, the gradient will interpolate from color 1 to color 2 and from color 2 to color 3. The gradient will initially have 2 colors (black and white), one (black) at gradient lower offset 0 and the other (white) at the gradient higher offset 1.
+
+See also :ref:`Curve<class_Curve>` which supports more complex easing methods, but does not support colors.
 
 Properties
 ----------

+ 23 - 5
classes/class_gradienttexture.rst

@@ -22,11 +22,13 @@ GradientTexture uses a :ref:`Gradient<class_Gradient>` to fill the texture data.
 Properties
 ----------
 
-+---------------------------------+----------------------------------------------------------+----------+
-| :ref:`Gradient<class_Gradient>` | :ref:`gradient<class_GradientTexture_property_gradient>` |          |
-+---------------------------------+----------------------------------------------------------+----------+
-| :ref:`int<class_int>`           | :ref:`width<class_GradientTexture_property_width>`       | ``2048`` |
-+---------------------------------+----------------------------------------------------------+----------+
++---------------------------------+----------------------------------------------------------+-----------+
+| :ref:`Gradient<class_Gradient>` | :ref:`gradient<class_GradientTexture_property_gradient>` |           |
++---------------------------------+----------------------------------------------------------+-----------+
+| :ref:`bool<class_bool>`         | :ref:`use_hdr<class_GradientTexture_property_use_hdr>`   | ``false`` |
++---------------------------------+----------------------------------------------------------+-----------+
+| :ref:`int<class_int>`           | :ref:`width<class_GradientTexture_property_width>`       | ``2048``  |
++---------------------------------+----------------------------------------------------------+-----------+
 
 Property Descriptions
 ---------------------
@@ -45,6 +47,22 @@ The :ref:`Gradient<class_Gradient>` that will be used to fill the texture.
 
 ----
 
+.. _class_GradientTexture_property_use_hdr:
+
+- :ref:`bool<class_bool>` **use_hdr**
+
++-----------+--------------------+
+| *Default* | ``false``          |
++-----------+--------------------+
+| *Setter*  | set_use_hdr(value) |
++-----------+--------------------+
+| *Getter*  | is_using_hdr()     |
++-----------+--------------------+
+
+If ``true``, the generated texture will support high dynamic range (:ref:`Image.FORMAT_RGBAF<class_Image_constant_FORMAT_RGBAF>` format). This allows for glow effects to work if :ref:`Environment.glow_enabled<class_Environment_property_glow_enabled>` is ``true``. If ``false``, the generated texture will use low dynamic range; overbright colors will be clamped (:ref:`Image.FORMAT_RGBA8<class_Image_constant_FORMAT_RGBA8>` format).
+
+----
+
 .. _class_GradientTexture_property_width:
 
 - :ref:`int<class_int>` **width**

+ 2 - 2
classes/class_graphedit.rst

@@ -171,7 +171,7 @@ Emitted when user dragging connection from output port into empty space of the g
 
 - **copy_nodes_request** **(** **)**
 
-Emitted when the user presses ``Ctrl + C``.
+Emitted when the user presses :kbd:`Ctrl + C`.
 
 ----
 
@@ -217,7 +217,7 @@ Emitted when a GraphNode is selected.
 
 - **paste_nodes_request** **(** **)**
 
-Emitted when the user presses ``Ctrl + V``.
+Emitted when the user presses :kbd:`Ctrl + V`.
 
 ----
 

+ 16 - 0
classes/class_graphnode.rst

@@ -179,12 +179,28 @@ Emitted when the GraphNode is requested to be resized. Happens on dragging the r
 
 ----
 
+.. _class_GraphNode_signal_selected:
+
+- **selected** **(** **)**
+
+Emitted when the GraphNode is selected.
+
+----
+
 .. _class_GraphNode_signal_slot_updated:
 
 - **slot_updated** **(** :ref:`int<class_int>` idx **)**
 
 Emitted when any GraphNode's slot is updated.
 
+----
+
+.. _class_GraphNode_signal_unselected:
+
+- **unselected** **(** **)**
+
+Emitted when the GraphNode is unselected.
+
 Enumerations
 ------------
 

+ 3 - 1
classes/class_httpclient.rst

@@ -17,7 +17,9 @@ Low-level hyper-text transfer protocol client.
 Description
 -----------
 
-Hyper-text transfer protocol client (sometimes called "User Agent"). Used to make HTTP requests to download web content, upload files and other data or to communicate with various services, among other use cases. **See the :ref:`HTTPRequest<class_HTTPRequest>` node for a higher-level alternative.**\ 
+Hyper-text transfer protocol client (sometimes called "User Agent"). Used to make HTTP requests to download web content, upload files and other data or to communicate with various services, among other use cases.
+
+See the :ref:`HTTPRequest<class_HTTPRequest>` node for a higher-level alternative.
 
 \ **Note:** This client only needs to connect to a host once (see :ref:`connect_to_host<class_HTTPClient_method_connect_to_host>`) to send multiple requests. Because of this, methods that take URLs usually take just the part after the host instead of the full URL, as the client is already connected to a host. See :ref:`request<class_HTTPClient_method_request>` for a full example and to get started.
 

+ 13 - 5
classes/class_input.rst

@@ -83,7 +83,7 @@ Methods
 +--------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`Vector2<class_Vector2>`              | :ref:`get_joy_vibration_strength<class_Input_method_get_joy_vibration_strength>` **(** :ref:`int<class_int>` device **)**                                                                                                                                                    |
 +--------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Vector2<class_Vector2>`              | :ref:`get_last_mouse_speed<class_Input_method_get_last_mouse_speed>` **(** **)** |const|                                                                                                                                                                                     |
+| :ref:`Vector2<class_Vector2>`              | :ref:`get_last_mouse_speed<class_Input_method_get_last_mouse_speed>` **(** **)**                                                                                                                                                                                             |
 +--------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`Vector3<class_Vector3>`              | :ref:`get_magnetometer<class_Input_method_get_magnetometer>` **(** **)** |const|                                                                                                                                                                                             |
 +--------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
@@ -156,6 +156,8 @@ Enumerations
 
 .. _class_Input_constant_MOUSE_MODE_CONFINED:
 
+.. _class_Input_constant_MOUSE_MODE_CONFINED_HIDDEN:
+
 enum **MouseMode**:
 
 - **MOUSE_MODE_VISIBLE** = **0** --- Makes the mouse cursor visible if it is hidden.
@@ -166,7 +168,9 @@ enum **MouseMode**:
 
 \ **Note:** If you want to process the mouse's movement in this mode, you need to use :ref:`InputEventMouseMotion.relative<class_InputEventMouseMotion_property_relative>`.
 
-- **MOUSE_MODE_CONFINED** = **3** --- Makes the mouse cursor visible but confines it to the game window.
+- **MOUSE_MODE_CONFINED** = **3** --- Confines the mouse cursor to the game window, and make it visible.
+
+- **MOUSE_MODE_CONFINED_HIDDEN** = **4** --- Confines the mouse cursor to the game window, and make it hidden.
 
 ----
 
@@ -468,9 +472,9 @@ Returns the strength of the joypad vibration: x is the strength of the weak moto
 
 .. _class_Input_method_get_last_mouse_speed:
 
-- :ref:`Vector2<class_Vector2>` **get_last_mouse_speed** **(** **)** |const|
+- :ref:`Vector2<class_Vector2>` **get_last_mouse_speed** **(** **)**
 
-Returns the mouse speed for the last time the cursor was moved, and this until the next frame where the mouse moves. This means that even if the mouse is not moving, this function will still return the value of the last motion.
+Returns the last mouse speed. To provide a precise and jitter-free speed, mouse speed is only calculated every 0.1s. Therefore, mouse speed will lag mouse movements.
 
 ----
 
@@ -713,12 +717,16 @@ Stops the vibration of the joypad.
 
 - void **vibrate_handheld** **(** :ref:`int<class_int>` duration_ms=500 **)**
 
-Vibrate Android and iOS devices.
+Vibrate handheld devices.
+
+\ **Note:** This method is implemented on Android, iOS, and HTML5.
 
 \ **Note:** For Android, it requires enabling the ``VIBRATE`` permission in the export preset.
 
 \ **Note:** For iOS, specifying the duration is supported in iOS 13 and later.
 
+\ **Note:** Some web browsers such as Safari and Firefox for Android do not support this method.
+
 ----
 
 .. _class_Input_method_warp_mouse_position:

+ 2 - 2
classes/class_inputeventkey.rst

@@ -140,7 +140,7 @@ Method Descriptions
 
 - :ref:`int<class_int>` **get_physical_scancode_with_modifiers** **(** **)** |const|
 
-Returns the physical scancode combined with modifier keys such as ``Shift`` or ``Alt``. See also :ref:`InputEventWithModifiers<class_InputEventWithModifiers>`.
+Returns the physical scancode combined with modifier keys such as :kbd:`Shift` or :kbd:`Alt`. See also :ref:`InputEventWithModifiers<class_InputEventWithModifiers>`.
 
 To get a human-readable representation of the ``InputEventKey`` with modifiers, use ``OS.get_scancode_string(event.get_physical_scancode_with_modifiers())`` where ``event`` is the ``InputEventKey``.
 
@@ -150,7 +150,7 @@ To get a human-readable representation of the ``InputEventKey`` with modifiers,
 
 - :ref:`int<class_int>` **get_scancode_with_modifiers** **(** **)** |const|
 
-Returns the scancode combined with modifier keys such as ``Shift`` or ``Alt``. See also :ref:`InputEventWithModifiers<class_InputEventWithModifiers>`.
+Returns the scancode combined with modifier keys such as :kbd:`Shift` or :kbd:`Alt`. See also :ref:`InputEventWithModifiers<class_InputEventWithModifiers>`.
 
 To get a human-readable representation of the ``InputEventKey`` with modifiers, use ``OS.get_scancode_string(event.get_scancode_with_modifiers())`` where ``event`` is the ``InputEventKey``.
 

+ 6 - 6
classes/class_inputeventwithmodifiers.rst

@@ -19,7 +19,7 @@ Base class for keys events with modifiers.
 Description
 -----------
 
-Contains keys events information with modifiers support like ``Shift`` or ``Alt``. See :ref:`Node._input<class_Node_method__input>`.
+Contains keys events information with modifiers support like :kbd:`Shift` or :kbd:`Alt`. See :ref:`Node._input<class_Node_method__input>`.
 
 Tutorials
 ---------
@@ -56,7 +56,7 @@ Property Descriptions
 | *Getter*  | get_alt()      |
 +-----------+----------------+
 
-State of the ``Alt`` modifier.
+State of the :kbd:`Alt` modifier.
 
 ----
 
@@ -72,7 +72,7 @@ State of the ``Alt`` modifier.
 | *Getter*  | get_command()      |
 +-----------+--------------------+
 
-State of the ``Command`` modifier.
+State of the :kbd:`Command` modifier.
 
 ----
 
@@ -88,7 +88,7 @@ State of the ``Command`` modifier.
 | *Getter*  | get_control()      |
 +-----------+--------------------+
 
-State of the ``Ctrl`` modifier.
+State of the :kbd:`Ctrl` modifier.
 
 ----
 
@@ -104,7 +104,7 @@ State of the ``Ctrl`` modifier.
 | *Getter*  | get_metakey()      |
 +-----------+--------------------+
 
-State of the ``Meta`` modifier.
+State of the :kbd:`Meta` modifier.
 
 ----
 
@@ -120,7 +120,7 @@ State of the ``Meta`` modifier.
 | *Getter*  | get_shift()      |
 +-----------+------------------+
 
-State of the ``Shift`` modifier.
+State of the :kbd:`Shift` modifier.
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`

+ 7 - 1
classes/class_instanceplaceholder.rst

@@ -41,7 +41,9 @@ Method Descriptions
 
 - :ref:`Node<class_Node>` **create_instance** **(** :ref:`bool<class_bool>` replace=false, :ref:`PackedScene<class_PackedScene>` custom_scene=null **)**
 
-Not thread-safe. Use :ref:`Object.call_deferred<class_Object_method_call_deferred>` if calling from a thread.
+Call this method to actually load in the node. The created node will be placed as a sibling *above* the ``InstancePlaceholder`` in the scene tree. The :ref:`Node<class_Node>`'s reference is also returned for convenience.
+
+\ **Note:** :ref:`create_instance<class_InstancePlaceholder_method_create_instance>` is not thread-safe. Use :ref:`Object.call_deferred<class_Object_method_call_deferred>` if calling from a thread.
 
 ----
 
@@ -57,6 +59,10 @@ Gets the path to the :ref:`PackedScene<class_PackedScene>` resource file that is
 
 - :ref:`Dictionary<class_Dictionary>` **get_stored_values** **(** :ref:`bool<class_bool>` with_order=false **)**
 
+Returns the list of properties that will be applied to the node when :ref:`create_instance<class_InstancePlaceholder_method_create_instance>` is called.
+
+If ``with_order`` is ``true``, a key named ``.order`` (note the leading period) is added to the dictionary. This ``.order`` key is an :ref:`Array<class_Array>` of :ref:`String<class_String>` property names specifying the order in which properties will be applied (with index 0 being the first).
+
 ----
 
 .. _class_InstancePlaceholder_method_replace_by_instance:

+ 4 - 4
classes/class_itemlist.rst

@@ -19,7 +19,7 @@ Description
 
 This control provides a selectable list of items that may be in a single (or multiple columns) with option of text, icons, or both text and icon. Tooltips are supported and may be different for every item in the list.
 
-Selectable items in the list may be selected or deselected and multiple selection may be enabled. Selection with right mouse button may also be enabled to allow use of popup context menus. Items may also be "activated" by double-clicking them or by pressing Enter.
+Selectable items in the list may be selected or deselected and multiple selection may be enabled. Selection with right mouse button may also be enabled to allow use of popup context menus. Items may also be "activated" by double-clicking them or by pressing :kbd:`Enter`.
 
 Item text only supports single-line strings, newline characters (e.g. ``\n``) in the string won't produce a newline. Text wrapping is enabled in :ref:`ICON_MODE_TOP<class_ItemList_constant_ICON_MODE_TOP>` mode, but column's width is adjusted to fully fit its content by default. You need to set :ref:`fixed_column_width<class_ItemList_property_fixed_column_width>` greater than zero to wrap the text.
 
@@ -181,7 +181,7 @@ Signals
 
 - **item_activated** **(** :ref:`int<class_int>` index **)**
 
-Triggered when specified list item is activated via double-clicking or by pressing Enter.
+Triggered when specified list item is activated via double-clicking or by pressing :kbd:`Enter`.
 
 ----
 
@@ -258,7 +258,7 @@ enum **SelectMode**:
 
 - **SELECT_SINGLE** = **0** --- Only allow selecting a single item.
 
-- **SELECT_MULTI** = **1** --- Allows selecting multiple items by holding Ctrl or Shift.
+- **SELECT_MULTI** = **1** --- Allows selecting multiple items by holding :kbd:`Ctrl` or :kbd:`Shift`.
 
 Property Descriptions
 ---------------------
@@ -682,7 +682,7 @@ Sets the foreground color of the item specified by ``idx`` index to the specifie
 
 Disables (or enables) the item at the specified index.
 
-Disabled items cannot be selected and do not trigger activation signals (when double-clicking or pressing Enter).
+Disabled items cannot be selected and do not trigger activation signals (when double-clicking or pressing :kbd:`Enter`).
 
 ----
 

+ 23 - 23
classes/class_line2d.rst

@@ -62,19 +62,19 @@ Properties
 Methods
 -------
 
-+-------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
-| void                          | :ref:`add_point<class_Line2D_method_add_point>` **(** :ref:`Vector2<class_Vector2>` position, :ref:`int<class_int>` at_position=-1 **)**      |
-+-------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
-| void                          | :ref:`clear_points<class_Line2D_method_clear_points>` **(** **)**                                                                             |
-+-------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`         | :ref:`get_point_count<class_Line2D_method_get_point_count>` **(** **)** |const|                                                               |
-+-------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Vector2<class_Vector2>` | :ref:`get_point_position<class_Line2D_method_get_point_position>` **(** :ref:`int<class_int>` i **)** |const|                                 |
-+-------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
-| void                          | :ref:`remove_point<class_Line2D_method_remove_point>` **(** :ref:`int<class_int>` i **)**                                                     |
-+-------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
-| void                          | :ref:`set_point_position<class_Line2D_method_set_point_position>` **(** :ref:`int<class_int>` i, :ref:`Vector2<class_Vector2>` position **)** |
-+-------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                          | :ref:`add_point<class_Line2D_method_add_point>` **(** :ref:`Vector2<class_Vector2>` position, :ref:`int<class_int>` index=-1 **)**                |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                          | :ref:`clear_points<class_Line2D_method_clear_points>` **(** **)**                                                                                 |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`         | :ref:`get_point_count<class_Line2D_method_get_point_count>` **(** **)** |const|                                                                   |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Vector2<class_Vector2>` | :ref:`get_point_position<class_Line2D_method_get_point_position>` **(** :ref:`int<class_int>` index **)** |const|                                 |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                          | :ref:`remove_point<class_Line2D_method_remove_point>` **(** :ref:`int<class_int>` index **)**                                                     |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                          | :ref:`set_point_position<class_Line2D_method_set_point_position>` **(** :ref:`int<class_int>` index, :ref:`Vector2<class_Vector2>` position **)** |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------+
 
 Enumerations
 ------------
@@ -345,11 +345,11 @@ Method Descriptions
 
 .. _class_Line2D_method_add_point:
 
-- void **add_point** **(** :ref:`Vector2<class_Vector2>` position, :ref:`int<class_int>` at_position=-1 **)**
+- void **add_point** **(** :ref:`Vector2<class_Vector2>` position, :ref:`int<class_int>` index=-1 **)**
 
-Adds a point at the ``position``. Appends the point at the end of the line.
+Adds a point with the specified ``position`` relative to the line's own position. Appends the new point at the end of the point list.
 
-If ``at_position`` is given, the point is inserted before the point number ``at_position``, moving that point (and every point after) after the inserted point. If ``at_position`` is not given, or is an illegal value (``at_position < 0`` or ``at_position >= [method get_point_count]``), the point will be appended at the end of the point list.
+If ``index`` is given, the new point is inserted before the existing point identified by index ``index``. Every existing point starting from ``index`` is shifted further down the list of points. The index must be greater than or equal to ``0`` and must not exceed the number of existing points in the line. See :ref:`get_point_count<class_Line2D_method_get_point_count>`.
 
 ----
 
@@ -365,31 +365,31 @@ Removes all points from the line.
 
 - :ref:`int<class_int>` **get_point_count** **(** **)** |const|
 
-Returns the Line2D's amount of points.
+Returns the amount of points in the line.
 
 ----
 
 .. _class_Line2D_method_get_point_position:
 
-- :ref:`Vector2<class_Vector2>` **get_point_position** **(** :ref:`int<class_int>` i **)** |const|
+- :ref:`Vector2<class_Vector2>` **get_point_position** **(** :ref:`int<class_int>` index **)** |const|
 
-Returns point ``i``'s position.
+Returns the position of the point at index ``index``.
 
 ----
 
 .. _class_Line2D_method_remove_point:
 
-- void **remove_point** **(** :ref:`int<class_int>` i **)**
+- void **remove_point** **(** :ref:`int<class_int>` index **)**
 
-Removes the point at index ``i`` from the line.
+Removes the point at index ``index`` from the line.
 
 ----
 
 .. _class_Line2D_method_set_point_position:
 
-- void **set_point_position** **(** :ref:`int<class_int>` i, :ref:`Vector2<class_Vector2>` position **)**
+- void **set_point_position** **(** :ref:`int<class_int>` index, :ref:`Vector2<class_Vector2>` position **)**
 
-Overwrites the position in point ``i`` with the supplied ``position``.
+Overwrites the position of the point at index ``index`` with the supplied ``position``.
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`

+ 120 - 62
classes/class_lineedit.rst

@@ -21,90 +21,92 @@ LineEdit provides a single-line string editor, used for text fields.
 
 It features many built-in shortcuts which will always be available (``Ctrl`` here maps to ``Command`` on macOS):
 
-- Ctrl + C: Copy
+- :kbd:`Ctrl + C`: Copy
 
-- Ctrl + X: Cut
+- :kbd:`Ctrl + X`: Cut
 
-- Ctrl + V or Ctrl + Y: Paste/"yank"
+- :kbd:`Ctrl + V or Ctrl + Y`: Paste/"yank"
 
-- Ctrl + Z: Undo
+- :kbd:`Ctrl + Z`: Undo
 
-- Ctrl + Shift + Z: Redo
+- :kbd:`Ctrl + Shift + Z`: Redo
 
-- Ctrl + U: Delete text from the cursor position to the beginning of the line
+- :kbd:`Ctrl + U`: Delete text from the cursor position to the beginning of the line
 
-- Ctrl + K: Delete text from the cursor position to the end of the line
+- :kbd:`Ctrl + K`: Delete text from the cursor position to the end of the line
 
-- Ctrl + A: Select all text
+- :kbd:`Ctrl + A`: Select all text
 
-- Up/Down arrow: Move the cursor to the beginning/end of the line
+- :kbd:`Up Arrow`/:kbd:`Down arrow`: Move the cursor to the beginning/end of the line
 
 On macOS, some extra keyboard shortcuts are available:
 
-- Ctrl + F: Like the right arrow key, move the cursor one character right
+- :kbd:`Ctrl + F`: Same as :kbd:`Right Arrow`, move the cursor one character right
 
-- Ctrl + B: Like the left arrow key, move the cursor one character left
+- :kbd:`Ctrl + B`: Same as :kbd:`Left Arrow`, move the cursor one character left
 
-- Ctrl + P: Like the up arrow key, move the cursor to the previous line
+- :kbd:`Ctrl + P`: Same as :kbd:`Up Arrow`, move the cursor to the previous line
 
-- Ctrl + N: Like the down arrow key, move the cursor to the next line
+- :kbd:`Ctrl + N`: Same as :kbd:`Down Arrow`, move the cursor to the next line
 
-- Ctrl + D: Like the Delete key, delete the character on the right side of cursor
+- :kbd:`Ctrl + D`: Same as :kbd:`Delete`, delete the character on the right side of cursor
 
-- Ctrl + H: Like the Backspace key, delete the character on the left side of the cursor
+- :kbd:`Ctrl + H`: Same as :kbd:`Backspace`, delete the character on the left side of the cursor
 
-- Command + Left arrow: Like the Home key, move the cursor to the beginning of the line
+- :kbd:`Cmd + Left arrow`: Same as :kbd:`Home`, move the cursor to the beginning of the line
 
-- Command + Right arrow: Like the End key, move the cursor to the end of the line
+- :kbd:`Cmd + Right arrow`: Same as :kbd:`End`, move the cursor to the end of the line
 
 Properties
 ----------
 
-+----------------------------------------------+-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
-| :ref:`Align<enum_LineEdit_Align>`            | :ref:`align<class_LineEdit_property_align>`                                                   | ``0``                                                                               |
-+----------------------------------------------+-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                      | :ref:`caret_blink<class_LineEdit_property_caret_blink>`                                       | ``false``                                                                           |
-+----------------------------------------------+-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                    | :ref:`caret_blink_speed<class_LineEdit_property_caret_blink_speed>`                           | ``0.65``                                                                            |
-+----------------------------------------------+-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                        | :ref:`caret_position<class_LineEdit_property_caret_position>`                                 | ``0``                                                                               |
-+----------------------------------------------+-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                      | :ref:`clear_button_enabled<class_LineEdit_property_clear_button_enabled>`                     | ``false``                                                                           |
-+----------------------------------------------+-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                      | :ref:`context_menu_enabled<class_LineEdit_property_context_menu_enabled>`                     | ``true``                                                                            |
-+----------------------------------------------+-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                      | :ref:`deselect_on_focus_loss_enabled<class_LineEdit_property_deselect_on_focus_loss_enabled>` | ``true``                                                                            |
-+----------------------------------------------+-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                      | :ref:`editable<class_LineEdit_property_editable>`                                             | ``true``                                                                            |
-+----------------------------------------------+-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                      | :ref:`expand_to_text_length<class_LineEdit_property_expand_to_text_length>`                   | ``false``                                                                           |
-+----------------------------------------------+-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
-| :ref:`FocusMode<enum_Control_FocusMode>`     | focus_mode                                                                                    | ``2`` (overrides :ref:`Control<class_Control_property_focus_mode>`)                 |
-+----------------------------------------------+-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                        | :ref:`max_length<class_LineEdit_property_max_length>`                                         | ``0``                                                                               |
-+----------------------------------------------+-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                      | :ref:`middle_mouse_paste_enabled<class_LineEdit_property_middle_mouse_paste_enabled>`         | ``true``                                                                            |
-+----------------------------------------------+-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
-| :ref:`CursorShape<enum_Control_CursorShape>` | mouse_default_cursor_shape                                                                    | ``1`` (overrides :ref:`Control<class_Control_property_mouse_default_cursor_shape>`) |
-+----------------------------------------------+-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                    | :ref:`placeholder_alpha<class_LineEdit_property_placeholder_alpha>`                           | ``0.6``                                                                             |
-+----------------------------------------------+-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
-| :ref:`String<class_String>`                  | :ref:`placeholder_text<class_LineEdit_property_placeholder_text>`                             | ``""``                                                                              |
-+----------------------------------------------+-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
-| :ref:`Texture<class_Texture>`                | :ref:`right_icon<class_LineEdit_property_right_icon>`                                         |                                                                                     |
-+----------------------------------------------+-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                      | :ref:`secret<class_LineEdit_property_secret>`                                                 | ``false``                                                                           |
-+----------------------------------------------+-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
-| :ref:`String<class_String>`                  | :ref:`secret_character<class_LineEdit_property_secret_character>`                             | ``"*"``                                                                             |
-+----------------------------------------------+-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                      | :ref:`selecting_enabled<class_LineEdit_property_selecting_enabled>`                           | ``true``                                                                            |
-+----------------------------------------------+-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                      | :ref:`shortcut_keys_enabled<class_LineEdit_property_shortcut_keys_enabled>`                   | ``true``                                                                            |
-+----------------------------------------------+-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
-| :ref:`String<class_String>`                  | :ref:`text<class_LineEdit_property_text>`                                                     | ``""``                                                                              |
-+----------------------------------------------+-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                      | :ref:`virtual_keyboard_enabled<class_LineEdit_property_virtual_keyboard_enabled>`             | ``true``                                                                            |
-+----------------------------------------------+-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
++---------------------------------------------------------------+-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
+| :ref:`Align<enum_LineEdit_Align>`                             | :ref:`align<class_LineEdit_property_align>`                                                   | ``0``                                                                               |
++---------------------------------------------------------------+-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                                       | :ref:`caret_blink<class_LineEdit_property_caret_blink>`                                       | ``false``                                                                           |
++---------------------------------------------------------------+-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                                     | :ref:`caret_blink_speed<class_LineEdit_property_caret_blink_speed>`                           | ``0.65``                                                                            |
++---------------------------------------------------------------+-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                                         | :ref:`caret_position<class_LineEdit_property_caret_position>`                                 | ``0``                                                                               |
++---------------------------------------------------------------+-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                                       | :ref:`clear_button_enabled<class_LineEdit_property_clear_button_enabled>`                     | ``false``                                                                           |
++---------------------------------------------------------------+-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                                       | :ref:`context_menu_enabled<class_LineEdit_property_context_menu_enabled>`                     | ``true``                                                                            |
++---------------------------------------------------------------+-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                                       | :ref:`deselect_on_focus_loss_enabled<class_LineEdit_property_deselect_on_focus_loss_enabled>` | ``true``                                                                            |
++---------------------------------------------------------------+-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                                       | :ref:`editable<class_LineEdit_property_editable>`                                             | ``true``                                                                            |
++---------------------------------------------------------------+-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                                       | :ref:`expand_to_text_length<class_LineEdit_property_expand_to_text_length>`                   | ``false``                                                                           |
++---------------------------------------------------------------+-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
+| :ref:`FocusMode<enum_Control_FocusMode>`                      | focus_mode                                                                                    | ``2`` (overrides :ref:`Control<class_Control_property_focus_mode>`)                 |
++---------------------------------------------------------------+-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                                         | :ref:`max_length<class_LineEdit_property_max_length>`                                         | ``0``                                                                               |
++---------------------------------------------------------------+-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                                       | :ref:`middle_mouse_paste_enabled<class_LineEdit_property_middle_mouse_paste_enabled>`         | ``true``                                                                            |
++---------------------------------------------------------------+-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
+| :ref:`CursorShape<enum_Control_CursorShape>`                  | mouse_default_cursor_shape                                                                    | ``1`` (overrides :ref:`Control<class_Control_property_mouse_default_cursor_shape>`) |
++---------------------------------------------------------------+-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                                     | :ref:`placeholder_alpha<class_LineEdit_property_placeholder_alpha>`                           | ``0.6``                                                                             |
++---------------------------------------------------------------+-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`                                   | :ref:`placeholder_text<class_LineEdit_property_placeholder_text>`                             | ``""``                                                                              |
++---------------------------------------------------------------+-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
+| :ref:`Texture<class_Texture>`                                 | :ref:`right_icon<class_LineEdit_property_right_icon>`                                         |                                                                                     |
++---------------------------------------------------------------+-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                                       | :ref:`secret<class_LineEdit_property_secret>`                                                 | ``false``                                                                           |
++---------------------------------------------------------------+-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`                                   | :ref:`secret_character<class_LineEdit_property_secret_character>`                             | ``"*"``                                                                             |
++---------------------------------------------------------------+-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                                       | :ref:`selecting_enabled<class_LineEdit_property_selecting_enabled>`                           | ``true``                                                                            |
++---------------------------------------------------------------+-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                                       | :ref:`shortcut_keys_enabled<class_LineEdit_property_shortcut_keys_enabled>`                   | ``true``                                                                            |
++---------------------------------------------------------------+-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`                                   | :ref:`text<class_LineEdit_property_text>`                                                     | ``""``                                                                              |
++---------------------------------------------------------------+-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                                       | :ref:`virtual_keyboard_enabled<class_LineEdit_property_virtual_keyboard_enabled>`             | ``true``                                                                            |
++---------------------------------------------------------------+-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
+| :ref:`VirtualKeyboardType<enum_LineEdit_VirtualKeyboardType>` | :ref:`virtual_keyboard_type<class_LineEdit_property_virtual_keyboard_type>`                   | ``0``                                                                               |
++---------------------------------------------------------------+-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
 
 Methods
 -------
@@ -256,6 +258,46 @@ Non-printable escape characters are automatically stripped from the OS clipboard
 
 - **MENU_MAX** = **7** --- Represents the size of the :ref:`MenuItems<enum_LineEdit_MenuItems>` enum.
 
+----
+
+.. _enum_LineEdit_VirtualKeyboardType:
+
+.. _class_LineEdit_constant_KEYBOARD_TYPE_DEFAULT:
+
+.. _class_LineEdit_constant_KEYBOARD_TYPE_MULTILINE:
+
+.. _class_LineEdit_constant_KEYBOARD_TYPE_NUMBER:
+
+.. _class_LineEdit_constant_KEYBOARD_TYPE_NUMBER_DECIMAL:
+
+.. _class_LineEdit_constant_KEYBOARD_TYPE_PHONE:
+
+.. _class_LineEdit_constant_KEYBOARD_TYPE_EMAIL_ADDRESS:
+
+.. _class_LineEdit_constant_KEYBOARD_TYPE_PASSWORD:
+
+.. _class_LineEdit_constant_KEYBOARD_TYPE_URL:
+
+enum **VirtualKeyboardType**:
+
+- **KEYBOARD_TYPE_DEFAULT** = **0** --- Default text virtual keyboard.
+
+- **KEYBOARD_TYPE_MULTILINE** = **1** --- Multiline virtual keyboard.
+
+- **KEYBOARD_TYPE_NUMBER** = **2** --- Virtual number keypad, useful for PIN entry.
+
+- **KEYBOARD_TYPE_NUMBER_DECIMAL** = **3** --- Virtual number keypad, useful for entering fractional numbers.
+
+- **KEYBOARD_TYPE_PHONE** = **4** --- Virtual phone number keypad.
+
+- **KEYBOARD_TYPE_EMAIL_ADDRESS** = **5** --- Virtual keyboard with additional keys to assist with typing email addresses.
+
+- **KEYBOARD_TYPE_PASSWORD** = **6** --- Virtual keyboard for entering a password. On most platforms, this should disable autocomplete and autocapitalization.
+
+\ **Note:** This is not supported on HTML5 or below iOS version 11.0. Instead, this will behave identically to :ref:`KEYBOARD_TYPE_DEFAULT<class_LineEdit_constant_KEYBOARD_TYPE_DEFAULT>`.
+
+- **KEYBOARD_TYPE_URL** = **7** --- Virtual keyboard with additional keys to assist with typing URLs.
+
 Property Descriptions
 ---------------------
 
@@ -593,6 +635,22 @@ String value of the ``LineEdit``.
 
 If ``true``, the native virtual keyboard is shown when focused on platforms that support it.
 
+----
+
+.. _class_LineEdit_property_virtual_keyboard_type:
+
+- :ref:`VirtualKeyboardType<enum_LineEdit_VirtualKeyboardType>` **virtual_keyboard_type**
+
++-----------+----------------------------------+
+| *Default* | ``0``                            |
++-----------+----------------------------------+
+| *Setter*  | set_virtual_keyboard_type(value) |
++-----------+----------------------------------+
+| *Getter*  | get_virtual_keyboard_type()      |
++-----------+----------------------------------+
+
+Specifies the type of virtual keyboard to show.
+
 Method Descriptions
 -------------------
 

+ 1 - 1
classes/class_mesh.rst

@@ -313,7 +313,7 @@ Calculate a :ref:`ConcavePolygonShape<class_ConcavePolygonShape>` from the mesh.
 
 - :ref:`TriangleMesh<class_TriangleMesh>` **generate_triangle_mesh** **(** **)** |const|
 
-Generate a :ref:`TriangleMesh<class_TriangleMesh>` from the mesh.
+Generate a :ref:`TriangleMesh<class_TriangleMesh>` from the mesh. Considers only surfaces using one of these primitive types: :ref:`PRIMITIVE_TRIANGLES<class_Mesh_constant_PRIMITIVE_TRIANGLES>`, :ref:`PRIMITIVE_TRIANGLE_STRIP<class_Mesh_constant_PRIMITIVE_TRIANGLE_STRIP>`, or :ref:`PRIMITIVE_TRIANGLE_FAN<class_Mesh_constant_PRIMITIVE_TRIANGLE_FAN>`.
 
 ----
 

+ 1 - 1
classes/class_meshinstance.rst

@@ -19,7 +19,7 @@ Node that instances meshes into a scenario.
 Description
 -----------
 
-MeshInstance is a node that takes a :ref:`Mesh<class_Mesh>` resource and adds it to the current scenario by creating an instance of it. This is the class most often used to get 3D geometry rendered and can be used to instance a single :ref:`Mesh<class_Mesh>` in many places. This allows to reuse geometry and save on resources. When a :ref:`Mesh<class_Mesh>` has to be instanced more than thousands of times at close proximity, consider using a :ref:`MultiMesh<class_MultiMesh>` in a :ref:`MultiMeshInstance<class_MultiMeshInstance>` instead.
+MeshInstance is a node that takes a :ref:`Mesh<class_Mesh>` resource and adds it to the current scenario by creating an instance of it. This is the class most often used to get 3D geometry rendered and can be used to instance a single :ref:`Mesh<class_Mesh>` in many places. This allows reusing geometry, which can save on resources. When a :ref:`Mesh<class_Mesh>` has to be instanced more than thousands of times at close proximity, consider using a :ref:`MultiMesh<class_MultiMesh>` in a :ref:`MultiMeshInstance<class_MultiMeshInstance>` instead.
 
 Tutorials
 ---------

+ 1 - 1
classes/class_multimesh.rst

@@ -343,7 +343,7 @@ When the order of instances is coherent, the simpler :ref:`set_as_bulk_array<cla
 
 Sets the color of a specific instance by *multiplying* the mesh's existing vertex colors.
 
-For the color to take effect, ensure that :ref:`color_format<class_MultiMesh_property_color_format>` is non-``null`` on the ``MultiMesh`` and :ref:`SpatialMaterial.vertex_color_use_as_albedo<class_SpatialMaterial_property_vertex_color_use_as_albedo>` is ``true`` on the material.
+For the color to take effect, ensure that :ref:`color_format<class_MultiMesh_property_color_format>` is non-``null`` on the ``MultiMesh`` and :ref:`SpatialMaterial.vertex_color_use_as_albedo<class_SpatialMaterial_property_vertex_color_use_as_albedo>` is ``true`` on the material. If the color doesn't look as expected, make sure the material's albedo color is set to pure white (``Color(1, 1, 1)``).
 
 ----
 

+ 5 - 3
classes/class_navigation2dserver.rst

@@ -92,7 +92,7 @@ Methods
 +-------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`Array<class_Array>`                       | :ref:`map_get_regions<class_Navigation2DServer_method_map_get_regions>` **(** :ref:`RID<class_RID>` map **)** |const|                                                                                                                                                         |
 +-------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                         | :ref:`map_is_active<class_Navigation2DServer_method_map_is_active>` **(** :ref:`RID<class_RID>` nap **)** |const|                                                                                                                                                             |
+| :ref:`bool<class_bool>`                         | :ref:`map_is_active<class_Navigation2DServer_method_map_is_active>` **(** :ref:`RID<class_RID>` map **)** |const|                                                                                                                                                             |
 +-------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                                            | :ref:`map_set_active<class_Navigation2DServer_method_map_set_active>` **(** :ref:`RID<class_RID>` map, :ref:`bool<class_bool>` active **)** |const|                                                                                                                           |
 +-------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
@@ -255,7 +255,9 @@ Sets the current velocity of the agent.
 
 - void **free_rid** **(** :ref:`RID<class_RID>` rid **)** |const|
 
-Destroys the given RID.
+Destroys an object created by the Navigation2DServer.
+
+\ **Note:** See :ref:`VisualServer.free_rid<class_VisualServer_method_free_rid>` for details on how to handle RIDs for freed objects.
 
 ----
 
@@ -355,7 +357,7 @@ Returns all navigation regions :ref:`RID<class_RID>`\ s that are currently assig
 
 .. _class_Navigation2DServer_method_map_is_active:
 
-- :ref:`bool<class_bool>` **map_is_active** **(** :ref:`RID<class_RID>` nap **)** |const|
+- :ref:`bool<class_bool>` **map_is_active** **(** :ref:`RID<class_RID>` map **)** |const|
 
 Returns ``true`` if the map is active.
 

+ 1 - 1
classes/class_navigationagent.rst

@@ -118,7 +118,7 @@ Notifies when the player-defined target, set with :ref:`set_target_location<clas
 
 - **velocity_computed** **(** :ref:`Vector3<class_Vector3>` safe_velocity **)**
 
-Notifies when the collision avoidance velocity is calculated after a call to :ref:`set_velocity<class_NavigationAgent_method_set_velocity>`.
+Notifies when the collision avoidance velocity is calculated after a call to :ref:`set_velocity<class_NavigationAgent_method_set_velocity>`. Only emitted when :ref:`avoidance_enabled<class_NavigationAgent_property_avoidance_enabled>` is true.
 
 Property Descriptions
 ---------------------

+ 1 - 1
classes/class_navigationagent2d.rst

@@ -114,7 +114,7 @@ Notifies when the player-defined target, set with :ref:`set_target_location<clas
 
 - **velocity_computed** **(** :ref:`Vector2<class_Vector2>` safe_velocity **)**
 
-Notifies when the collision avoidance velocity is calculated after a call to :ref:`set_velocity<class_NavigationAgent2D_method_set_velocity>`.
+Notifies when the collision avoidance velocity is calculated after a call to :ref:`set_velocity<class_NavigationAgent2D_method_set_velocity>`. Only emitted when :ref:`avoidance_enabled<class_NavigationAgent2D_property_avoidance_enabled>` is true.
 
 Property Descriptions
 ---------------------

+ 5 - 3
classes/class_navigationserver.rst

@@ -96,7 +96,7 @@ Methods
 +-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`Vector3<class_Vector3>`                   | :ref:`map_get_up<class_NavigationServer_method_map_get_up>` **(** :ref:`RID<class_RID>` map **)** |const|                                                                                                                                                                   |
 +-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                         | :ref:`map_is_active<class_NavigationServer_method_map_is_active>` **(** :ref:`RID<class_RID>` nap **)** |const|                                                                                                                                                             |
+| :ref:`bool<class_bool>`                         | :ref:`map_is_active<class_NavigationServer_method_map_is_active>` **(** :ref:`RID<class_RID>` map **)** |const|                                                                                                                                                             |
 +-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                                            | :ref:`map_set_active<class_NavigationServer_method_map_set_active>` **(** :ref:`RID<class_RID>` map, :ref:`bool<class_bool>` active **)** |const|                                                                                                                           |
 +-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
@@ -267,7 +267,9 @@ Sets the current velocity of the agent.
 
 - void **free_rid** **(** :ref:`RID<class_RID>` rid **)** |const|
 
-Destroys the given RID.
+Destroys an object created by the NavigationServer.
+
+\ **Note:** See :ref:`VisualServer.free_rid<class_VisualServer_method_free_rid>` for details on how to handle RIDs for freed objects.
 
 ----
 
@@ -391,7 +393,7 @@ Returns the map's up direction.
 
 .. _class_NavigationServer_method_map_is_active:
 
-- :ref:`bool<class_bool>` **map_is_active** **(** :ref:`RID<class_RID>` nap **)** |const|
+- :ref:`bool<class_bool>` **map_is_active** **(** :ref:`RID<class_RID>` map **)** |const|
 
 Returns ``true`` if the map is active.
 

+ 6 - 0
classes/class_networkedmultiplayercustom.rst

@@ -64,6 +64,8 @@ When your script receives a packet from other peers over the network (originatin
 
 Initialize the peer with the given ``peer_id`` (must be between 1 and 2147483647).
 
+Can only be called if the connection status is :ref:`NetworkedMultiplayerPeer.CONNECTION_CONNECTING<class_NetworkedMultiplayerPeer_constant_CONNECTION_CONNECTING>`. See :ref:`set_connection_status<class_NetworkedMultiplayerCustom_method_set_connection_status>`.
+
 ----
 
 .. _class_NetworkedMultiplayerCustom_method_set_connection_status:
@@ -72,6 +74,10 @@ Initialize the peer with the given ``peer_id`` (must be between 1 and 2147483647
 
 Set the state of the connection. See :ref:`ConnectionStatus<enum_NetworkedMultiplayerPeer_ConnectionStatus>`.
 
+This will emit the :ref:`NetworkedMultiplayerPeer.connection_succeeded<class_NetworkedMultiplayerPeer_signal_connection_succeeded>`, :ref:`NetworkedMultiplayerPeer.connection_failed<class_NetworkedMultiplayerPeer_signal_connection_failed>` or :ref:`NetworkedMultiplayerPeer.server_disconnected<class_NetworkedMultiplayerPeer_signal_server_disconnected>` signals depending on the status and if the peer has the unique network id of ``1``.
+
+You can only change to :ref:`NetworkedMultiplayerPeer.CONNECTION_CONNECTING<class_NetworkedMultiplayerPeer_constant_CONNECTION_CONNECTING>` from :ref:`NetworkedMultiplayerPeer.CONNECTION_DISCONNECTED<class_NetworkedMultiplayerPeer_constant_CONNECTION_DISCONNECTED>` and to :ref:`NetworkedMultiplayerPeer.CONNECTION_CONNECTED<class_NetworkedMultiplayerPeer_constant_CONNECTION_CONNECTED>` from :ref:`NetworkedMultiplayerPeer.CONNECTION_CONNECTING<class_NetworkedMultiplayerPeer_constant_CONNECTION_CONNECTING>`.
+
 ----
 
 .. _class_NetworkedMultiplayerCustom_method_set_max_packet_size:

+ 1 - 1
classes/class_node.rst

@@ -507,7 +507,7 @@ Implemented on all platforms.
 
 Implemented on all platforms.
 
-- **NOTIFICATION_WM_QUIT_REQUEST** = **1006** --- Notification received from the OS when a quit request is sent (e.g. closing the window with a "Close" button or Alt+F4).
+- **NOTIFICATION_WM_QUIT_REQUEST** = **1006** --- Notification received from the OS when a quit request is sent (e.g. closing the window with a "Close" button or :kbd:`Alt + F4`).
 
 Implemented on desktop platforms.
 

+ 1 - 1
classes/class_node2d.rst

@@ -12,7 +12,7 @@ Node2D
 
 **Inherits:** :ref:`CanvasItem<class_CanvasItem>` **<** :ref:`Node<class_Node>` **<** :ref:`Object<class_Object>`
 
-**Inherited By:** :ref:`AnimatedSprite<class_AnimatedSprite>`, :ref:`AudioStreamPlayer2D<class_AudioStreamPlayer2D>`, :ref:`BackBufferCopy<class_BackBufferCopy>`, :ref:`Bone2D<class_Bone2D>`, :ref:`CPUParticles2D<class_CPUParticles2D>`, :ref:`Camera2D<class_Camera2D>`, :ref:`CanvasModulate<class_CanvasModulate>`, :ref:`CollisionObject2D<class_CollisionObject2D>`, :ref:`CollisionPolygon2D<class_CollisionPolygon2D>`, :ref:`CollisionShape2D<class_CollisionShape2D>`, :ref:`Joint2D<class_Joint2D>`, :ref:`Light2D<class_Light2D>`, :ref:`LightOccluder2D<class_LightOccluder2D>`, :ref:`Line2D<class_Line2D>`, :ref:`Listener2D<class_Listener2D>`, :ref:`MeshInstance2D<class_MeshInstance2D>`, :ref:`MultiMeshInstance2D<class_MultiMeshInstance2D>`, :ref:`Navigation2D<class_Navigation2D>`, :ref:`NavigationPolygonInstance<class_NavigationPolygonInstance>`, :ref:`ParallaxLayer<class_ParallaxLayer>`, :ref:`Particles2D<class_Particles2D>`, :ref:`Path2D<class_Path2D>`, :ref:`PathFollow2D<class_PathFollow2D>`, :ref:`Polygon2D<class_Polygon2D>`, :ref:`Position2D<class_Position2D>`, :ref:`RayCast2D<class_RayCast2D>`, :ref:`RemoteTransform2D<class_RemoteTransform2D>`, :ref:`Skeleton2D<class_Skeleton2D>`, :ref:`Sprite<class_Sprite>`, :ref:`TileMap<class_TileMap>`, :ref:`TouchScreenButton<class_TouchScreenButton>`, :ref:`VisibilityNotifier2D<class_VisibilityNotifier2D>`, :ref:`YSort<class_YSort>`
+**Inherited By:** :ref:`AnimatedSprite<class_AnimatedSprite>`, :ref:`AudioStreamPlayer2D<class_AudioStreamPlayer2D>`, :ref:`BackBufferCopy<class_BackBufferCopy>`, :ref:`Bone2D<class_Bone2D>`, :ref:`CPUParticles2D<class_CPUParticles2D>`, :ref:`Camera2D<class_Camera2D>`, :ref:`CanvasModulate<class_CanvasModulate>`, :ref:`CollisionObject2D<class_CollisionObject2D>`, :ref:`CollisionPolygon2D<class_CollisionPolygon2D>`, :ref:`CollisionShape2D<class_CollisionShape2D>`, :ref:`Joint2D<class_Joint2D>`, :ref:`Light2D<class_Light2D>`, :ref:`LightOccluder2D<class_LightOccluder2D>`, :ref:`Line2D<class_Line2D>`, :ref:`Listener2D<class_Listener2D>`, :ref:`MeshInstance2D<class_MeshInstance2D>`, :ref:`MultiMeshInstance2D<class_MultiMeshInstance2D>`, :ref:`Navigation2D<class_Navigation2D>`, :ref:`NavigationPolygonInstance<class_NavigationPolygonInstance>`, :ref:`ParallaxLayer<class_ParallaxLayer>`, :ref:`Particles2D<class_Particles2D>`, :ref:`Path2D<class_Path2D>`, :ref:`PathFollow2D<class_PathFollow2D>`, :ref:`Polygon2D<class_Polygon2D>`, :ref:`Position2D<class_Position2D>`, :ref:`RayCast2D<class_RayCast2D>`, :ref:`RemoteTransform2D<class_RemoteTransform2D>`, :ref:`ShapeCast2D<class_ShapeCast2D>`, :ref:`Skeleton2D<class_Skeleton2D>`, :ref:`Sprite<class_Sprite>`, :ref:`TileMap<class_TileMap>`, :ref:`TouchScreenButton<class_TouchScreenButton>`, :ref:`VisibilityNotifier2D<class_VisibilityNotifier2D>`, :ref:`YSort<class_YSort>`
 
 A 2D game object, inherited by all 2D-related nodes. Has a position, rotation, scale, and Z index.
 

+ 470 - 252
classes/class_os.rst

@@ -74,257 +74,277 @@ Properties
 Methods
 -------
 
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                          | :ref:`alert<class_OS_method_alert>` **(** :ref:`String<class_String>` text, :ref:`String<class_String>` title="Alert!" **)**                                                                                                                                                                                       |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                       | :ref:`can_draw<class_OS_method_can_draw>` **(** **)** |const|                                                                                                                                                                                                                                                      |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                       | :ref:`can_use_threads<class_OS_method_can_use_threads>` **(** **)** |const|                                                                                                                                                                                                                                        |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                          | :ref:`center_window<class_OS_method_center_window>` **(** **)**                                                                                                                                                                                                                                                    |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                          | :ref:`close_midi_inputs<class_OS_method_close_midi_inputs>` **(** **)**                                                                                                                                                                                                                                            |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                          | :ref:`crash<class_OS_method_crash>` **(** :ref:`String<class_String>` message **)**                                                                                                                                                                                                                                |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                          | :ref:`delay_msec<class_OS_method_delay_msec>` **(** :ref:`int<class_int>` msec **)** |const|                                                                                                                                                                                                                       |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                          | :ref:`delay_usec<class_OS_method_delay_usec>` **(** :ref:`int<class_int>` usec **)** |const|                                                                                                                                                                                                                       |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                          | :ref:`dump_memory_to_file<class_OS_method_dump_memory_to_file>` **(** :ref:`String<class_String>` file **)**                                                                                                                                                                                                       |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                          | :ref:`dump_resources_to_file<class_OS_method_dump_resources_to_file>` **(** :ref:`String<class_String>` file **)**                                                                                                                                                                                                 |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                         | :ref:`execute<class_OS_method_execute>` **(** :ref:`String<class_String>` path, :ref:`PoolStringArray<class_PoolStringArray>` arguments, :ref:`bool<class_bool>` blocking=true, :ref:`Array<class_Array>` output=[  ], :ref:`bool<class_bool>` read_stderr=false, :ref:`bool<class_bool>` open_console=false **)** |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                         | :ref:`find_scancode_from_string<class_OS_method_find_scancode_from_string>` **(** :ref:`String<class_String>` string **)** |const|                                                                                                                                                                                 |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                         | :ref:`get_audio_driver_count<class_OS_method_get_audio_driver_count>` **(** **)** |const|                                                                                                                                                                                                                          |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_String>`                   | :ref:`get_audio_driver_name<class_OS_method_get_audio_driver_name>` **(** :ref:`int<class_int>` driver **)** |const|                                                                                                                                                                                               |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_String>`                   | :ref:`get_cache_dir<class_OS_method_get_cache_dir>` **(** **)** |const|                                                                                                                                                                                                                                            |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`PoolStringArray<class_PoolStringArray>` | :ref:`get_cmdline_args<class_OS_method_get_cmdline_args>` **(** **)**                                                                                                                                                                                                                                              |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_String>`                   | :ref:`get_config_dir<class_OS_method_get_config_dir>` **(** **)** |const|                                                                                                                                                                                                                                          |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`PoolStringArray<class_PoolStringArray>` | :ref:`get_connected_midi_inputs<class_OS_method_get_connected_midi_inputs>` **(** **)**                                                                                                                                                                                                                            |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`VideoDriver<enum_OS_VideoDriver>`       | :ref:`get_current_video_driver<class_OS_method_get_current_video_driver>` **(** **)** |const|                                                                                                                                                                                                                      |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_String>`                   | :ref:`get_data_dir<class_OS_method_get_data_dir>` **(** **)** |const|                                                                                                                                                                                                                                              |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Dictionary<class_Dictionary>`           | :ref:`get_date<class_OS_method_get_date>` **(** :ref:`bool<class_bool>` utc=false **)** |const|                                                                                                                                                                                                                    |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Dictionary<class_Dictionary>`           | :ref:`get_datetime<class_OS_method_get_datetime>` **(** :ref:`bool<class_bool>` utc=false **)** |const|                                                                                                                                                                                                            |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Dictionary<class_Dictionary>`           | :ref:`get_datetime_from_unix_time<class_OS_method_get_datetime_from_unix_time>` **(** :ref:`int<class_int>` unix_time_val **)** |const|                                                                                                                                                                            |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Array<class_Array>`                     | :ref:`get_display_cutouts<class_OS_method_get_display_cutouts>` **(** **)** |const|                                                                                                                                                                                                                                |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                         | :ref:`get_dynamic_memory_usage<class_OS_method_get_dynamic_memory_usage>` **(** **)** |const|                                                                                                                                                                                                                      |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_String>`                   | :ref:`get_environment<class_OS_method_get_environment>` **(** :ref:`String<class_String>` variable **)** |const|                                                                                                                                                                                                   |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_String>`                   | :ref:`get_executable_path<class_OS_method_get_executable_path>` **(** **)** |const|                                                                                                                                                                                                                                |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`PoolStringArray<class_PoolStringArray>` | :ref:`get_granted_permissions<class_OS_method_get_granted_permissions>` **(** **)** |const|                                                                                                                                                                                                                        |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Vector2<class_Vector2>`                 | :ref:`get_ime_selection<class_OS_method_get_ime_selection>` **(** **)** |const|                                                                                                                                                                                                                                    |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_String>`                   | :ref:`get_ime_text<class_OS_method_get_ime_text>` **(** **)** |const|                                                                                                                                                                                                                                              |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_String>`                   | :ref:`get_latin_keyboard_variant<class_OS_method_get_latin_keyboard_variant>` **(** **)** |const|                                                                                                                                                                                                                  |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_String>`                   | :ref:`get_locale<class_OS_method_get_locale>` **(** **)** |const|                                                                                                                                                                                                                                                  |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_String>`                   | :ref:`get_locale_language<class_OS_method_get_locale_language>` **(** **)** |const|                                                                                                                                                                                                                                |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                         | :ref:`get_main_thread_id<class_OS_method_get_main_thread_id>` **(** **)** |const|                                                                                                                                                                                                                                  |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_String>`                   | :ref:`get_model_name<class_OS_method_get_model_name>` **(** **)** |const|                                                                                                                                                                                                                                          |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_String>`                   | :ref:`get_name<class_OS_method_get_name>` **(** **)** |const|                                                                                                                                                                                                                                                      |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                         | :ref:`get_native_handle<class_OS_method_get_native_handle>` **(** :ref:`HandleType<enum_OS_HandleType>` handle_type **)**                                                                                                                                                                                          |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                         | :ref:`get_power_percent_left<class_OS_method_get_power_percent_left>` **(** **)**                                                                                                                                                                                                                                  |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                         | :ref:`get_power_seconds_left<class_OS_method_get_power_seconds_left>` **(** **)**                                                                                                                                                                                                                                  |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`PowerState<enum_OS_PowerState>`         | :ref:`get_power_state<class_OS_method_get_power_state>` **(** **)**                                                                                                                                                                                                                                                |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                         | :ref:`get_process_id<class_OS_method_get_process_id>` **(** **)** |const|                                                                                                                                                                                                                                          |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                         | :ref:`get_processor_count<class_OS_method_get_processor_count>` **(** **)** |const|                                                                                                                                                                                                                                |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_String>`                   | :ref:`get_processor_name<class_OS_method_get_processor_name>` **(** **)** |const|                                                                                                                                                                                                                                  |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Vector2<class_Vector2>`                 | :ref:`get_real_window_size<class_OS_method_get_real_window_size>` **(** **)** |const|                                                                                                                                                                                                                              |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_String>`                   | :ref:`get_scancode_string<class_OS_method_get_scancode_string>` **(** :ref:`int<class_int>` code **)** |const|                                                                                                                                                                                                     |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                         | :ref:`get_screen_count<class_OS_method_get_screen_count>` **(** **)** |const|                                                                                                                                                                                                                                      |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                         | :ref:`get_screen_dpi<class_OS_method_get_screen_dpi>` **(** :ref:`int<class_int>` screen=-1 **)** |const|                                                                                                                                                                                                          |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                     | :ref:`get_screen_max_scale<class_OS_method_get_screen_max_scale>` **(** **)** |const|                                                                                                                                                                                                                              |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Vector2<class_Vector2>`                 | :ref:`get_screen_position<class_OS_method_get_screen_position>` **(** :ref:`int<class_int>` screen=-1 **)** |const|                                                                                                                                                                                                |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                     | :ref:`get_screen_refresh_rate<class_OS_method_get_screen_refresh_rate>` **(** :ref:`int<class_int>` screen=-1 **)** |const|                                                                                                                                                                                        |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                     | :ref:`get_screen_scale<class_OS_method_get_screen_scale>` **(** :ref:`int<class_int>` screen=-1 **)** |const|                                                                                                                                                                                                      |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Vector2<class_Vector2>`                 | :ref:`get_screen_size<class_OS_method_get_screen_size>` **(** :ref:`int<class_int>` screen=-1 **)** |const|                                                                                                                                                                                                        |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                         | :ref:`get_splash_tick_msec<class_OS_method_get_splash_tick_msec>` **(** **)** |const|                                                                                                                                                                                                                              |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                         | :ref:`get_static_memory_peak_usage<class_OS_method_get_static_memory_peak_usage>` **(** **)** |const|                                                                                                                                                                                                              |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                         | :ref:`get_static_memory_usage<class_OS_method_get_static_memory_usage>` **(** **)** |const|                                                                                                                                                                                                                        |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_String>`                   | :ref:`get_system_dir<class_OS_method_get_system_dir>` **(** :ref:`SystemDir<enum_OS_SystemDir>` dir, :ref:`bool<class_bool>` shared_storage=true **)** |const|                                                                                                                                                     |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                         | :ref:`get_system_time_msecs<class_OS_method_get_system_time_msecs>` **(** **)** |const|                                                                                                                                                                                                                            |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                         | :ref:`get_system_time_secs<class_OS_method_get_system_time_secs>` **(** **)** |const|                                                                                                                                                                                                                              |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                         | :ref:`get_tablet_driver_count<class_OS_method_get_tablet_driver_count>` **(** **)** |const|                                                                                                                                                                                                                        |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_String>`                   | :ref:`get_tablet_driver_name<class_OS_method_get_tablet_driver_name>` **(** :ref:`int<class_int>` idx **)** |const|                                                                                                                                                                                                |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                         | :ref:`get_thread_caller_id<class_OS_method_get_thread_caller_id>` **(** **)** |const|                                                                                                                                                                                                                              |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                         | :ref:`get_ticks_msec<class_OS_method_get_ticks_msec>` **(** **)** |const|                                                                                                                                                                                                                                          |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                         | :ref:`get_ticks_usec<class_OS_method_get_ticks_usec>` **(** **)** |const|                                                                                                                                                                                                                                          |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Dictionary<class_Dictionary>`           | :ref:`get_time<class_OS_method_get_time>` **(** :ref:`bool<class_bool>` utc=false **)** |const|                                                                                                                                                                                                                    |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Dictionary<class_Dictionary>`           | :ref:`get_time_zone_info<class_OS_method_get_time_zone_info>` **(** **)** |const|                                                                                                                                                                                                                                  |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_String>`                   | :ref:`get_unique_id<class_OS_method_get_unique_id>` **(** **)** |const|                                                                                                                                                                                                                                            |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                         | :ref:`get_unix_time<class_OS_method_get_unix_time>` **(** **)** |const|                                                                                                                                                                                                                                            |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                         | :ref:`get_unix_time_from_datetime<class_OS_method_get_unix_time_from_datetime>` **(** :ref:`Dictionary<class_Dictionary>` datetime **)** |const|                                                                                                                                                                   |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_String>`                   | :ref:`get_user_data_dir<class_OS_method_get_user_data_dir>` **(** **)** |const|                                                                                                                                                                                                                                    |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                         | :ref:`get_video_driver_count<class_OS_method_get_video_driver_count>` **(** **)** |const|                                                                                                                                                                                                                          |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_String>`                   | :ref:`get_video_driver_name<class_OS_method_get_video_driver_name>` **(** :ref:`VideoDriver<enum_OS_VideoDriver>` driver **)** |const|                                                                                                                                                                             |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                         | :ref:`get_virtual_keyboard_height<class_OS_method_get_virtual_keyboard_height>` **(** **)**                                                                                                                                                                                                                        |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Rect2<class_Rect2>`                     | :ref:`get_window_safe_area<class_OS_method_get_window_safe_area>` **(** **)** |const|                                                                                                                                                                                                                              |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                          | :ref:`global_menu_add_item<class_OS_method_global_menu_add_item>` **(** :ref:`String<class_String>` menu, :ref:`String<class_String>` label, :ref:`Variant<class_Variant>` id, :ref:`Variant<class_Variant>` meta **)**                                                                                            |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                          | :ref:`global_menu_add_separator<class_OS_method_global_menu_add_separator>` **(** :ref:`String<class_String>` menu **)**                                                                                                                                                                                           |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                          | :ref:`global_menu_clear<class_OS_method_global_menu_clear>` **(** :ref:`String<class_String>` menu **)**                                                                                                                                                                                                           |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                          | :ref:`global_menu_remove_item<class_OS_method_global_menu_remove_item>` **(** :ref:`String<class_String>` menu, :ref:`int<class_int>` idx **)**                                                                                                                                                                    |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                       | :ref:`has_clipboard<class_OS_method_has_clipboard>` **(** **)** |const|                                                                                                                                                                                                                                            |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                       | :ref:`has_environment<class_OS_method_has_environment>` **(** :ref:`String<class_String>` variable **)** |const|                                                                                                                                                                                                   |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                       | :ref:`has_feature<class_OS_method_has_feature>` **(** :ref:`String<class_String>` tag_name **)** |const|                                                                                                                                                                                                           |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                       | :ref:`has_touchscreen_ui_hint<class_OS_method_has_touchscreen_ui_hint>` **(** **)** |const|                                                                                                                                                                                                                        |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                       | :ref:`has_virtual_keyboard<class_OS_method_has_virtual_keyboard>` **(** **)** |const|                                                                                                                                                                                                                              |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                          | :ref:`hide_virtual_keyboard<class_OS_method_hide_virtual_keyboard>` **(** **)**                                                                                                                                                                                                                                    |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                       | :ref:`is_debug_build<class_OS_method_is_debug_build>` **(** **)** |const|                                                                                                                                                                                                                                          |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                       | :ref:`is_ok_left_and_cancel_right<class_OS_method_is_ok_left_and_cancel_right>` **(** **)** |const|                                                                                                                                                                                                                |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                       | :ref:`is_process_running<class_OS_method_is_process_running>` **(** :ref:`int<class_int>` pid **)** |const|                                                                                                                                                                                                        |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                       | :ref:`is_scancode_unicode<class_OS_method_is_scancode_unicode>` **(** :ref:`int<class_int>` code **)** |const|                                                                                                                                                                                                     |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                       | :ref:`is_stdout_verbose<class_OS_method_is_stdout_verbose>` **(** **)** |const|                                                                                                                                                                                                                                    |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                       | :ref:`is_userfs_persistent<class_OS_method_is_userfs_persistent>` **(** **)** |const|                                                                                                                                                                                                                              |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                       | :ref:`is_window_always_on_top<class_OS_method_is_window_always_on_top>` **(** **)** |const|                                                                                                                                                                                                                        |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                       | :ref:`is_window_focused<class_OS_method_is_window_focused>` **(** **)** |const|                                                                                                                                                                                                                                    |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                         | :ref:`keyboard_get_current_layout<class_OS_method_keyboard_get_current_layout>` **(** **)** |const|                                                                                                                                                                                                                |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                         | :ref:`keyboard_get_layout_count<class_OS_method_keyboard_get_layout_count>` **(** **)** |const|                                                                                                                                                                                                                    |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_String>`                   | :ref:`keyboard_get_layout_language<class_OS_method_keyboard_get_layout_language>` **(** :ref:`int<class_int>` index **)** |const|                                                                                                                                                                                  |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_String>`                   | :ref:`keyboard_get_layout_name<class_OS_method_keyboard_get_layout_name>` **(** :ref:`int<class_int>` index **)** |const|                                                                                                                                                                                          |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                         | :ref:`keyboard_get_scancode_from_physical<class_OS_method_keyboard_get_scancode_from_physical>` **(** :ref:`int<class_int>` scancode **)** |const|                                                                                                                                                                 |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                          | :ref:`keyboard_set_current_layout<class_OS_method_keyboard_set_current_layout>` **(** :ref:`int<class_int>` index **)**                                                                                                                                                                                            |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Error<enum_@GlobalScope_Error>`         | :ref:`kill<class_OS_method_kill>` **(** :ref:`int<class_int>` pid **)**                                                                                                                                                                                                                                            |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Error<enum_@GlobalScope_Error>`         | :ref:`move_to_trash<class_OS_method_move_to_trash>` **(** :ref:`String<class_String>` path **)** |const|                                                                                                                                                                                                           |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                          | :ref:`move_window_to_foreground<class_OS_method_move_window_to_foreground>` **(** **)**                                                                                                                                                                                                                            |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                       | :ref:`native_video_is_playing<class_OS_method_native_video_is_playing>` **(** **)**                                                                                                                                                                                                                                |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                          | :ref:`native_video_pause<class_OS_method_native_video_pause>` **(** **)**                                                                                                                                                                                                                                          |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Error<enum_@GlobalScope_Error>`         | :ref:`native_video_play<class_OS_method_native_video_play>` **(** :ref:`String<class_String>` path, :ref:`float<class_float>` volume, :ref:`String<class_String>` audio_track, :ref:`String<class_String>` subtitle_track **)**                                                                                    |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                          | :ref:`native_video_stop<class_OS_method_native_video_stop>` **(** **)**                                                                                                                                                                                                                                            |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                          | :ref:`native_video_unpause<class_OS_method_native_video_unpause>` **(** **)**                                                                                                                                                                                                                                      |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                          | :ref:`open_midi_inputs<class_OS_method_open_midi_inputs>` **(** **)**                                                                                                                                                                                                                                              |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                          | :ref:`print_all_resources<class_OS_method_print_all_resources>` **(** :ref:`String<class_String>` tofile="" **)**                                                                                                                                                                                                  |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                          | :ref:`print_all_textures_by_size<class_OS_method_print_all_textures_by_size>` **(** **)**                                                                                                                                                                                                                          |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                          | :ref:`print_resources_by_type<class_OS_method_print_resources_by_type>` **(** :ref:`PoolStringArray<class_PoolStringArray>` types **)**                                                                                                                                                                            |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                          | :ref:`print_resources_in_use<class_OS_method_print_resources_in_use>` **(** :ref:`bool<class_bool>` short=false **)**                                                                                                                                                                                              |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                          | :ref:`request_attention<class_OS_method_request_attention>` **(** **)**                                                                                                                                                                                                                                            |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                       | :ref:`request_permission<class_OS_method_request_permission>` **(** :ref:`String<class_String>` name **)**                                                                                                                                                                                                         |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                       | :ref:`request_permissions<class_OS_method_request_permissions>` **(** **)**                                                                                                                                                                                                                                        |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                       | :ref:`set_environment<class_OS_method_set_environment>` **(** :ref:`String<class_String>` variable, :ref:`String<class_String>` value **)** |const|                                                                                                                                                                |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                          | :ref:`set_icon<class_OS_method_set_icon>` **(** :ref:`Image<class_Image>` icon **)**                                                                                                                                                                                                                               |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                          | :ref:`set_ime_active<class_OS_method_set_ime_active>` **(** :ref:`bool<class_bool>` active **)**                                                                                                                                                                                                                   |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                          | :ref:`set_ime_position<class_OS_method_set_ime_position>` **(** :ref:`Vector2<class_Vector2>` position **)**                                                                                                                                                                                                       |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                          | :ref:`set_native_icon<class_OS_method_set_native_icon>` **(** :ref:`String<class_String>` filename **)**                                                                                                                                                                                                           |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Error<enum_@GlobalScope_Error>`         | :ref:`set_thread_name<class_OS_method_set_thread_name>` **(** :ref:`String<class_String>` name **)**                                                                                                                                                                                                               |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                          | :ref:`set_use_file_access_save_and_swap<class_OS_method_set_use_file_access_save_and_swap>` **(** :ref:`bool<class_bool>` enabled **)**                                                                                                                                                                            |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                          | :ref:`set_window_always_on_top<class_OS_method_set_window_always_on_top>` **(** :ref:`bool<class_bool>` enabled **)**                                                                                                                                                                                              |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                          | :ref:`set_window_mouse_passthrough<class_OS_method_set_window_mouse_passthrough>` **(** :ref:`PoolVector2Array<class_PoolVector2Array>` region **)**                                                                                                                                                               |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                          | :ref:`set_window_title<class_OS_method_set_window_title>` **(** :ref:`String<class_String>` title **)**                                                                                                                                                                                                            |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Error<enum_@GlobalScope_Error>`         | :ref:`shell_open<class_OS_method_shell_open>` **(** :ref:`String<class_String>` uri **)**                                                                                                                                                                                                                          |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                          | :ref:`show_virtual_keyboard<class_OS_method_show_virtual_keyboard>` **(** :ref:`String<class_String>` existing_text="", :ref:`bool<class_bool>` multiline=false **)**                                                                                                                                              |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                          | :ref:`alert<class_OS_method_alert>` **(** :ref:`String<class_String>` text, :ref:`String<class_String>` title="Alert!" **)**                                                                                                                                                                                         |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                       | :ref:`can_draw<class_OS_method_can_draw>` **(** **)** |const|                                                                                                                                                                                                                                                        |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                       | :ref:`can_use_threads<class_OS_method_can_use_threads>` **(** **)** |const|                                                                                                                                                                                                                                          |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                          | :ref:`center_window<class_OS_method_center_window>` **(** **)**                                                                                                                                                                                                                                                      |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                          | :ref:`close_midi_inputs<class_OS_method_close_midi_inputs>` **(** **)**                                                                                                                                                                                                                                              |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                          | :ref:`crash<class_OS_method_crash>` **(** :ref:`String<class_String>` message **)**                                                                                                                                                                                                                                  |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                          | :ref:`delay_msec<class_OS_method_delay_msec>` **(** :ref:`int<class_int>` msec **)** |const|                                                                                                                                                                                                                         |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                          | :ref:`delay_usec<class_OS_method_delay_usec>` **(** :ref:`int<class_int>` usec **)** |const|                                                                                                                                                                                                                         |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                          | :ref:`dump_memory_to_file<class_OS_method_dump_memory_to_file>` **(** :ref:`String<class_String>` file **)**                                                                                                                                                                                                         |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                          | :ref:`dump_resources_to_file<class_OS_method_dump_resources_to_file>` **(** :ref:`String<class_String>` file **)**                                                                                                                                                                                                   |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                         | :ref:`execute<class_OS_method_execute>` **(** :ref:`String<class_String>` path, :ref:`PoolStringArray<class_PoolStringArray>` arguments, :ref:`bool<class_bool>` blocking=true, :ref:`Array<class_Array>` output=[  ], :ref:`bool<class_bool>` read_stderr=false, :ref:`bool<class_bool>` open_console=false **)**   |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                         | :ref:`find_scancode_from_string<class_OS_method_find_scancode_from_string>` **(** :ref:`String<class_String>` string **)** |const|                                                                                                                                                                                   |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                         | :ref:`get_audio_driver_count<class_OS_method_get_audio_driver_count>` **(** **)** |const|                                                                                                                                                                                                                            |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`                   | :ref:`get_audio_driver_name<class_OS_method_get_audio_driver_name>` **(** :ref:`int<class_int>` driver **)** |const|                                                                                                                                                                                                 |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`                   | :ref:`get_cache_dir<class_OS_method_get_cache_dir>` **(** **)** |const|                                                                                                                                                                                                                                              |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`PoolStringArray<class_PoolStringArray>` | :ref:`get_cmdline_args<class_OS_method_get_cmdline_args>` **(** **)**                                                                                                                                                                                                                                                |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`                   | :ref:`get_config_dir<class_OS_method_get_config_dir>` **(** **)** |const|                                                                                                                                                                                                                                            |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`PoolStringArray<class_PoolStringArray>` | :ref:`get_connected_midi_inputs<class_OS_method_get_connected_midi_inputs>` **(** **)**                                                                                                                                                                                                                              |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`VideoDriver<enum_OS_VideoDriver>`       | :ref:`get_current_video_driver<class_OS_method_get_current_video_driver>` **(** **)** |const|                                                                                                                                                                                                                        |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`                   | :ref:`get_data_dir<class_OS_method_get_data_dir>` **(** **)** |const|                                                                                                                                                                                                                                                |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Dictionary<class_Dictionary>`           | :ref:`get_date<class_OS_method_get_date>` **(** :ref:`bool<class_bool>` utc=false **)** |const|                                                                                                                                                                                                                      |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Dictionary<class_Dictionary>`           | :ref:`get_datetime<class_OS_method_get_datetime>` **(** :ref:`bool<class_bool>` utc=false **)** |const|                                                                                                                                                                                                              |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Dictionary<class_Dictionary>`           | :ref:`get_datetime_from_unix_time<class_OS_method_get_datetime_from_unix_time>` **(** :ref:`int<class_int>` unix_time_val **)** |const|                                                                                                                                                                              |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Array<class_Array>`                     | :ref:`get_display_cutouts<class_OS_method_get_display_cutouts>` **(** **)** |const|                                                                                                                                                                                                                                  |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                         | :ref:`get_dynamic_memory_usage<class_OS_method_get_dynamic_memory_usage>` **(** **)** |const|                                                                                                                                                                                                                        |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`                   | :ref:`get_environment<class_OS_method_get_environment>` **(** :ref:`String<class_String>` variable **)** |const|                                                                                                                                                                                                     |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`                   | :ref:`get_executable_path<class_OS_method_get_executable_path>` **(** **)** |const|                                                                                                                                                                                                                                  |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`PoolStringArray<class_PoolStringArray>` | :ref:`get_granted_permissions<class_OS_method_get_granted_permissions>` **(** **)** |const|                                                                                                                                                                                                                          |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Vector2<class_Vector2>`                 | :ref:`get_ime_selection<class_OS_method_get_ime_selection>` **(** **)** |const|                                                                                                                                                                                                                                      |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`                   | :ref:`get_ime_text<class_OS_method_get_ime_text>` **(** **)** |const|                                                                                                                                                                                                                                                |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`                   | :ref:`get_latin_keyboard_variant<class_OS_method_get_latin_keyboard_variant>` **(** **)** |const|                                                                                                                                                                                                                    |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`                   | :ref:`get_locale<class_OS_method_get_locale>` **(** **)** |const|                                                                                                                                                                                                                                                    |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`                   | :ref:`get_locale_language<class_OS_method_get_locale_language>` **(** **)** |const|                                                                                                                                                                                                                                  |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                         | :ref:`get_main_thread_id<class_OS_method_get_main_thread_id>` **(** **)** |const|                                                                                                                                                                                                                                    |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`                   | :ref:`get_model_name<class_OS_method_get_model_name>` **(** **)** |const|                                                                                                                                                                                                                                            |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`                   | :ref:`get_name<class_OS_method_get_name>` **(** **)** |const|                                                                                                                                                                                                                                                        |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                         | :ref:`get_native_handle<class_OS_method_get_native_handle>` **(** :ref:`HandleType<enum_OS_HandleType>` handle_type **)**                                                                                                                                                                                            |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                         | :ref:`get_power_percent_left<class_OS_method_get_power_percent_left>` **(** **)**                                                                                                                                                                                                                                    |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                         | :ref:`get_power_seconds_left<class_OS_method_get_power_seconds_left>` **(** **)**                                                                                                                                                                                                                                    |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`PowerState<enum_OS_PowerState>`         | :ref:`get_power_state<class_OS_method_get_power_state>` **(** **)**                                                                                                                                                                                                                                                  |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                         | :ref:`get_process_id<class_OS_method_get_process_id>` **(** **)** |const|                                                                                                                                                                                                                                            |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                         | :ref:`get_processor_count<class_OS_method_get_processor_count>` **(** **)** |const|                                                                                                                                                                                                                                  |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`                   | :ref:`get_processor_name<class_OS_method_get_processor_name>` **(** **)** |const|                                                                                                                                                                                                                                    |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Vector2<class_Vector2>`                 | :ref:`get_real_window_size<class_OS_method_get_real_window_size>` **(** **)** |const|                                                                                                                                                                                                                                |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`                   | :ref:`get_scancode_string<class_OS_method_get_scancode_string>` **(** :ref:`int<class_int>` code **)** |const|                                                                                                                                                                                                       |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                         | :ref:`get_screen_count<class_OS_method_get_screen_count>` **(** **)** |const|                                                                                                                                                                                                                                        |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                         | :ref:`get_screen_dpi<class_OS_method_get_screen_dpi>` **(** :ref:`int<class_int>` screen=-1 **)** |const|                                                                                                                                                                                                            |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                     | :ref:`get_screen_max_scale<class_OS_method_get_screen_max_scale>` **(** **)** |const|                                                                                                                                                                                                                                |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Vector2<class_Vector2>`                 | :ref:`get_screen_position<class_OS_method_get_screen_position>` **(** :ref:`int<class_int>` screen=-1 **)** |const|                                                                                                                                                                                                  |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                     | :ref:`get_screen_refresh_rate<class_OS_method_get_screen_refresh_rate>` **(** :ref:`int<class_int>` screen=-1 **)** |const|                                                                                                                                                                                          |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                     | :ref:`get_screen_scale<class_OS_method_get_screen_scale>` **(** :ref:`int<class_int>` screen=-1 **)** |const|                                                                                                                                                                                                        |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Vector2<class_Vector2>`                 | :ref:`get_screen_size<class_OS_method_get_screen_size>` **(** :ref:`int<class_int>` screen=-1 **)** |const|                                                                                                                                                                                                          |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                         | :ref:`get_splash_tick_msec<class_OS_method_get_splash_tick_msec>` **(** **)** |const|                                                                                                                                                                                                                                |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                         | :ref:`get_static_memory_peak_usage<class_OS_method_get_static_memory_peak_usage>` **(** **)** |const|                                                                                                                                                                                                                |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                         | :ref:`get_static_memory_usage<class_OS_method_get_static_memory_usage>` **(** **)** |const|                                                                                                                                                                                                                          |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`                   | :ref:`get_system_dir<class_OS_method_get_system_dir>` **(** :ref:`SystemDir<enum_OS_SystemDir>` dir, :ref:`bool<class_bool>` shared_storage=true **)** |const|                                                                                                                                                       |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                         | :ref:`get_system_time_msecs<class_OS_method_get_system_time_msecs>` **(** **)** |const|                                                                                                                                                                                                                              |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                         | :ref:`get_system_time_secs<class_OS_method_get_system_time_secs>` **(** **)** |const|                                                                                                                                                                                                                                |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                         | :ref:`get_tablet_driver_count<class_OS_method_get_tablet_driver_count>` **(** **)** |const|                                                                                                                                                                                                                          |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`                   | :ref:`get_tablet_driver_name<class_OS_method_get_tablet_driver_name>` **(** :ref:`int<class_int>` idx **)** |const|                                                                                                                                                                                                  |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                         | :ref:`get_thread_caller_id<class_OS_method_get_thread_caller_id>` **(** **)** |const|                                                                                                                                                                                                                                |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                         | :ref:`get_ticks_msec<class_OS_method_get_ticks_msec>` **(** **)** |const|                                                                                                                                                                                                                                            |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                         | :ref:`get_ticks_usec<class_OS_method_get_ticks_usec>` **(** **)** |const|                                                                                                                                                                                                                                            |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Dictionary<class_Dictionary>`           | :ref:`get_time<class_OS_method_get_time>` **(** :ref:`bool<class_bool>` utc=false **)** |const|                                                                                                                                                                                                                      |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Dictionary<class_Dictionary>`           | :ref:`get_time_zone_info<class_OS_method_get_time_zone_info>` **(** **)** |const|                                                                                                                                                                                                                                    |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`                   | :ref:`get_unique_id<class_OS_method_get_unique_id>` **(** **)** |const|                                                                                                                                                                                                                                              |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                         | :ref:`get_unix_time<class_OS_method_get_unix_time>` **(** **)** |const|                                                                                                                                                                                                                                              |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                         | :ref:`get_unix_time_from_datetime<class_OS_method_get_unix_time_from_datetime>` **(** :ref:`Dictionary<class_Dictionary>` datetime **)** |const|                                                                                                                                                                     |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`                   | :ref:`get_user_data_dir<class_OS_method_get_user_data_dir>` **(** **)** |const|                                                                                                                                                                                                                                      |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                         | :ref:`get_video_driver_count<class_OS_method_get_video_driver_count>` **(** **)** |const|                                                                                                                                                                                                                            |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`                   | :ref:`get_video_driver_name<class_OS_method_get_video_driver_name>` **(** :ref:`VideoDriver<enum_OS_VideoDriver>` driver **)** |const|                                                                                                                                                                               |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                         | :ref:`get_virtual_keyboard_height<class_OS_method_get_virtual_keyboard_height>` **(** **)**                                                                                                                                                                                                                          |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Rect2<class_Rect2>`                     | :ref:`get_window_safe_area<class_OS_method_get_window_safe_area>` **(** **)** |const|                                                                                                                                                                                                                                |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                          | :ref:`global_menu_add_item<class_OS_method_global_menu_add_item>` **(** :ref:`String<class_String>` menu, :ref:`String<class_String>` label, :ref:`Variant<class_Variant>` id, :ref:`Variant<class_Variant>` meta **)**                                                                                              |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                          | :ref:`global_menu_add_separator<class_OS_method_global_menu_add_separator>` **(** :ref:`String<class_String>` menu **)**                                                                                                                                                                                             |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                          | :ref:`global_menu_clear<class_OS_method_global_menu_clear>` **(** :ref:`String<class_String>` menu **)**                                                                                                                                                                                                             |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                          | :ref:`global_menu_remove_item<class_OS_method_global_menu_remove_item>` **(** :ref:`String<class_String>` menu, :ref:`int<class_int>` idx **)**                                                                                                                                                                      |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                       | :ref:`has_clipboard<class_OS_method_has_clipboard>` **(** **)** |const|                                                                                                                                                                                                                                              |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                       | :ref:`has_environment<class_OS_method_has_environment>` **(** :ref:`String<class_String>` variable **)** |const|                                                                                                                                                                                                     |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                       | :ref:`has_feature<class_OS_method_has_feature>` **(** :ref:`String<class_String>` tag_name **)** |const|                                                                                                                                                                                                             |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                       | :ref:`has_touchscreen_ui_hint<class_OS_method_has_touchscreen_ui_hint>` **(** **)** |const|                                                                                                                                                                                                                          |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                       | :ref:`has_virtual_keyboard<class_OS_method_has_virtual_keyboard>` **(** **)** |const|                                                                                                                                                                                                                                |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                          | :ref:`hide_virtual_keyboard<class_OS_method_hide_virtual_keyboard>` **(** **)**                                                                                                                                                                                                                                      |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                       | :ref:`is_debug_build<class_OS_method_is_debug_build>` **(** **)** |const|                                                                                                                                                                                                                                            |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                       | :ref:`is_ok_left_and_cancel_right<class_OS_method_is_ok_left_and_cancel_right>` **(** **)** |const|                                                                                                                                                                                                                  |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                       | :ref:`is_process_running<class_OS_method_is_process_running>` **(** :ref:`int<class_int>` pid **)** |const|                                                                                                                                                                                                          |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                       | :ref:`is_scancode_unicode<class_OS_method_is_scancode_unicode>` **(** :ref:`int<class_int>` code **)** |const|                                                                                                                                                                                                       |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                       | :ref:`is_stdout_verbose<class_OS_method_is_stdout_verbose>` **(** **)** |const|                                                                                                                                                                                                                                      |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                       | :ref:`is_userfs_persistent<class_OS_method_is_userfs_persistent>` **(** **)** |const|                                                                                                                                                                                                                                |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                       | :ref:`is_window_always_on_top<class_OS_method_is_window_always_on_top>` **(** **)** |const|                                                                                                                                                                                                                          |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                       | :ref:`is_window_focused<class_OS_method_is_window_focused>` **(** **)** |const|                                                                                                                                                                                                                                      |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                         | :ref:`keyboard_get_current_layout<class_OS_method_keyboard_get_current_layout>` **(** **)** |const|                                                                                                                                                                                                                  |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                         | :ref:`keyboard_get_layout_count<class_OS_method_keyboard_get_layout_count>` **(** **)** |const|                                                                                                                                                                                                                      |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`                   | :ref:`keyboard_get_layout_language<class_OS_method_keyboard_get_layout_language>` **(** :ref:`int<class_int>` index **)** |const|                                                                                                                                                                                    |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`                   | :ref:`keyboard_get_layout_name<class_OS_method_keyboard_get_layout_name>` **(** :ref:`int<class_int>` index **)** |const|                                                                                                                                                                                            |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                         | :ref:`keyboard_get_scancode_from_physical<class_OS_method_keyboard_get_scancode_from_physical>` **(** :ref:`int<class_int>` scancode **)** |const|                                                                                                                                                                   |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                          | :ref:`keyboard_set_current_layout<class_OS_method_keyboard_set_current_layout>` **(** :ref:`int<class_int>` index **)**                                                                                                                                                                                              |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Error<enum_@GlobalScope_Error>`         | :ref:`kill<class_OS_method_kill>` **(** :ref:`int<class_int>` pid **)**                                                                                                                                                                                                                                              |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Error<enum_@GlobalScope_Error>`         | :ref:`move_to_trash<class_OS_method_move_to_trash>` **(** :ref:`String<class_String>` path **)** |const|                                                                                                                                                                                                             |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                          | :ref:`move_window_to_foreground<class_OS_method_move_window_to_foreground>` **(** **)**                                                                                                                                                                                                                              |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                       | :ref:`native_video_is_playing<class_OS_method_native_video_is_playing>` **(** **)**                                                                                                                                                                                                                                  |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                          | :ref:`native_video_pause<class_OS_method_native_video_pause>` **(** **)**                                                                                                                                                                                                                                            |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Error<enum_@GlobalScope_Error>`         | :ref:`native_video_play<class_OS_method_native_video_play>` **(** :ref:`String<class_String>` path, :ref:`float<class_float>` volume, :ref:`String<class_String>` audio_track, :ref:`String<class_String>` subtitle_track **)**                                                                                      |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                          | :ref:`native_video_stop<class_OS_method_native_video_stop>` **(** **)**                                                                                                                                                                                                                                              |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                          | :ref:`native_video_unpause<class_OS_method_native_video_unpause>` **(** **)**                                                                                                                                                                                                                                        |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                          | :ref:`open_midi_inputs<class_OS_method_open_midi_inputs>` **(** **)**                                                                                                                                                                                                                                                |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                          | :ref:`print_all_resources<class_OS_method_print_all_resources>` **(** :ref:`String<class_String>` tofile="" **)**                                                                                                                                                                                                    |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                          | :ref:`print_all_textures_by_size<class_OS_method_print_all_textures_by_size>` **(** **)**                                                                                                                                                                                                                            |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                          | :ref:`print_resources_by_type<class_OS_method_print_resources_by_type>` **(** :ref:`PoolStringArray<class_PoolStringArray>` types **)**                                                                                                                                                                              |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                          | :ref:`print_resources_in_use<class_OS_method_print_resources_in_use>` **(** :ref:`bool<class_bool>` short=false **)**                                                                                                                                                                                                |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                          | :ref:`request_attention<class_OS_method_request_attention>` **(** **)**                                                                                                                                                                                                                                              |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                       | :ref:`request_permission<class_OS_method_request_permission>` **(** :ref:`String<class_String>` name **)**                                                                                                                                                                                                           |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                       | :ref:`request_permissions<class_OS_method_request_permissions>` **(** **)**                                                                                                                                                                                                                                          |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                       | :ref:`set_environment<class_OS_method_set_environment>` **(** :ref:`String<class_String>` variable, :ref:`String<class_String>` value **)** |const|                                                                                                                                                                  |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                          | :ref:`set_icon<class_OS_method_set_icon>` **(** :ref:`Image<class_Image>` icon **)**                                                                                                                                                                                                                                 |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                          | :ref:`set_ime_active<class_OS_method_set_ime_active>` **(** :ref:`bool<class_bool>` active **)**                                                                                                                                                                                                                     |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                          | :ref:`set_ime_position<class_OS_method_set_ime_position>` **(** :ref:`Vector2<class_Vector2>` position **)**                                                                                                                                                                                                         |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                          | :ref:`set_native_icon<class_OS_method_set_native_icon>` **(** :ref:`String<class_String>` filename **)**                                                                                                                                                                                                             |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Error<enum_@GlobalScope_Error>`         | :ref:`set_thread_name<class_OS_method_set_thread_name>` **(** :ref:`String<class_String>` name **)**                                                                                                                                                                                                                 |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                          | :ref:`set_use_file_access_save_and_swap<class_OS_method_set_use_file_access_save_and_swap>` **(** :ref:`bool<class_bool>` enabled **)**                                                                                                                                                                              |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                          | :ref:`set_window_always_on_top<class_OS_method_set_window_always_on_top>` **(** :ref:`bool<class_bool>` enabled **)**                                                                                                                                                                                                |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                          | :ref:`set_window_mouse_passthrough<class_OS_method_set_window_mouse_passthrough>` **(** :ref:`PoolVector2Array<class_PoolVector2Array>` region **)**                                                                                                                                                                 |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                          | :ref:`set_window_title<class_OS_method_set_window_title>` **(** :ref:`String<class_String>` title **)**                                                                                                                                                                                                              |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Error<enum_@GlobalScope_Error>`         | :ref:`shell_open<class_OS_method_shell_open>` **(** :ref:`String<class_String>` uri **)**                                                                                                                                                                                                                            |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                          | :ref:`show_virtual_keyboard<class_OS_method_show_virtual_keyboard>` **(** :ref:`String<class_String>` existing_text="", :ref:`bool<class_bool>` multiline=false **)**                                                                                                                                                |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                          | :ref:`show_virtual_keyboard_type<class_OS_method_show_virtual_keyboard_type>` **(** :ref:`String<class_String>` existing_text="", :ref:`VirtualKeyboardType<enum_OS_VirtualKeyboardType>` type=0 **)**                                                                                                               |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Array<class_Array>`                     | :ref:`tts_get_voices<class_OS_method_tts_get_voices>` **(** **)** |const|                                                                                                                                                                                                                                            |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`PoolStringArray<class_PoolStringArray>` | :ref:`tts_get_voices_for_language<class_OS_method_tts_get_voices_for_language>` **(** :ref:`String<class_String>` language **)** |const|                                                                                                                                                                             |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                       | :ref:`tts_is_paused<class_OS_method_tts_is_paused>` **(** **)** |const|                                                                                                                                                                                                                                              |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                       | :ref:`tts_is_speaking<class_OS_method_tts_is_speaking>` **(** **)** |const|                                                                                                                                                                                                                                          |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                          | :ref:`tts_pause<class_OS_method_tts_pause>` **(** **)**                                                                                                                                                                                                                                                              |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                          | :ref:`tts_resume<class_OS_method_tts_resume>` **(** **)**                                                                                                                                                                                                                                                            |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                          | :ref:`tts_set_utterance_callback<class_OS_method_tts_set_utterance_callback>` **(** :ref:`TTSUtteranceEvent<enum_OS_TTSUtteranceEvent>` event, :ref:`Object<class_Object>` object, :ref:`String<class_String>` callback **)**                                                                                        |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                          | :ref:`tts_speak<class_OS_method_tts_speak>` **(** :ref:`String<class_String>` text, :ref:`String<class_String>` voice, :ref:`int<class_int>` volume=50, :ref:`float<class_float>` pitch=1.0, :ref:`float<class_float>` rate=1.0, :ref:`int<class_int>` utterance_id=0, :ref:`bool<class_bool>` interrupt=false **)** |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                          | :ref:`tts_stop<class_OS_method_tts_stop>` **(** **)**                                                                                                                                                                                                                                                                |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 
 Enumerations
 ------------
@@ -517,6 +537,46 @@ enum **ScreenOrientation**:
 
 ----
 
+.. _enum_OS_VirtualKeyboardType:
+
+.. _class_OS_constant_KEYBOARD_TYPE_DEFAULT:
+
+.. _class_OS_constant_KEYBOARD_TYPE_MULTILINE:
+
+.. _class_OS_constant_KEYBOARD_TYPE_NUMBER:
+
+.. _class_OS_constant_KEYBOARD_TYPE_NUMBER_DECIMAL:
+
+.. _class_OS_constant_KEYBOARD_TYPE_PHONE:
+
+.. _class_OS_constant_KEYBOARD_TYPE_EMAIL_ADDRESS:
+
+.. _class_OS_constant_KEYBOARD_TYPE_PASSWORD:
+
+.. _class_OS_constant_KEYBOARD_TYPE_URL:
+
+enum **VirtualKeyboardType**:
+
+- **KEYBOARD_TYPE_DEFAULT** = **0** --- Default text virtual keyboard.
+
+- **KEYBOARD_TYPE_MULTILINE** = **1** --- Multiline virtual keyboard.
+
+- **KEYBOARD_TYPE_NUMBER** = **2** --- Virtual number keypad, useful for PIN entry.
+
+- **KEYBOARD_TYPE_NUMBER_DECIMAL** = **3** --- Virtual number keypad, useful for entering fractional numbers.
+
+- **KEYBOARD_TYPE_PHONE** = **4** --- Virtual phone number keypad.
+
+- **KEYBOARD_TYPE_EMAIL_ADDRESS** = **5** --- Virtual keyboard with additional keys to assist with typing email addresses.
+
+- **KEYBOARD_TYPE_PASSWORD** = **6** --- Virtual keyboard for entering a password. On most platforms, this should disable autocomplete and autocapitalization.
+
+\ **Note:** This is not supported on HTML5 or below iOS version 11.0. Instead, this will behave identically to :ref:`KEYBOARD_TYPE_DEFAULT<class_OS_constant_KEYBOARD_TYPE_DEFAULT>`.
+
+- **KEYBOARD_TYPE_URL** = **7** --- Virtual keyboard with additional keys to assist with typing URLs.
+
+----
+
 .. _enum_OS_SystemDir:
 
 .. _class_OS_constant_SYSTEM_DIR_DESKTOP:
@@ -579,6 +639,28 @@ enum **PowerState**:
 
 - **POWERSTATE_CHARGED** = **4** --- Plugged in, battery fully charged.
 
+----
+
+.. _enum_OS_TTSUtteranceEvent:
+
+.. _class_OS_constant_TTS_UTTERANCE_STARTED:
+
+.. _class_OS_constant_TTS_UTTERANCE_ENDED:
+
+.. _class_OS_constant_TTS_UTTERANCE_CANCELED:
+
+.. _class_OS_constant_TTS_UTTERANCE_BOUNDARY:
+
+enum **TTSUtteranceEvent**:
+
+- **TTS_UTTERANCE_STARTED** = **0** --- Utterance has begun to be spoken.
+
+- **TTS_UTTERANCE_ENDED** = **1** --- Utterance was successfully finished.
+
+- **TTS_UTTERANCE_CANCELED** = **2** --- Utterance was canceled, or TTS service was unable to process it.
+
+- **TTS_UTTERANCE_BOUNDARY** = **3** --- Utterance reached a word or sentence boundary.
+
 Property Descriptions
 ---------------------
 
@@ -1665,6 +1747,8 @@ Returns the current UNIX epoch timestamp in seconds.
 
 \ **Important:** This is the system clock that the user can manually set. **Never use** this method for precise time calculation since its results are also subject to automatic adjustments by the operating system. **Always use** :ref:`get_ticks_usec<class_OS_method_get_ticks_usec>` or :ref:`get_ticks_msec<class_OS_method_get_ticks_msec>` for precise time calculation instead, since they are guaranteed to be monotonic (i.e. never decrease).
 
+\ **Note:** To get a floating point timestamp with sub-second precision, use :ref:`Time.get_unix_time_from_system<class_Time_method_get_unix_time_from_system>`.
+
 ----
 
 .. _class_OS_method_get_unix_time_from_datetime:
@@ -2267,7 +2351,141 @@ The ``existing_text`` parameter is useful for implementing your own :ref:`LineEd
 
 The ``multiline`` parameter needs to be set to ``true`` to be able to enter multiple lines of text, as in :ref:`TextEdit<class_TextEdit>`.
 
-\ **Note:** This method is implemented on Android, iOS and UWP.
+\ **Note:** This method is equivalent to calling :ref:`show_virtual_keyboard_type<class_OS_method_show_virtual_keyboard_type>` with either default or multiline keyboard type. It is kept for compatibility with previous Godot releases and should be considered *deprecated* and replaced by :ref:`show_virtual_keyboard_type<class_OS_method_show_virtual_keyboard_type>`.
+
+\ **Note:** This method is implemented on Android, iOS, UWP, and HTML5.
+
+----
+
+.. _class_OS_method_show_virtual_keyboard_type:
+
+- void **show_virtual_keyboard_type** **(** :ref:`String<class_String>` existing_text="", :ref:`VirtualKeyboardType<enum_OS_VirtualKeyboardType>` type=0 **)**
+
+Shows the virtual keyboard if the platform has one.
+
+The ``existing_text`` parameter is useful for implementing your own :ref:`LineEdit<class_LineEdit>` or :ref:`TextEdit<class_TextEdit>`, as it tells the virtual keyboard what text has already been typed (the virtual keyboard uses it for auto-correct and predictions).
+
+The ``type`` parameter allows selecting which virtual keyboard to show.
+
+\ **Note:** This method is implemented on Android, iOS, UWP, and HTML5.
+
+----
+
+.. _class_OS_method_tts_get_voices:
+
+- :ref:`Array<class_Array>` **tts_get_voices** **(** **)** |const|
+
+Returns an :ref:`Array<class_Array>` of voice information dictionaries.
+
+Each :ref:`Dictionary<class_Dictionary>` contains two :ref:`String<class_String>` entries:
+
+- ``name`` is voice name.
+
+- ``id`` is voice identifier.
+
+- ``language`` is language code in ``lang_Variant`` format. ``lang`` part is a 2 or 3-letter code based on the ISO-639 standard, in lowercase. And ``Variant`` part is an engine dependent string describing country, region or/and dialect.
+
+\ **Note:** This method is implemented on Android, iOS, HTML5, Linux, macOS, and Windows.
+
+----
+
+.. _class_OS_method_tts_get_voices_for_language:
+
+- :ref:`PoolStringArray<class_PoolStringArray>` **tts_get_voices_for_language** **(** :ref:`String<class_String>` language **)** |const|
+
+Returns an :ref:`PoolStringArray<class_PoolStringArray>` of voice identifiers for the ``language``.
+
+\ **Note:** This method is implemented on Android, iOS, HTML5, Linux, macOS, and Windows.
+
+----
+
+.. _class_OS_method_tts_is_paused:
+
+- :ref:`bool<class_bool>` **tts_is_paused** **(** **)** |const|
+
+Returns ``true`` if the synthesizer is in a paused state.
+
+\ **Note:** This method is implemented on Android, iOS, HTML5, Linux, macOS, and Windows.
+
+----
+
+.. _class_OS_method_tts_is_speaking:
+
+- :ref:`bool<class_bool>` **tts_is_speaking** **(** **)** |const|
+
+Returns ``true`` if the synthesizer is generating speech, or have utterance waiting in the queue.
+
+\ **Note:** This method is implemented on Android, iOS, HTML5, Linux, macOS, and Windows.
+
+----
+
+.. _class_OS_method_tts_pause:
+
+- void **tts_pause** **(** **)**
+
+Puts the synthesizer into a paused state.
+
+\ **Note:** This method is implemented on Android, iOS, HTML5, Linux, macOS, and Windows.
+
+----
+
+.. _class_OS_method_tts_resume:
+
+- void **tts_resume** **(** **)**
+
+Resumes the synthesizer if it was paused.
+
+\ **Note:** This method is implemented on Android, iOS, HTML5, Linux, macOS, and Windows.
+
+----
+
+.. _class_OS_method_tts_set_utterance_callback:
+
+- void **tts_set_utterance_callback** **(** :ref:`TTSUtteranceEvent<enum_OS_TTSUtteranceEvent>` event, :ref:`Object<class_Object>` object, :ref:`String<class_String>` callback **)**
+
+Adds a callback, which is called when the utterance has started, finished, canceled or reached a text boundary.
+
+- ``TTS_UTTERANCE_STARTED``, ``TTS_UTTERANCE_ENDED``, and ``TTS_UTTERANCE_CANCELED`` callable's method should take one :ref:`int<class_int>` parameter, the utterance id.
+
+- ``TTS_UTTERANCE_BOUNDARY`` callable's method should take two :ref:`int<class_int>` parameters, the index of the character and the utterance id.
+
+\ **Note:** The granularity of the boundary callbacks is engine dependent.
+
+\ **Note:** This method is implemented on Android, iOS, HTML5, Linux, macOS, and Windows.
+
+----
+
+.. _class_OS_method_tts_speak:
+
+- void **tts_speak** **(** :ref:`String<class_String>` text, :ref:`String<class_String>` voice, :ref:`int<class_int>` volume=50, :ref:`float<class_float>` pitch=1.0, :ref:`float<class_float>` rate=1.0, :ref:`int<class_int>` utterance_id=0, :ref:`bool<class_bool>` interrupt=false **)**
+
+Adds an utterance to the queue. If ``interrupt`` is ``true``, the queue is cleared first.
+
+- ``voice`` identifier is one of the ``"id"`` values returned by :ref:`tts_get_voices<class_OS_method_tts_get_voices>` or one of the values returned by :ref:`tts_get_voices_for_language<class_OS_method_tts_get_voices_for_language>`.
+
+- ``volume`` ranges from ``0`` (lowest) to ``100`` (highest).
+
+- ``pitch`` ranges from ``0.0`` (lowest) to ``2.0`` (highest), ``1.0`` is default pitch for the current voice.
+
+- ``rate`` ranges from ``0.1`` (lowest) to ``10.0`` (highest), ``1.0`` is a normal speaking rate. Other values act as a percentage relative.
+
+- ``utterance_id`` is passed as a parameter to the callback functions.
+
+\ **Note:** On Windows and Linux, utterance ``text`` can use SSML markup. SSML support is engine and voice dependent. If the engine does not support SSML, you should strip out all XML markup before calling :ref:`tts_speak<class_OS_method_tts_speak>`.
+
+\ **Note:** The granularity of pitch, rate, and volume is engine and voice dependent. Values may be truncated.
+
+\ **Note:** This method is implemented on Android, iOS, HTML5, Linux, macOS, and Windows.
+
+----
+
+.. _class_OS_method_tts_stop:
+
+- void **tts_stop** **(** **)**
+
+Stops synthesis in progress and removes all utterances from the queue.
+
+\ **Note:** This method is implemented on Android, iOS, HTML5, Linux, macOS, and Windows.
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`

+ 2 - 0
classes/class_parallaxlayer.rst

@@ -51,6 +51,8 @@ Property Descriptions
 
 The ParallaxLayer's :ref:`Texture<class_Texture>` mirroring. Useful for creating an infinite scrolling background. If an axis is set to ``0``, the :ref:`Texture<class_Texture>` will not be mirrored.
 
+If the length of the viewport axis is bigger than twice the mirrored axis size, it will not repeat infinitely, as the parallax layer only draws 2 instances of the texture at any one time.
+
 ----
 
 .. _class_ParallaxLayer_property_motion_offset:

+ 1 - 1
classes/class_particlesmaterial.rst

@@ -1059,7 +1059,7 @@ Radial acceleration randomness ratio.
 | *Getter*  | get_param()      |
 +-----------+------------------+
 
-Initial scale applied to each particle.
+Initial scale applied to each particle. This can be set to a negative value to flip the particle on all axes.
 
 ----
 

+ 3 - 1
classes/class_physics2dserver.rst

@@ -1202,7 +1202,9 @@ Sets a damped spring joint parameter. See :ref:`DampedStringParam<enum_Physics2D
 
 - void **free_rid** **(** :ref:`RID<class_RID>` rid **)**
 
-Destroys any of the objects created by Physics2DServer. If the :ref:`RID<class_RID>` passed is not one of the objects that can be created by Physics2DServer, an error will be sent to the console.
+Destroys an object created by the Physics2DServer.
+
+\ **Note:** See :ref:`VisualServer.free_rid<class_VisualServer_method_free_rid>` for details on how to handle RIDs for freed objects.
 
 ----
 

+ 3 - 1
classes/class_physicsserver.rst

@@ -1486,7 +1486,9 @@ Sets a cone_twist_joint parameter (see :ref:`ConeTwistJointParam<enum_PhysicsSer
 
 - void **free_rid** **(** :ref:`RID<class_RID>` rid **)**
 
-Destroys any of the objects created by PhysicsServer. If the :ref:`RID<class_RID>` passed is not one of the objects that can be created by PhysicsServer, an error will be sent to the console.
+Destroys an object created by the PhysicsServer.
+
+\ **Note:** See :ref:`VisualServer.free_rid<class_VisualServer_method_free_rid>` for details on how to handle RIDs for freed objects.
 
 ----
 

+ 10 - 0
classes/class_poolbytearray.rst

@@ -45,6 +45,8 @@ Methods
 +-------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                                      | :ref:`append_array<class_PoolByteArray_method_append_array>` **(** :ref:`PoolByteArray<class_PoolByteArray>` array **)**                                             |
 +-------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                      | :ref:`clear<class_PoolByteArray_method_clear>` **(** **)**                                                                                                           |
++-------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`PoolByteArray<class_PoolByteArray>` | :ref:`compress<class_PoolByteArray_method_compress>` **(** :ref:`int<class_int>` compression_mode=0 **)**                                                            |
 +-------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`int<class_int>`                     | :ref:`count<class_PoolByteArray_method_count>` **(** :ref:`int<class_int>` value **)**                                                                               |
@@ -115,6 +117,14 @@ Appends a ``PoolByteArray`` at the end of this array.
 
 ----
 
+.. _class_PoolByteArray_method_clear:
+
+- void **clear** **(** **)**
+
+Clears the array. This is equivalent to using :ref:`resize<class_PoolByteArray_method_resize>` with a size of ``0``.
+
+----
+
 .. _class_PoolByteArray_method_compress:
 
 - :ref:`PoolByteArray<class_PoolByteArray>` **compress** **(** :ref:`int<class_int>` compression_mode=0 **)**

+ 10 - 0
classes/class_poolcolorarray.rst

@@ -45,6 +45,8 @@ Methods
 +---------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+
 | void                                        | :ref:`append_array<class_PoolColorArray_method_append_array>` **(** :ref:`PoolColorArray<class_PoolColorArray>` array **)** |
 +---------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+
+| void                                        | :ref:`clear<class_PoolColorArray_method_clear>` **(** **)**                                                                 |
++---------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+
 | :ref:`int<class_int>`                       | :ref:`count<class_PoolColorArray_method_count>` **(** :ref:`Color<class_Color>` value **)**                                 |
 +---------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+
 | :ref:`bool<class_bool>`                     | :ref:`empty<class_PoolColorArray_method_empty>` **(** **)**                                                                 |
@@ -101,6 +103,14 @@ Appends a ``PoolColorArray`` at the end of this array.
 
 ----
 
+.. _class_PoolColorArray_method_clear:
+
+- void **clear** **(** **)**
+
+Clears the array. This is equivalent to using :ref:`resize<class_PoolColorArray_method_resize>` with a size of ``0``.
+
+----
+
 .. _class_PoolColorArray_method_count:
 
 - :ref:`int<class_int>` **count** **(** :ref:`Color<class_Color>` value **)**

+ 10 - 0
classes/class_poolintarray.rst

@@ -47,6 +47,8 @@ Methods
 +-----------------------------------------+-----------------------------------------------------------------------------------------------------------------------+
 | void                                    | :ref:`append_array<class_PoolIntArray_method_append_array>` **(** :ref:`PoolIntArray<class_PoolIntArray>` array **)** |
 +-----------------------------------------+-----------------------------------------------------------------------------------------------------------------------+
+| void                                    | :ref:`clear<class_PoolIntArray_method_clear>` **(** **)**                                                             |
++-----------------------------------------+-----------------------------------------------------------------------------------------------------------------------+
 | :ref:`int<class_int>`                   | :ref:`count<class_PoolIntArray_method_count>` **(** :ref:`int<class_int>` value **)**                                 |
 +-----------------------------------------+-----------------------------------------------------------------------------------------------------------------------+
 | :ref:`bool<class_bool>`                 | :ref:`empty<class_PoolIntArray_method_empty>` **(** **)**                                                             |
@@ -103,6 +105,14 @@ Appends a ``PoolIntArray`` at the end of this array.
 
 ----
 
+.. _class_PoolIntArray_method_clear:
+
+- void **clear** **(** **)**
+
+Clears the array. This is equivalent to using :ref:`resize<class_PoolIntArray_method_resize>` with a size of ``0``.
+
+----
+
 .. _class_PoolIntArray_method_count:
 
 - :ref:`int<class_int>` **count** **(** :ref:`int<class_int>` value **)**

+ 10 - 0
classes/class_poolrealarray.rst

@@ -47,6 +47,8 @@ Methods
 +-------------------------------------------+---------------------------------------------------------------------------------------------------------------------------+
 | void                                      | :ref:`append_array<class_PoolRealArray_method_append_array>` **(** :ref:`PoolRealArray<class_PoolRealArray>` array **)**  |
 +-------------------------------------------+---------------------------------------------------------------------------------------------------------------------------+
+| void                                      | :ref:`clear<class_PoolRealArray_method_clear>` **(** **)**                                                                |
++-------------------------------------------+---------------------------------------------------------------------------------------------------------------------------+
 | :ref:`int<class_int>`                     | :ref:`count<class_PoolRealArray_method_count>` **(** :ref:`float<class_float>` value **)**                                |
 +-------------------------------------------+---------------------------------------------------------------------------------------------------------------------------+
 | :ref:`bool<class_bool>`                   | :ref:`empty<class_PoolRealArray_method_empty>` **(** **)**                                                                |
@@ -103,6 +105,14 @@ Appends a ``PoolRealArray`` at the end of this array.
 
 ----
 
+.. _class_PoolRealArray_method_clear:
+
+- void **clear** **(** **)**
+
+Clears the array. This is equivalent to using :ref:`resize<class_PoolRealArray_method_resize>` with a size of ``0``.
+
+----
+
 .. _class_PoolRealArray_method_count:
 
 - :ref:`int<class_int>` **count** **(** :ref:`float<class_float>` value **)**

+ 10 - 0
classes/class_poolstringarray.rst

@@ -50,6 +50,8 @@ Methods
 +-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------+
 | void                                          | :ref:`append_array<class_PoolStringArray_method_append_array>` **(** :ref:`PoolStringArray<class_PoolStringArray>` array **)** |
 +-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------+
+| void                                          | :ref:`clear<class_PoolStringArray_method_clear>` **(** **)**                                                                   |
++-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`int<class_int>`                         | :ref:`count<class_PoolStringArray_method_count>` **(** :ref:`String<class_String>` value **)**                                 |
 +-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`bool<class_bool>`                       | :ref:`empty<class_PoolStringArray_method_empty>` **(** **)**                                                                   |
@@ -108,6 +110,14 @@ Appends a ``PoolStringArray`` at the end of this array.
 
 ----
 
+.. _class_PoolStringArray_method_clear:
+
+- void **clear** **(** **)**
+
+Clears the array. This is equivalent to using :ref:`resize<class_PoolStringArray_method_resize>` with a size of ``0``.
+
+----
+
 .. _class_PoolStringArray_method_count:
 
 - :ref:`int<class_int>` **count** **(** :ref:`String<class_String>` value **)**

+ 10 - 0
classes/class_poolvector2array.rst

@@ -50,6 +50,8 @@ Methods
 +-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------+
 | void                                            | :ref:`append_array<class_PoolVector2Array_method_append_array>` **(** :ref:`PoolVector2Array<class_PoolVector2Array>` array **)** |
 +-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------+
+| void                                            | :ref:`clear<class_PoolVector2Array_method_clear>` **(** **)**                                                                     |
++-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`int<class_int>`                           | :ref:`count<class_PoolVector2Array_method_count>` **(** :ref:`Vector2<class_Vector2>` value **)**                                 |
 +-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`bool<class_bool>`                         | :ref:`empty<class_PoolVector2Array_method_empty>` **(** **)**                                                                     |
@@ -106,6 +108,14 @@ Appends a ``PoolVector2Array`` at the end of this array.
 
 ----
 
+.. _class_PoolVector2Array_method_clear:
+
+- void **clear** **(** **)**
+
+Clears the array. This is equivalent to using :ref:`resize<class_PoolVector2Array_method_resize>` with a size of ``0``.
+
+----
+
 .. _class_PoolVector2Array_method_count:
 
 - :ref:`int<class_int>` **count** **(** :ref:`Vector2<class_Vector2>` value **)**

+ 10 - 0
classes/class_poolvector3array.rst

@@ -45,6 +45,8 @@ Methods
 +-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------+
 | void                                            | :ref:`append_array<class_PoolVector3Array_method_append_array>` **(** :ref:`PoolVector3Array<class_PoolVector3Array>` array **)** |
 +-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------+
+| void                                            | :ref:`clear<class_PoolVector3Array_method_clear>` **(** **)**                                                                     |
++-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`int<class_int>`                           | :ref:`count<class_PoolVector3Array_method_count>` **(** :ref:`Vector3<class_Vector3>` value **)**                                 |
 +-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`bool<class_bool>`                         | :ref:`empty<class_PoolVector3Array_method_empty>` **(** **)**                                                                     |
@@ -101,6 +103,14 @@ Appends a ``PoolVector3Array`` at the end of this array.
 
 ----
 
+.. _class_PoolVector3Array_method_clear:
+
+- void **clear** **(** **)**
+
+Clears the array. This is equivalent to using :ref:`resize<class_PoolVector3Array_method_resize>` with a size of ``0``.
+
+----
+
 .. _class_PoolVector3Array_method_count:
 
 - :ref:`int<class_int>` **count** **(** :ref:`Vector3<class_Vector3>` value **)**

+ 2 - 0
classes/class_popupmenu.rst

@@ -639,6 +639,8 @@ Removes the item at index ``idx`` from the menu.
 
 Sets the currently focused item as the given ``index``.
 
+Passing ``-1`` as the index makes so that no item is focused.
+
 ----
 
 .. _class_PopupMenu_method_set_hide_on_window_lose_focus:

+ 2 - 0
classes/class_popuppanel.rst

@@ -19,6 +19,8 @@ Description
 
 Class for displaying popups with a panel background. In some cases it might be simpler to use than :ref:`Popup<class_Popup>`, since it provides a configurable background. If you are making windows, better check :ref:`WindowDialog<class_WindowDialog>`.
 
+If any :ref:`Control<class_Control>` node is added as a child of this ``PopupPanel``, it will be stretched to fit the panel's size (similar to how :ref:`PanelContainer<class_PanelContainer>` works).
+
 Theme Properties
 ----------------
 

+ 1 - 1
classes/class_primitivemesh.rst

@@ -12,7 +12,7 @@ PrimitiveMesh
 
 **Inherits:** :ref:`Mesh<class_Mesh>` **<** :ref:`Resource<class_Resource>` **<** :ref:`Reference<class_Reference>` **<** :ref:`Object<class_Object>`
 
-**Inherited By:** :ref:`CapsuleMesh<class_CapsuleMesh>`, :ref:`CubeMesh<class_CubeMesh>`, :ref:`CylinderMesh<class_CylinderMesh>`, :ref:`PlaneMesh<class_PlaneMesh>`, :ref:`PointMesh<class_PointMesh>`, :ref:`PrismMesh<class_PrismMesh>`, :ref:`QuadMesh<class_QuadMesh>`, :ref:`SphereMesh<class_SphereMesh>`, :ref:`TextMesh<class_TextMesh>`
+**Inherited By:** :ref:`CapsuleMesh<class_CapsuleMesh>`, :ref:`CubeMesh<class_CubeMesh>`, :ref:`CylinderMesh<class_CylinderMesh>`, :ref:`PlaneMesh<class_PlaneMesh>`, :ref:`PointMesh<class_PointMesh>`, :ref:`PrismMesh<class_PrismMesh>`, :ref:`QuadMesh<class_QuadMesh>`, :ref:`SphereMesh<class_SphereMesh>`, :ref:`TextMesh<class_TextMesh>`, :ref:`TorusMesh<class_TorusMesh>`
 
 Base class for all primitive meshes. Handles applying a :ref:`Material<class_Material>` to a primitive mesh.
 

+ 49 - 1
classes/class_projectsettings.rst

@@ -46,6 +46,8 @@ Properties
 +-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+
 | :ref:`String<class_String>`                   | :ref:`application/boot_splash/image<class_ProjectSettings_property_application/boot_splash/image>`                                                                   | ``""``                                                                                           |
 +-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                         | :ref:`application/boot_splash/minimum_display_time<class_ProjectSettings_property_application/boot_splash/minimum_display_time>`                                     | ``0``                                                                                            |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+
 | :ref:`bool<class_bool>`                       | :ref:`application/boot_splash/show_image<class_ProjectSettings_property_application/boot_splash/show_image>`                                                         | ``true``                                                                                         |
 +-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+
 | :ref:`bool<class_bool>`                       | :ref:`application/boot_splash/use_filter<class_ProjectSettings_property_application/boot_splash/use_filter>`                                                         | ``true``                                                                                         |
@@ -88,6 +90,10 @@ Properties
 +-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+
 | :ref:`String<class_String>`                   | :ref:`application/run/main_scene<class_ProjectSettings_property_application/run/main_scene>`                                                                         | ``""``                                                                                           |
 +-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                     | :ref:`audio/2d_panning_strength<class_ProjectSettings_property_audio/2d_panning_strength>`                                                                           | ``1.0``                                                                                          |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                     | :ref:`audio/3d_panning_strength<class_ProjectSettings_property_audio/3d_panning_strength>`                                                                           | ``1.0``                                                                                          |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+
 | :ref:`float<class_float>`                     | :ref:`audio/channel_disable_threshold_db<class_ProjectSettings_property_audio/channel_disable_threshold_db>`                                                         | ``-60.0``                                                                                        |
 +-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+
 | :ref:`float<class_float>`                     | :ref:`audio/channel_disable_time<class_ProjectSettings_property_audio/channel_disable_time>`                                                                         | ``2.0``                                                                                          |
@@ -1134,6 +1140,18 @@ Path to an image used as the boot splash. If left empty, the default Godot Engin
 
 ----
 
+.. _class_ProjectSettings_property_application/boot_splash/minimum_display_time:
+
+- :ref:`int<class_int>` **application/boot_splash/minimum_display_time**
+
++-----------+-------+
+| *Default* | ``0`` |
++-----------+-------+
+
+Minimum boot splash display time (in milliseconds). It is not recommended to set too high values for this setting.
+
+----
+
 .. _class_ProjectSettings_property_application/boot_splash/show_image:
 
 - :ref:`bool<class_bool>` **application/boot_splash/show_image**
@@ -1414,6 +1432,30 @@ Path to the main scene file that will be loaded when the project runs.
 
 ----
 
+.. _class_ProjectSettings_property_audio/2d_panning_strength:
+
+- :ref:`float<class_float>` **audio/2d_panning_strength**
+
++-----------+---------+
+| *Default* | ``1.0`` |
++-----------+---------+
+
+The base strength of the panning effect for all AudioStreamPlayer2D nodes. The panning strength can be further scaled on each Node using :ref:`AudioStreamPlayer2D.panning_strength<class_AudioStreamPlayer2D_property_panning_strength>`.
+
+----
+
+.. _class_ProjectSettings_property_audio/3d_panning_strength:
+
+- :ref:`float<class_float>` **audio/3d_panning_strength**
+
++-----------+---------+
+| *Default* | ``1.0`` |
++-----------+---------+
+
+The base strength of the panning effect for all AudioStreamPlayer3D nodes. The panning strength can be further scaled on each Node using :ref:`AudioStreamPlayer3D.panning_strength<class_AudioStreamPlayer3D_property_panning_strength>`.
+
+----
+
 .. _class_ProjectSettings_property_audio/channel_disable_threshold_db:
 
 - :ref:`float<class_float>` **audio/channel_disable_threshold_db**
@@ -1468,6 +1510,8 @@ Specifies the audio driver to use. This setting is platform-dependent as each pl
 
 If ``true``, microphone input will be allowed. This requires appropriate permissions to be set when exporting to Android or iOS.
 
+\ **Note:** If the operating system blocks access to audio input devices (due to the user's privacy settings), audio capture will only return silence. On Windows 10 and later, make sure that apps are allowed to access the microphone in the OS' privacy settings.
+
 ----
 
 .. _class_ProjectSettings_property_audio/mix_rate:
@@ -6676,7 +6720,11 @@ If ``true``, allows falling back to the GLES2 driver if the GLES3 driver is not
 | *Default* | ``4`` |
 +-----------+-------+
 
-Maximum anisotropic filter level used for textures with anisotropy enabled. Higher values will result in sharper textures when viewed from oblique angles, at the cost of performance. Only power-of-two values are valid (2, 4, 8, 16).
+Maximum anisotropic filter level used for textures with anisotropy enabled. Higher values will result in sharper textures when viewed from oblique angles, at the cost of performance. With the exception of ``1``, only power-of-two values are valid (``2``, ``4``, ``8``, ``16``). A value of ``1`` forcibly disables anisotropic filtering, even on textures where it is enabled.
+
+\ **Note:** For performance reasons, anisotropic filtering *is not enabled by default* on textures. For this setting to have an effect, anisotropic texture filtering can be enabled by selecting a texture in the FileSystem dock, going to the Import dock, checking the **Anisotropic** checkbox then clicking **Reimport**. However, anisotropic filtering is rarely useful in 2D, so only enable it for textures in 2D if it makes a meaningful visual difference.
+
+\ **Note:** This property is only read when the project starts. There is currently no way to change this setting at run-time.
 
 ----
 

+ 15 - 15
classes/class_resourceformatloader.rst

@@ -26,19 +26,19 @@ Extending this class allows you to define your own loader. Be sure to respect th
 Methods
 -------
 
-+-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                          | :ref:`get_dependencies<class_ResourceFormatLoader_method_get_dependencies>` **(** :ref:`String<class_String>` path, :ref:`String<class_String>` add_types **)** |virtual|     |
-+-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`PoolStringArray<class_PoolStringArray>` | :ref:`get_recognized_extensions<class_ResourceFormatLoader_method_get_recognized_extensions>` **(** **)** |virtual|                                                           |
-+-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_String>`                   | :ref:`get_resource_type<class_ResourceFormatLoader_method_get_resource_type>` **(** :ref:`String<class_String>` path **)** |virtual|                                          |
-+-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                       | :ref:`handles_type<class_ResourceFormatLoader_method_handles_type>` **(** :ref:`String<class_String>` typename **)** |virtual|                                                |
-+-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Variant<class_Variant>`                 | :ref:`load<class_ResourceFormatLoader_method_load>` **(** :ref:`String<class_String>` path, :ref:`String<class_String>` original_path **)** |virtual|                         |
-+-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                         | :ref:`rename_dependencies<class_ResourceFormatLoader_method_rename_dependencies>` **(** :ref:`String<class_String>` path, :ref:`String<class_String>` renames **)** |virtual| |
-+-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
++-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                          | :ref:`get_dependencies<class_ResourceFormatLoader_method_get_dependencies>` **(** :ref:`String<class_String>` path, :ref:`String<class_String>` add_types **)** |virtual|                           |
++-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`PoolStringArray<class_PoolStringArray>` | :ref:`get_recognized_extensions<class_ResourceFormatLoader_method_get_recognized_extensions>` **(** **)** |virtual|                                                                                 |
++-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`                   | :ref:`get_resource_type<class_ResourceFormatLoader_method_get_resource_type>` **(** :ref:`String<class_String>` path **)** |virtual|                                                                |
++-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                       | :ref:`handles_type<class_ResourceFormatLoader_method_handles_type>` **(** :ref:`String<class_String>` typename **)** |virtual|                                                                      |
++-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Variant<class_Variant>`                 | :ref:`load<class_ResourceFormatLoader_method_load>` **(** :ref:`String<class_String>` path, :ref:`String<class_String>` original_path, :ref:`bool<class_bool>` no_subresource_cache **)** |virtual| |
++-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                         | :ref:`rename_dependencies<class_ResourceFormatLoader_method_rename_dependencies>` **(** :ref:`String<class_String>` path, :ref:`String<class_String>` renames **)** |virtual|                       |
++-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 
 Method Descriptions
 -------------------
@@ -83,9 +83,9 @@ Tells which resource class this loader can load.
 
 .. _class_ResourceFormatLoader_method_load:
 
-- :ref:`Variant<class_Variant>` **load** **(** :ref:`String<class_String>` path, :ref:`String<class_String>` original_path **)** |virtual|
+- :ref:`Variant<class_Variant>` **load** **(** :ref:`String<class_String>` path, :ref:`String<class_String>` original_path, :ref:`bool<class_bool>` no_subresource_cache **)** |virtual|
 
-Loads a resource when the engine finds this loader to be compatible. If the loaded resource is the result of an import, ``original_path`` will target the source file. Returns a :ref:`Resource<class_Resource>` object on success, or an :ref:`Error<enum_@GlobalScope_Error>` constant in case of failure.
+Loads a resource when the engine finds this loader to be compatible. If the loaded resource is the result of an import, ``original_path`` will target the source file. If ``no_subresource_cache`` is true, sub-resources should not be cached. Returns a :ref:`Resource<class_Resource>` object on success, or an :ref:`Error<enum_@GlobalScope_Error>` constant in case of failure.
 
 ----
 

+ 22 - 0
classes/class_resourceinteractiveloader.rst

@@ -19,6 +19,13 @@ Description
 
 Interactive :ref:`Resource<class_Resource>` loader. This object is returned by :ref:`ResourceLoader<class_ResourceLoader>` when performing an interactive load. It allows loading resources with high granularity, which makes it mainly useful for displaying loading bars or percentages.
 
+Properties
+----------
+
++-------------------------+--------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>` | :ref:`no_subresource_cache<class_ResourceInteractiveLoader_property_no_subresource_cache>` |
++-------------------------+--------------------------------------------------------------------------------------------+
+
 Methods
 -------
 
@@ -34,6 +41,21 @@ Methods
 | :ref:`Error<enum_@GlobalScope_Error>` | :ref:`wait<class_ResourceInteractiveLoader_method_wait>` **(** **)**                               |
 +---------------------------------------+----------------------------------------------------------------------------------------------------+
 
+Property Descriptions
+---------------------
+
+.. _class_ResourceInteractiveLoader_property_no_subresource_cache:
+
+- :ref:`bool<class_bool>` **no_subresource_cache**
+
++----------+---------------------------------+
+| *Setter* | set_no_subresource_cache(value) |
++----------+---------------------------------+
+| *Getter* | get_no_subresource_cache()      |
++----------+---------------------------------+
+
+Configures whether nested resources, if included, should not be cached.
+
 Method Descriptions
 -------------------
 

+ 21 - 19
classes/class_resourceloader.rst

@@ -29,23 +29,23 @@ Tutorials
 Methods
 -------
 
-+-------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                                           | :ref:`exists<class_ResourceLoader_method_exists>` **(** :ref:`String<class_String>` path, :ref:`String<class_String>` type_hint="" **)**                                     |
-+-------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`PoolStringArray<class_PoolStringArray>`                     | :ref:`get_dependencies<class_ResourceLoader_method_get_dependencies>` **(** :ref:`String<class_String>` path **)**                                                           |
-+-------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`PoolStringArray<class_PoolStringArray>`                     | :ref:`get_recognized_extensions_for_type<class_ResourceLoader_method_get_recognized_extensions_for_type>` **(** :ref:`String<class_String>` type **)**                       |
-+-------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                                           | :ref:`has<class_ResourceLoader_method_has>` **(** :ref:`String<class_String>` path **)**                                                                                     |
-+-------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                                           | :ref:`has_cached<class_ResourceLoader_method_has_cached>` **(** :ref:`String<class_String>` path **)**                                                                       |
-+-------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Resource<class_Resource>`                                   | :ref:`load<class_ResourceLoader_method_load>` **(** :ref:`String<class_String>` path, :ref:`String<class_String>` type_hint="", :ref:`bool<class_bool>` no_cache=false **)** |
-+-------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`ResourceInteractiveLoader<class_ResourceInteractiveLoader>` | :ref:`load_interactive<class_ResourceLoader_method_load_interactive>` **(** :ref:`String<class_String>` path, :ref:`String<class_String>` type_hint="" **)**                 |
-+-------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                              | :ref:`set_abort_on_missing_resources<class_ResourceLoader_method_set_abort_on_missing_resources>` **(** :ref:`bool<class_bool>` abort **)**                                  |
-+-------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
++-------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                                           | :ref:`exists<class_ResourceLoader_method_exists>` **(** :ref:`String<class_String>` path, :ref:`String<class_String>` type_hint="" **)**                                                             |
++-------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`PoolStringArray<class_PoolStringArray>`                     | :ref:`get_dependencies<class_ResourceLoader_method_get_dependencies>` **(** :ref:`String<class_String>` path **)**                                                                                   |
++-------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`PoolStringArray<class_PoolStringArray>`                     | :ref:`get_recognized_extensions_for_type<class_ResourceLoader_method_get_recognized_extensions_for_type>` **(** :ref:`String<class_String>` type **)**                                               |
++-------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                                           | :ref:`has<class_ResourceLoader_method_has>` **(** :ref:`String<class_String>` path **)**                                                                                                             |
++-------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                                           | :ref:`has_cached<class_ResourceLoader_method_has_cached>` **(** :ref:`String<class_String>` path **)**                                                                                               |
++-------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Resource<class_Resource>`                                   | :ref:`load<class_ResourceLoader_method_load>` **(** :ref:`String<class_String>` path, :ref:`String<class_String>` type_hint="", :ref:`bool<class_bool>` no_cache=false **)**                         |
++-------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`ResourceInteractiveLoader<class_ResourceInteractiveLoader>` | :ref:`load_interactive<class_ResourceLoader_method_load_interactive>` **(** :ref:`String<class_String>` path, :ref:`String<class_String>` type_hint="", :ref:`bool<class_bool>` no_cache=false **)** |
++-------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                              | :ref:`set_abort_on_missing_resources<class_ResourceLoader_method_set_abort_on_missing_resources>` **(** :ref:`bool<class_bool>` abort **)**                                                          |
++-------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 
 Method Descriptions
 -------------------
@@ -104,7 +104,7 @@ The registered :ref:`ResourceFormatLoader<class_ResourceFormatLoader>`\ s are qu
 
 An optional ``type_hint`` can be used to further specify the :ref:`Resource<class_Resource>` type that should be handled by the :ref:`ResourceFormatLoader<class_ResourceFormatLoader>`. Anything that inherits from :ref:`Resource<class_Resource>` can be used as a type hint, for example :ref:`Image<class_Image>`.
 
-If ``no_cache`` is ``true``, the resource cache will be bypassed and the resource will be loaded anew. Otherwise, the cached resource will be returned if it exists.
+If ``no_cache`` is ``true``, the resource cache will be bypassed, and the resource will be loaded anew. Otherwise, the cached resource will be returned if it exists.
 
 Returns an empty resource if no :ref:`ResourceFormatLoader<class_ResourceFormatLoader>` could handle the file.
 
@@ -114,12 +114,14 @@ GDScript has a simplified :ref:`@GDScript.load<class_@GDScript_method_load>` bui
 
 .. _class_ResourceLoader_method_load_interactive:
 
-- :ref:`ResourceInteractiveLoader<class_ResourceInteractiveLoader>` **load_interactive** **(** :ref:`String<class_String>` path, :ref:`String<class_String>` type_hint="" **)**
+- :ref:`ResourceInteractiveLoader<class_ResourceInteractiveLoader>` **load_interactive** **(** :ref:`String<class_String>` path, :ref:`String<class_String>` type_hint="", :ref:`bool<class_bool>` no_cache=false **)**
 
 Starts loading a resource interactively. The returned :ref:`ResourceInteractiveLoader<class_ResourceInteractiveLoader>` object allows to load with high granularity, calling its :ref:`ResourceInteractiveLoader.poll<class_ResourceInteractiveLoader_method_poll>` method successively to load chunks.
 
 An optional ``type_hint`` can be used to further specify the :ref:`Resource<class_Resource>` type that should be handled by the :ref:`ResourceFormatLoader<class_ResourceFormatLoader>`. Anything that inherits from :ref:`Resource<class_Resource>` can be used as a type hint, for example :ref:`Image<class_Image>`.
 
+If ``no_cache`` is ``true``, the resource cache will be bypassed, and the resource will be loaded anew. Otherwise, the cached resource will be returned if it exists.
+
 ----
 
 .. _class_ResourceLoader_method_set_abort_on_missing_resources:

+ 6 - 0
classes/class_scenetree.rst

@@ -357,6 +357,8 @@ The current scene.
 
 If ``true``, collision shapes will be visible when running the game from the editor for debugging purposes.
 
+\ **Note:** This property is not designed to be changed at run-time. Changing the value of :ref:`debug_collisions_hint<class_SceneTree_property_debug_collisions_hint>` while the project is running will not have the desired effect.
+
 ----
 
 .. _class_SceneTree_property_debug_navigation_hint:
@@ -373,6 +375,8 @@ If ``true``, collision shapes will be visible when running the game from the edi
 
 If ``true``, navigation polygons will be visible when running the game from the editor for debugging purposes.
 
+\ **Note:** This property is not designed to be changed at run-time. Changing the value of :ref:`debug_navigation_hint<class_SceneTree_property_debug_navigation_hint>` while the project is running will not have the desired effect.
+
 ----
 
 .. _class_SceneTree_property_edited_scene_root:
@@ -591,6 +595,8 @@ Returns :ref:`@GlobalScope.OK<class_@GlobalScope_constant_OK>` on success or :re
 
 \ **Note:** The scene change is deferred, which means that the new scene node is added on the next idle frame. You won't be able to access it immediately after the :ref:`change_scene_to<class_SceneTree_method_change_scene_to>` call.
 
+\ **Note:** Passing a value of ``null`` into the method will unload the current scene without loading a new one.
+
 ----
 
 .. _class_SceneTree_method_create_timer:

+ 3 - 1
classes/class_shape2d.rst

@@ -63,7 +63,9 @@ Property Descriptions
 | *Getter*  | get_custom_solver_bias()      |
 +-----------+-------------------------------+
 
-The shape's custom solver bias.
+The shape's custom solver bias. Defines how much bodies react to enforce contact separation when this shape is involved.
+
+When set to ``0.0``, the default value of ``0.3`` is used.
 
 Method Descriptions
 -------------------

+ 406 - 0
classes/class_shapecast.rst

@@ -0,0 +1,406 @@
+:github_url: hide
+
+.. DO NOT EDIT THIS FILE!!!
+.. Generated automatically from Godot engine sources.
+.. Generator: https://github.com/godotengine/godot/tree/3.5/doc/tools/make_rst.py.
+.. XML source: https://github.com/godotengine/godot/tree/3.5/doc/classes/ShapeCast.xml.
+
+.. _class_ShapeCast:
+
+ShapeCast
+=========
+
+**Inherits:** :ref:`Spatial<class_Spatial>` **<** :ref:`Node<class_Node>` **<** :ref:`Object<class_Object>`
+
+Node for physics collision sweep and immediate overlap queries. Similar to the :ref:`RayCast<class_RayCast>` node.
+
+Description
+-----------
+
+Shape casting allows to detect collision objects by sweeping the :ref:`shape<class_ShapeCast_property_shape>` along the cast direction determined by :ref:`target_position<class_ShapeCast_property_target_position>` (useful for things like beam weapons).
+
+Immediate collision overlaps can be done with the :ref:`target_position<class_ShapeCast_property_target_position>` set to ``Vector3(0, 0, 0)`` and by calling :ref:`force_shapecast_update<class_ShapeCast_method_force_shapecast_update>` within the same **physics_frame**. This also helps to overcome some limitations of :ref:`Area<class_Area>` when used as a continuous detection area, often requiring waiting a couple of frames before collision information is available to :ref:`Area<class_Area>` nodes, and when using the signals creates unnecessary complexity.
+
+The node can detect multiple collision objects, but it's usually used to detect the first collision.
+
+\ **Note:** Shape casting is more computationally expensive compared to ray casting.
+
+Properties
+----------
+
++-------------------------------+------------------------------------------------------------------------------------+-------------------------+
+| :ref:`bool<class_bool>`       | :ref:`collide_with_areas<class_ShapeCast_property_collide_with_areas>`             | ``false``               |
++-------------------------------+------------------------------------------------------------------------------------+-------------------------+
+| :ref:`bool<class_bool>`       | :ref:`collide_with_bodies<class_ShapeCast_property_collide_with_bodies>`           | ``true``                |
++-------------------------------+------------------------------------------------------------------------------------+-------------------------+
+| :ref:`int<class_int>`         | :ref:`collision_mask<class_ShapeCast_property_collision_mask>`                     | ``1``                   |
++-------------------------------+------------------------------------------------------------------------------------+-------------------------+
+| :ref:`Array<class_Array>`     | :ref:`collision_result<class_ShapeCast_property_collision_result>`                 |                         |
++-------------------------------+------------------------------------------------------------------------------------+-------------------------+
+| :ref:`Color<class_Color>`     | :ref:`debug_shape_custom_color<class_ShapeCast_property_debug_shape_custom_color>` | ``Color( 0, 0, 0, 1 )`` |
++-------------------------------+------------------------------------------------------------------------------------+-------------------------+
+| :ref:`bool<class_bool>`       | :ref:`enabled<class_ShapeCast_property_enabled>`                                   | ``true``                |
++-------------------------------+------------------------------------------------------------------------------------+-------------------------+
+| :ref:`bool<class_bool>`       | :ref:`exclude_parent<class_ShapeCast_property_exclude_parent>`                     | ``true``                |
++-------------------------------+------------------------------------------------------------------------------------+-------------------------+
+| :ref:`float<class_float>`     | :ref:`margin<class_ShapeCast_property_margin>`                                     | ``0.0``                 |
++-------------------------------+------------------------------------------------------------------------------------+-------------------------+
+| :ref:`int<class_int>`         | :ref:`max_results<class_ShapeCast_property_max_results>`                           | ``32``                  |
++-------------------------------+------------------------------------------------------------------------------------+-------------------------+
+| :ref:`Shape<class_Shape>`     | :ref:`shape<class_ShapeCast_property_shape>`                                       |                         |
++-------------------------------+------------------------------------------------------------------------------------+-------------------------+
+| :ref:`Vector3<class_Vector3>` | :ref:`target_position<class_ShapeCast_property_target_position>`                   | ``Vector3( 0, -1, 0 )`` |
++-------------------------------+------------------------------------------------------------------------------------+-------------------------+
+
+Methods
+-------
+
++-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                          | :ref:`add_exception<class_ShapeCast_method_add_exception>` **(** :ref:`Object<class_Object>` node **)**                                                        |
++-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                          | :ref:`add_exception_rid<class_ShapeCast_method_add_exception_rid>` **(** :ref:`RID<class_RID>` rid **)**                                                       |
++-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                          | :ref:`clear_exceptions<class_ShapeCast_method_clear_exceptions>` **(** **)**                                                                                   |
++-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                          | :ref:`force_shapecast_update<class_ShapeCast_method_force_shapecast_update>` **(** **)**                                                                       |
++-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`     | :ref:`get_closest_collision_safe_fraction<class_ShapeCast_method_get_closest_collision_safe_fraction>` **(** **)** |const|                                     |
++-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`     | :ref:`get_closest_collision_unsafe_fraction<class_ShapeCast_method_get_closest_collision_unsafe_fraction>` **(** **)** |const|                                 |
++-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Object<class_Object>`   | :ref:`get_collider<class_ShapeCast_method_get_collider>` **(** :ref:`int<class_int>` index **)** |const|                                                       |
++-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`         | :ref:`get_collider_shape<class_ShapeCast_method_get_collider_shape>` **(** :ref:`int<class_int>` index **)** |const|                                           |
++-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`         | :ref:`get_collision_count<class_ShapeCast_method_get_collision_count>` **(** **)** |const|                                                                     |
++-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`       | :ref:`get_collision_mask_value<class_ShapeCast_method_get_collision_mask_value>` **(** :ref:`int<class_int>` layer_number **)** |const|                        |
++-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Vector3<class_Vector3>` | :ref:`get_collision_normal<class_ShapeCast_method_get_collision_normal>` **(** :ref:`int<class_int>` index **)** |const|                                       |
++-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Vector3<class_Vector3>` | :ref:`get_collision_point<class_ShapeCast_method_get_collision_point>` **(** :ref:`int<class_int>` index **)** |const|                                         |
++-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`       | :ref:`is_colliding<class_ShapeCast_method_is_colliding>` **(** **)** |const|                                                                                   |
++-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                          | :ref:`remove_exception<class_ShapeCast_method_remove_exception>` **(** :ref:`Object<class_Object>` node **)**                                                  |
++-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                          | :ref:`remove_exception_rid<class_ShapeCast_method_remove_exception_rid>` **(** :ref:`RID<class_RID>` rid **)**                                                 |
++-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                          | :ref:`resource_changed<class_ShapeCast_method_resource_changed>` **(** :ref:`Resource<class_Resource>` resource **)**                                          |
++-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                          | :ref:`set_collision_mask_value<class_ShapeCast_method_set_collision_mask_value>` **(** :ref:`int<class_int>` layer_number, :ref:`bool<class_bool>` value **)** |
++-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+Property Descriptions
+---------------------
+
+.. _class_ShapeCast_property_collide_with_areas:
+
+- :ref:`bool<class_bool>` **collide_with_areas**
+
++-----------+---------------------------------+
+| *Default* | ``false``                       |
++-----------+---------------------------------+
+| *Setter*  | set_collide_with_areas(value)   |
++-----------+---------------------------------+
+| *Getter*  | is_collide_with_areas_enabled() |
++-----------+---------------------------------+
+
+If ``true``, collision with :ref:`Area<class_Area>`\ s will be reported.
+
+----
+
+.. _class_ShapeCast_property_collide_with_bodies:
+
+- :ref:`bool<class_bool>` **collide_with_bodies**
+
++-----------+----------------------------------+
+| *Default* | ``true``                         |
++-----------+----------------------------------+
+| *Setter*  | set_collide_with_bodies(value)   |
++-----------+----------------------------------+
+| *Getter*  | is_collide_with_bodies_enabled() |
++-----------+----------------------------------+
+
+If ``true``, collision with :ref:`PhysicsBody<class_PhysicsBody>`\ s will be reported.
+
+----
+
+.. _class_ShapeCast_property_collision_mask:
+
+- :ref:`int<class_int>` **collision_mask**
+
++-----------+---------------------------+
+| *Default* | ``1``                     |
++-----------+---------------------------+
+| *Setter*  | set_collision_mask(value) |
++-----------+---------------------------+
+| *Getter*  | get_collision_mask()      |
++-----------+---------------------------+
+
+The shape's collision mask. Only objects in at least one collision layer enabled in the mask will be detected. See `Collision layers and masks <../tutorials/physics/physics_introduction.html#collision-layers-and-masks>`__ in the documentation for more information.
+
+----
+
+.. _class_ShapeCast_property_collision_result:
+
+- :ref:`Array<class_Array>` **collision_result**
+
+Returns the complete collision information from the collision sweep. The data returned is the same as in the :ref:`PhysicsDirectSpaceState.get_rest_info<class_PhysicsDirectSpaceState_method_get_rest_info>` method.
+
+----
+
+.. _class_ShapeCast_property_debug_shape_custom_color:
+
+- :ref:`Color<class_Color>` **debug_shape_custom_color**
+
++-----------+-------------------------------------+
+| *Default* | ``Color( 0, 0, 0, 1 )``             |
++-----------+-------------------------------------+
+| *Setter*  | set_debug_shape_custom_color(value) |
++-----------+-------------------------------------+
+| *Getter*  | get_debug_shape_custom_color()      |
++-----------+-------------------------------------+
+
+The custom color to use to draw the shape in the editor and at run-time if **Visible Collision Shapes** is enabled in the **Debug** menu. This color will be highlighted at run-time if the ``ShapeCast`` is colliding with something.
+
+If set to ``Color(0.0, 0.0, 0.0)`` (by default), the color set in :ref:`ProjectSettings.debug/shapes/collision/shape_color<class_ProjectSettings_property_debug/shapes/collision/shape_color>` is used.
+
+----
+
+.. _class_ShapeCast_property_enabled:
+
+- :ref:`bool<class_bool>` **enabled**
+
++-----------+--------------------+
+| *Default* | ``true``           |
++-----------+--------------------+
+| *Setter*  | set_enabled(value) |
++-----------+--------------------+
+| *Getter*  | is_enabled()       |
++-----------+--------------------+
+
+If ``true``, collisions will be reported.
+
+----
+
+.. _class_ShapeCast_property_exclude_parent:
+
+- :ref:`bool<class_bool>` **exclude_parent**
+
++-----------+--------------------------------+
+| *Default* | ``true``                       |
++-----------+--------------------------------+
+| *Setter*  | set_exclude_parent_body(value) |
++-----------+--------------------------------+
+| *Getter*  | get_exclude_parent_body()      |
++-----------+--------------------------------+
+
+If ``true``, the parent node will be excluded from collision detection.
+
+----
+
+.. _class_ShapeCast_property_margin:
+
+- :ref:`float<class_float>` **margin**
+
++-----------+-------------------+
+| *Default* | ``0.0``           |
++-----------+-------------------+
+| *Setter*  | set_margin(value) |
++-----------+-------------------+
+| *Getter*  | get_margin()      |
++-----------+-------------------+
+
+The collision margin for the shape. A larger margin helps detecting collisions more consistently, at the cost of precision.
+
+----
+
+.. _class_ShapeCast_property_max_results:
+
+- :ref:`int<class_int>` **max_results**
+
++-----------+------------------------+
+| *Default* | ``32``                 |
++-----------+------------------------+
+| *Setter*  | set_max_results(value) |
++-----------+------------------------+
+| *Getter*  | get_max_results()      |
++-----------+------------------------+
+
+The number of intersections can be limited with this parameter, to reduce the processing time.
+
+----
+
+.. _class_ShapeCast_property_shape:
+
+- :ref:`Shape<class_Shape>` **shape**
+
++----------+------------------+
+| *Setter* | set_shape(value) |
++----------+------------------+
+| *Getter* | get_shape()      |
++----------+------------------+
+
+The :ref:`Shape<class_Shape>` to be used for collision queries.
+
+----
+
+.. _class_ShapeCast_property_target_position:
+
+- :ref:`Vector3<class_Vector3>` **target_position**
+
++-----------+----------------------------+
+| *Default* | ``Vector3( 0, -1, 0 )``    |
++-----------+----------------------------+
+| *Setter*  | set_target_position(value) |
++-----------+----------------------------+
+| *Getter*  | get_target_position()      |
++-----------+----------------------------+
+
+The shape's destination point, relative to this node's ``position``.
+
+Method Descriptions
+-------------------
+
+.. _class_ShapeCast_method_add_exception:
+
+- void **add_exception** **(** :ref:`Object<class_Object>` node **)**
+
+Adds a collision exception so the shape does not report collisions with the specified :ref:`CollisionObject<class_CollisionObject>` node.
+
+----
+
+.. _class_ShapeCast_method_add_exception_rid:
+
+- void **add_exception_rid** **(** :ref:`RID<class_RID>` rid **)**
+
+Adds a collision exception so the shape does not report collisions with the specified :ref:`RID<class_RID>`.
+
+----
+
+.. _class_ShapeCast_method_clear_exceptions:
+
+- void **clear_exceptions** **(** **)**
+
+Removes all collision exceptions for this ``ShapeCast``.
+
+----
+
+.. _class_ShapeCast_method_force_shapecast_update:
+
+- void **force_shapecast_update** **(** **)**
+
+Updates the collision information for the shape. Use this method to update the collision information immediately instead of waiting for the next ``_physics_process`` call, for example if the shape or its parent has changed state.
+
+\ **Note:** ``enabled`` is not required for this to work.
+
+----
+
+.. _class_ShapeCast_method_get_closest_collision_safe_fraction:
+
+- :ref:`float<class_float>` **get_closest_collision_safe_fraction** **(** **)** |const|
+
+The fraction from the ``ShapeCast``'s origin to its :ref:`target_position<class_ShapeCast_property_target_position>` (between 0 and 1) of how far the shape can move without triggering a collision.
+
+----
+
+.. _class_ShapeCast_method_get_closest_collision_unsafe_fraction:
+
+- :ref:`float<class_float>` **get_closest_collision_unsafe_fraction** **(** **)** |const|
+
+The fraction from the ``ShapeCast``'s origin to its :ref:`target_position<class_ShapeCast_property_target_position>` (between 0 and 1) of how far the shape must move to trigger a collision.
+
+----
+
+.. _class_ShapeCast_method_get_collider:
+
+- :ref:`Object<class_Object>` **get_collider** **(** :ref:`int<class_int>` index **)** |const|
+
+Returns the collided :ref:`Object<class_Object>` of one of the multiple collisions at ``index``, or ``null`` if no object is intersecting the shape (i.e. :ref:`is_colliding<class_ShapeCast_method_is_colliding>` returns ``false``).
+
+----
+
+.. _class_ShapeCast_method_get_collider_shape:
+
+- :ref:`int<class_int>` **get_collider_shape** **(** :ref:`int<class_int>` index **)** |const|
+
+Returns the shape ID of the colliding shape of one of the multiple collisions at ``index``, or ``0`` if no object is intersecting the shape (i.e. :ref:`is_colliding<class_ShapeCast_method_is_colliding>` returns ``false``).
+
+----
+
+.. _class_ShapeCast_method_get_collision_count:
+
+- :ref:`int<class_int>` **get_collision_count** **(** **)** |const|
+
+The number of collisions detected at the point of impact. Use this to iterate over multiple collisions as provided by :ref:`get_collider<class_ShapeCast_method_get_collider>`, :ref:`get_collider_shape<class_ShapeCast_method_get_collider_shape>`, :ref:`get_collision_point<class_ShapeCast_method_get_collision_point>`, and :ref:`get_collision_normal<class_ShapeCast_method_get_collision_normal>` methods.
+
+----
+
+.. _class_ShapeCast_method_get_collision_mask_value:
+
+- :ref:`bool<class_bool>` **get_collision_mask_value** **(** :ref:`int<class_int>` layer_number **)** |const|
+
+Returns whether or not the specified layer of the :ref:`collision_mask<class_ShapeCast_property_collision_mask>` is enabled, given a ``layer_number`` between 1 and 32.
+
+----
+
+.. _class_ShapeCast_method_get_collision_normal:
+
+- :ref:`Vector3<class_Vector3>` **get_collision_normal** **(** :ref:`int<class_int>` index **)** |const|
+
+Returns the normal of one of the multiple collisions at ``index`` of the intersecting object.
+
+----
+
+.. _class_ShapeCast_method_get_collision_point:
+
+- :ref:`Vector3<class_Vector3>` **get_collision_point** **(** :ref:`int<class_int>` index **)** |const|
+
+Returns the collision point of one of the multiple collisions at ``index`` where the shape intersects the colliding object.
+
+\ **Note:** this point is in the **global** coordinate system.
+
+----
+
+.. _class_ShapeCast_method_is_colliding:
+
+- :ref:`bool<class_bool>` **is_colliding** **(** **)** |const|
+
+Returns whether any object is intersecting with the shape's vector (considering the vector length).
+
+----
+
+.. _class_ShapeCast_method_remove_exception:
+
+- void **remove_exception** **(** :ref:`Object<class_Object>` node **)**
+
+Removes a collision exception so the shape does report collisions with the specified :ref:`CollisionObject<class_CollisionObject>` node.
+
+----
+
+.. _class_ShapeCast_method_remove_exception_rid:
+
+- void **remove_exception_rid** **(** :ref:`RID<class_RID>` rid **)**
+
+Removes a collision exception so the shape does report collisions with the specified :ref:`RID<class_RID>`.
+
+----
+
+.. _class_ShapeCast_method_resource_changed:
+
+- void **resource_changed** **(** :ref:`Resource<class_Resource>` resource **)**
+
+This method is used internally to update the debug gizmo in the editor. Any code placed in this function will be called whenever the :ref:`shape<class_ShapeCast_property_shape>` resource is modified.
+
+----
+
+.. _class_ShapeCast_method_set_collision_mask_value:
+
+- void **set_collision_mask_value** **(** :ref:`int<class_int>` layer_number, :ref:`bool<class_bool>` value **)**
+
+Based on ``value``, enables or disables the specified layer in the :ref:`collision_mask<class_ShapeCast_property_collision_mask>`, given a ``layer_number`` between 1 and 32.
+
+.. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
+.. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
+.. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`

+ 376 - 0
classes/class_shapecast2d.rst

@@ -0,0 +1,376 @@
+:github_url: hide
+
+.. DO NOT EDIT THIS FILE!!!
+.. Generated automatically from Godot engine sources.
+.. Generator: https://github.com/godotengine/godot/tree/3.5/doc/tools/make_rst.py.
+.. XML source: https://github.com/godotengine/godot/tree/3.5/doc/classes/ShapeCast2D.xml.
+
+.. _class_ShapeCast2D:
+
+ShapeCast2D
+===========
+
+**Inherits:** :ref:`Node2D<class_Node2D>` **<** :ref:`CanvasItem<class_CanvasItem>` **<** :ref:`Node<class_Node>` **<** :ref:`Object<class_Object>`
+
+Node for physics collision sweep and immediate overlap queries. Similar to the :ref:`RayCast2D<class_RayCast2D>` node.
+
+Description
+-----------
+
+Shape casting allows to detect collision objects by sweeping the :ref:`shape<class_ShapeCast2D_property_shape>` along the cast direction determined by :ref:`target_position<class_ShapeCast2D_property_target_position>` (useful for things like beam weapons).
+
+Immediate collision overlaps can be done with the :ref:`target_position<class_ShapeCast2D_property_target_position>` set to ``Vector2(0, 0)`` and by calling :ref:`force_shapecast_update<class_ShapeCast2D_method_force_shapecast_update>` within the same **physics_frame**. This also helps to overcome some limitations of :ref:`Area2D<class_Area2D>` when used as a continuous detection area, often requiring waiting a couple of frames before collision information is available to :ref:`Area2D<class_Area2D>` nodes, and when using the signals creates unnecessary complexity.
+
+The node can detect multiple collision objects, but it's usually used to detect the first collision.
+
+\ **Note:** Shape casting is more computationally expensive compared to ray casting.
+
+Properties
+----------
+
++-------------------------------+----------------------------------------------------------------------------+----------------------+
+| :ref:`bool<class_bool>`       | :ref:`collide_with_areas<class_ShapeCast2D_property_collide_with_areas>`   | ``false``            |
++-------------------------------+----------------------------------------------------------------------------+----------------------+
+| :ref:`bool<class_bool>`       | :ref:`collide_with_bodies<class_ShapeCast2D_property_collide_with_bodies>` | ``true``             |
++-------------------------------+----------------------------------------------------------------------------+----------------------+
+| :ref:`int<class_int>`         | :ref:`collision_mask<class_ShapeCast2D_property_collision_mask>`           | ``1``                |
++-------------------------------+----------------------------------------------------------------------------+----------------------+
+| :ref:`Array<class_Array>`     | :ref:`collision_result<class_ShapeCast2D_property_collision_result>`       |                      |
++-------------------------------+----------------------------------------------------------------------------+----------------------+
+| :ref:`bool<class_bool>`       | :ref:`enabled<class_ShapeCast2D_property_enabled>`                         | ``true``             |
++-------------------------------+----------------------------------------------------------------------------+----------------------+
+| :ref:`bool<class_bool>`       | :ref:`exclude_parent<class_ShapeCast2D_property_exclude_parent>`           | ``true``             |
++-------------------------------+----------------------------------------------------------------------------+----------------------+
+| :ref:`float<class_float>`     | :ref:`margin<class_ShapeCast2D_property_margin>`                           | ``0.0``              |
++-------------------------------+----------------------------------------------------------------------------+----------------------+
+| :ref:`int<class_int>`         | :ref:`max_results<class_ShapeCast2D_property_max_results>`                 | ``32``               |
++-------------------------------+----------------------------------------------------------------------------+----------------------+
+| :ref:`Shape2D<class_Shape2D>` | :ref:`shape<class_ShapeCast2D_property_shape>`                             |                      |
++-------------------------------+----------------------------------------------------------------------------+----------------------+
+| :ref:`Vector2<class_Vector2>` | :ref:`target_position<class_ShapeCast2D_property_target_position>`         | ``Vector2( 0, 50 )`` |
++-------------------------------+----------------------------------------------------------------------------+----------------------+
+
+Methods
+-------
+
++-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                          | :ref:`add_exception<class_ShapeCast2D_method_add_exception>` **(** :ref:`Object<class_Object>` node **)**                                                        |
++-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                          | :ref:`add_exception_rid<class_ShapeCast2D_method_add_exception_rid>` **(** :ref:`RID<class_RID>` rid **)**                                                       |
++-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                          | :ref:`clear_exceptions<class_ShapeCast2D_method_clear_exceptions>` **(** **)**                                                                                   |
++-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                          | :ref:`force_shapecast_update<class_ShapeCast2D_method_force_shapecast_update>` **(** **)**                                                                       |
++-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`     | :ref:`get_closest_collision_safe_fraction<class_ShapeCast2D_method_get_closest_collision_safe_fraction>` **(** **)** |const|                                     |
++-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`     | :ref:`get_closest_collision_unsafe_fraction<class_ShapeCast2D_method_get_closest_collision_unsafe_fraction>` **(** **)** |const|                                 |
++-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Object<class_Object>`   | :ref:`get_collider<class_ShapeCast2D_method_get_collider>` **(** :ref:`int<class_int>` index **)** |const|                                                       |
++-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`         | :ref:`get_collider_shape<class_ShapeCast2D_method_get_collider_shape>` **(** :ref:`int<class_int>` index **)** |const|                                           |
++-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`         | :ref:`get_collision_count<class_ShapeCast2D_method_get_collision_count>` **(** **)** |const|                                                                     |
++-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`       | :ref:`get_collision_mask_value<class_ShapeCast2D_method_get_collision_mask_value>` **(** :ref:`int<class_int>` layer_number **)** |const|                        |
++-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Vector2<class_Vector2>` | :ref:`get_collision_normal<class_ShapeCast2D_method_get_collision_normal>` **(** :ref:`int<class_int>` index **)** |const|                                       |
++-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Vector2<class_Vector2>` | :ref:`get_collision_point<class_ShapeCast2D_method_get_collision_point>` **(** :ref:`int<class_int>` index **)** |const|                                         |
++-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`       | :ref:`is_colliding<class_ShapeCast2D_method_is_colliding>` **(** **)** |const|                                                                                   |
++-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                          | :ref:`remove_exception<class_ShapeCast2D_method_remove_exception>` **(** :ref:`Object<class_Object>` node **)**                                                  |
++-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                          | :ref:`remove_exception_rid<class_ShapeCast2D_method_remove_exception_rid>` **(** :ref:`RID<class_RID>` rid **)**                                                 |
++-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                          | :ref:`set_collision_mask_value<class_ShapeCast2D_method_set_collision_mask_value>` **(** :ref:`int<class_int>` layer_number, :ref:`bool<class_bool>` value **)** |
++-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+Property Descriptions
+---------------------
+
+.. _class_ShapeCast2D_property_collide_with_areas:
+
+- :ref:`bool<class_bool>` **collide_with_areas**
+
++-----------+---------------------------------+
+| *Default* | ``false``                       |
++-----------+---------------------------------+
+| *Setter*  | set_collide_with_areas(value)   |
++-----------+---------------------------------+
+| *Getter*  | is_collide_with_areas_enabled() |
++-----------+---------------------------------+
+
+If ``true``, collision with :ref:`Area2D<class_Area2D>`\ s will be reported.
+
+----
+
+.. _class_ShapeCast2D_property_collide_with_bodies:
+
+- :ref:`bool<class_bool>` **collide_with_bodies**
+
++-----------+----------------------------------+
+| *Default* | ``true``                         |
++-----------+----------------------------------+
+| *Setter*  | set_collide_with_bodies(value)   |
++-----------+----------------------------------+
+| *Getter*  | is_collide_with_bodies_enabled() |
++-----------+----------------------------------+
+
+If ``true``, collision with :ref:`PhysicsBody2D<class_PhysicsBody2D>`\ s will be reported.
+
+----
+
+.. _class_ShapeCast2D_property_collision_mask:
+
+- :ref:`int<class_int>` **collision_mask**
+
++-----------+---------------------------+
+| *Default* | ``1``                     |
++-----------+---------------------------+
+| *Setter*  | set_collision_mask(value) |
++-----------+---------------------------+
+| *Getter*  | get_collision_mask()      |
++-----------+---------------------------+
+
+The shape's collision mask. Only objects in at least one collision layer enabled in the mask will be detected.
+
+----
+
+.. _class_ShapeCast2D_property_collision_result:
+
+- :ref:`Array<class_Array>` **collision_result**
+
+Returns the complete collision information from the collision sweep. The data returned is the same as in the :ref:`Physics2DDirectSpaceState.get_rest_info<class_Physics2DDirectSpaceState_method_get_rest_info>` method.
+
+----
+
+.. _class_ShapeCast2D_property_enabled:
+
+- :ref:`bool<class_bool>` **enabled**
+
++-----------+--------------------+
+| *Default* | ``true``           |
++-----------+--------------------+
+| *Setter*  | set_enabled(value) |
++-----------+--------------------+
+| *Getter*  | is_enabled()       |
++-----------+--------------------+
+
+If ``true``, collisions will be reported.
+
+----
+
+.. _class_ShapeCast2D_property_exclude_parent:
+
+- :ref:`bool<class_bool>` **exclude_parent**
+
++-----------+--------------------------------+
+| *Default* | ``true``                       |
++-----------+--------------------------------+
+| *Setter*  | set_exclude_parent_body(value) |
++-----------+--------------------------------+
+| *Getter*  | get_exclude_parent_body()      |
++-----------+--------------------------------+
+
+If ``true``, the parent node will be excluded from collision detection.
+
+----
+
+.. _class_ShapeCast2D_property_margin:
+
+- :ref:`float<class_float>` **margin**
+
++-----------+-------------------+
+| *Default* | ``0.0``           |
++-----------+-------------------+
+| *Setter*  | set_margin(value) |
++-----------+-------------------+
+| *Getter*  | get_margin()      |
++-----------+-------------------+
+
+The collision margin for the shape. A larger margin helps detecting collisions more consistently, at the cost of precision.
+
+----
+
+.. _class_ShapeCast2D_property_max_results:
+
+- :ref:`int<class_int>` **max_results**
+
++-----------+------------------------+
+| *Default* | ``32``                 |
++-----------+------------------------+
+| *Setter*  | set_max_results(value) |
++-----------+------------------------+
+| *Getter*  | get_max_results()      |
++-----------+------------------------+
+
+The number of intersections can be limited with this parameter, to reduce the processing time.
+
+----
+
+.. _class_ShapeCast2D_property_shape:
+
+- :ref:`Shape2D<class_Shape2D>` **shape**
+
++----------+------------------+
+| *Setter* | set_shape(value) |
++----------+------------------+
+| *Getter* | get_shape()      |
++----------+------------------+
+
+The :ref:`Shape2D<class_Shape2D>`-derived shape to be used for collision queries.
+
+----
+
+.. _class_ShapeCast2D_property_target_position:
+
+- :ref:`Vector2<class_Vector2>` **target_position**
+
++-----------+----------------------------+
+| *Default* | ``Vector2( 0, 50 )``       |
++-----------+----------------------------+
+| *Setter*  | set_target_position(value) |
++-----------+----------------------------+
+| *Getter*  | get_target_position()      |
++-----------+----------------------------+
+
+The shape's destination point, relative to this node's ``position``.
+
+Method Descriptions
+-------------------
+
+.. _class_ShapeCast2D_method_add_exception:
+
+- void **add_exception** **(** :ref:`Object<class_Object>` node **)**
+
+Adds a collision exception so the shape does not report collisions with the specified :ref:`CollisionObject2D<class_CollisionObject2D>` node.
+
+----
+
+.. _class_ShapeCast2D_method_add_exception_rid:
+
+- void **add_exception_rid** **(** :ref:`RID<class_RID>` rid **)**
+
+Adds a collision exception so the shape does not report collisions with the specified :ref:`RID<class_RID>`.
+
+----
+
+.. _class_ShapeCast2D_method_clear_exceptions:
+
+- void **clear_exceptions** **(** **)**
+
+Removes all collision exceptions for this shape.
+
+----
+
+.. _class_ShapeCast2D_method_force_shapecast_update:
+
+- void **force_shapecast_update** **(** **)**
+
+Updates the collision information for the shape. Use this method to update the collision information immediately instead of waiting for the next ``_physics_process`` call, for example if the shape or its parent has changed state.
+
+\ **Note:** ``enabled`` is not required for this to work.
+
+----
+
+.. _class_ShapeCast2D_method_get_closest_collision_safe_fraction:
+
+- :ref:`float<class_float>` **get_closest_collision_safe_fraction** **(** **)** |const|
+
+The fraction from the ``ShapeCast2D``'s origin to its :ref:`target_position<class_ShapeCast2D_property_target_position>` (between 0 and 1) of how far the shape can move without triggering a collision.
+
+----
+
+.. _class_ShapeCast2D_method_get_closest_collision_unsafe_fraction:
+
+- :ref:`float<class_float>` **get_closest_collision_unsafe_fraction** **(** **)** |const|
+
+The fraction from the ``ShapeCast2D``'s origin to its :ref:`target_position<class_ShapeCast2D_property_target_position>` (between 0 and 1) of how far the shape must move to trigger a collision.
+
+----
+
+.. _class_ShapeCast2D_method_get_collider:
+
+- :ref:`Object<class_Object>` **get_collider** **(** :ref:`int<class_int>` index **)** |const|
+
+Returns the collided :ref:`Object<class_Object>` of one of the multiple collisions at ``index``, or ``null`` if no object is intersecting the shape (i.e. :ref:`is_colliding<class_ShapeCast2D_method_is_colliding>` returns ``false``).
+
+----
+
+.. _class_ShapeCast2D_method_get_collider_shape:
+
+- :ref:`int<class_int>` **get_collider_shape** **(** :ref:`int<class_int>` index **)** |const|
+
+Returns the shape ID of the colliding shape of one of the multiple collisions at ``index``, or ``0`` if no object is intersecting the shape (i.e. :ref:`is_colliding<class_ShapeCast2D_method_is_colliding>` returns ``false``).
+
+----
+
+.. _class_ShapeCast2D_method_get_collision_count:
+
+- :ref:`int<class_int>` **get_collision_count** **(** **)** |const|
+
+The number of collisions detected at the point of impact. Use this to iterate over multiple collisions as provided by :ref:`get_collider<class_ShapeCast2D_method_get_collider>`, :ref:`get_collider_shape<class_ShapeCast2D_method_get_collider_shape>`, :ref:`get_collision_point<class_ShapeCast2D_method_get_collision_point>`, and :ref:`get_collision_normal<class_ShapeCast2D_method_get_collision_normal>` methods.
+
+----
+
+.. _class_ShapeCast2D_method_get_collision_mask_value:
+
+- :ref:`bool<class_bool>` **get_collision_mask_value** **(** :ref:`int<class_int>` layer_number **)** |const|
+
+Returns whether or not the specified layer of the :ref:`collision_mask<class_ShapeCast2D_property_collision_mask>` is enabled, given a ``layer_number`` between 1 and 32.
+
+----
+
+.. _class_ShapeCast2D_method_get_collision_normal:
+
+- :ref:`Vector2<class_Vector2>` **get_collision_normal** **(** :ref:`int<class_int>` index **)** |const|
+
+Returns the normal of one of the multiple collisions at ``index`` of the intersecting object.
+
+----
+
+.. _class_ShapeCast2D_method_get_collision_point:
+
+- :ref:`Vector2<class_Vector2>` **get_collision_point** **(** :ref:`int<class_int>` index **)** |const|
+
+Returns the collision point of one of the multiple collisions at ``index`` where the shape intersects the colliding object.
+
+\ **Note:** this point is in the **global** coordinate system.
+
+----
+
+.. _class_ShapeCast2D_method_is_colliding:
+
+- :ref:`bool<class_bool>` **is_colliding** **(** **)** |const|
+
+Returns whether any object is intersecting with the shape's vector (considering the vector length).
+
+----
+
+.. _class_ShapeCast2D_method_remove_exception:
+
+- void **remove_exception** **(** :ref:`Object<class_Object>` node **)**
+
+Removes a collision exception so the shape does report collisions with the specified :ref:`CollisionObject2D<class_CollisionObject2D>` node.
+
+----
+
+.. _class_ShapeCast2D_method_remove_exception_rid:
+
+- void **remove_exception_rid** **(** :ref:`RID<class_RID>` rid **)**
+
+Removes a collision exception so the shape does report collisions with the specified :ref:`RID<class_RID>`.
+
+----
+
+.. _class_ShapeCast2D_method_set_collision_mask_value:
+
+- void **set_collision_mask_value** **(** :ref:`int<class_int>` layer_number, :ref:`bool<class_bool>` value **)**
+
+Based on ``value``, enables or disables the specified layer in the :ref:`collision_mask<class_ShapeCast2D_property_collision_mask>`, given a ``layer_number`` between 1 and 32.
+
+.. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
+.. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
+.. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`

+ 1 - 1
classes/class_spatial.rst

@@ -12,7 +12,7 @@ Spatial
 
 **Inherits:** :ref:`Node<class_Node>` **<** :ref:`Object<class_Object>`
 
-**Inherited By:** :ref:`ARVRAnchor<class_ARVRAnchor>`, :ref:`ARVRController<class_ARVRController>`, :ref:`ARVROrigin<class_ARVROrigin>`, :ref:`AudioStreamPlayer3D<class_AudioStreamPlayer3D>`, :ref:`BoneAttachment<class_BoneAttachment>`, :ref:`Camera<class_Camera>`, :ref:`CollisionObject<class_CollisionObject>`, :ref:`CollisionPolygon<class_CollisionPolygon>`, :ref:`CollisionShape<class_CollisionShape>`, :ref:`CullInstance<class_CullInstance>`, :ref:`GridMap<class_GridMap>`, :ref:`Joint<class_Joint>`, :ref:`Listener<class_Listener>`, :ref:`Navigation<class_Navigation>`, :ref:`NavigationMeshInstance<class_NavigationMeshInstance>`, :ref:`Occluder<class_Occluder>`, :ref:`Path<class_Path>`, :ref:`PathFollow<class_PathFollow>`, :ref:`Portal<class_Portal>`, :ref:`Position3D<class_Position3D>`, :ref:`ProximityGroup<class_ProximityGroup>`, :ref:`RayCast<class_RayCast>`, :ref:`RemoteTransform<class_RemoteTransform>`, :ref:`Room<class_Room>`, :ref:`RoomGroup<class_RoomGroup>`, :ref:`RoomManager<class_RoomManager>`, :ref:`Skeleton<class_Skeleton>`, :ref:`SpringArm<class_SpringArm>`, :ref:`VehicleWheel<class_VehicleWheel>`
+**Inherited By:** :ref:`ARVRAnchor<class_ARVRAnchor>`, :ref:`ARVRController<class_ARVRController>`, :ref:`ARVROrigin<class_ARVROrigin>`, :ref:`AudioStreamPlayer3D<class_AudioStreamPlayer3D>`, :ref:`BoneAttachment<class_BoneAttachment>`, :ref:`Camera<class_Camera>`, :ref:`CollisionObject<class_CollisionObject>`, :ref:`CollisionPolygon<class_CollisionPolygon>`, :ref:`CollisionShape<class_CollisionShape>`, :ref:`CullInstance<class_CullInstance>`, :ref:`GridMap<class_GridMap>`, :ref:`Joint<class_Joint>`, :ref:`Listener<class_Listener>`, :ref:`Navigation<class_Navigation>`, :ref:`NavigationMeshInstance<class_NavigationMeshInstance>`, :ref:`Occluder<class_Occluder>`, :ref:`Path<class_Path>`, :ref:`PathFollow<class_PathFollow>`, :ref:`Portal<class_Portal>`, :ref:`Position3D<class_Position3D>`, :ref:`ProximityGroup<class_ProximityGroup>`, :ref:`RayCast<class_RayCast>`, :ref:`RemoteTransform<class_RemoteTransform>`, :ref:`Room<class_Room>`, :ref:`RoomGroup<class_RoomGroup>`, :ref:`RoomManager<class_RoomManager>`, :ref:`ShapeCast<class_ShapeCast>`, :ref:`Skeleton<class_Skeleton>`, :ref:`SpringArm<class_SpringArm>`, :ref:`VehicleWheel<class_VehicleWheel>`
 
 Most basic 3D game object, parent of all 3D-related nodes.
 

+ 17 - 17
classes/class_spatialmaterial.rst

@@ -220,7 +220,7 @@ Properties
 +----------------------------------------------------------------+------------------------------------------------------------------------------------------------------+-------------------------+
 | :ref:`bool<class_bool>`                                        | :ref:`uv1_triplanar<class_SpatialMaterial_property_uv1_triplanar>`                                   | ``false``               |
 +----------------------------------------------------------------+------------------------------------------------------------------------------------------------------+-------------------------+
-| :ref:`float<class_float>`                                      | :ref:`uv1_triplanar_sharpness<class_SpatialMaterial_property_uv1_triplanar_sharpness>`               | ``1.0``                 |
+| :ref:`float<class_float>`                                      | :ref:`uv1_triplanar_sharpness<class_SpatialMaterial_property_uv1_triplanar_sharpness>`               |                         |
 +----------------------------------------------------------------+------------------------------------------------------------------------------------------------------+-------------------------+
 | :ref:`Vector3<class_Vector3>`                                  | :ref:`uv2_offset<class_SpatialMaterial_property_uv2_offset>`                                         | ``Vector3( 0, 0, 0 )``  |
 +----------------------------------------------------------------+------------------------------------------------------------------------------------------------------+-------------------------+
@@ -228,7 +228,7 @@ Properties
 +----------------------------------------------------------------+------------------------------------------------------------------------------------------------------+-------------------------+
 | :ref:`bool<class_bool>`                                        | :ref:`uv2_triplanar<class_SpatialMaterial_property_uv2_triplanar>`                                   | ``false``               |
 +----------------------------------------------------------------+------------------------------------------------------------------------------------------------------+-------------------------+
-| :ref:`float<class_float>`                                      | :ref:`uv2_triplanar_sharpness<class_SpatialMaterial_property_uv2_triplanar_sharpness>`               | ``1.0``                 |
+| :ref:`float<class_float>`                                      | :ref:`uv2_triplanar_sharpness<class_SpatialMaterial_property_uv2_triplanar_sharpness>`               |                         |
 +----------------------------------------------------------------+------------------------------------------------------------------------------------------------------+-------------------------+
 | :ref:`bool<class_bool>`                                        | :ref:`vertex_color_is_srgb<class_SpatialMaterial_property_vertex_color_is_srgb>`                     | ``false``               |
 +----------------------------------------------------------------+------------------------------------------------------------------------------------------------------+-------------------------+
@@ -768,7 +768,7 @@ If ``true``, anisotropy is enabled. Anisotropy changes the shape of the specular
 
 \ **Note:** Mesh tangents are needed for anisotropy to work. If the mesh does not contain tangents, the anisotropy effect will appear broken.
 
-\ **Note:** Material anisotropy should not to be confused with anisotropic texture filtering. Anisotropic texture filtering can be enabled by selecting a texture in the FileSystem dock, going to the Import dock, checking the **Anisotropic** checkbox then clicking **Reimport**.
+\ **Note:** Material anisotropy should not to be confused with anisotropic texture filtering. Anisotropic texture filtering can be enabled by selecting a texture in the FileSystem dock, going to the Import dock, checking the **Anisotropic** checkbox then clicking **Reimport**. The anisotropic filtering level can be changed by adjusting :ref:`ProjectSettings.rendering/quality/filters/anisotropic_filter_level<class_ProjectSettings_property_rendering/quality/filters/anisotropic_filter_level>`.
 
 ----
 
@@ -2188,16 +2188,16 @@ If ``true``, instead of using ``UV`` textures will use a triplanar texture looku
 
 - :ref:`float<class_float>` **uv1_triplanar_sharpness**
 
-+-----------+------------------------------------------+
-| *Default* | ``1.0``                                  |
-+-----------+------------------------------------------+
-| *Setter*  | set_uv1_triplanar_blend_sharpness(value) |
-+-----------+------------------------------------------+
-| *Getter*  | get_uv1_triplanar_blend_sharpness()      |
-+-----------+------------------------------------------+
++----------+------------------------------------------+
+| *Setter* | set_uv1_triplanar_blend_sharpness(value) |
++----------+------------------------------------------+
+| *Getter* | get_uv1_triplanar_blend_sharpness()      |
++----------+------------------------------------------+
 
 A lower number blends the texture more softly while a higher number blends the texture more sharply.
 
+\ **Note:** :ref:`uv1_triplanar_sharpness<class_SpatialMaterial_property_uv1_triplanar_sharpness>` is clamped between ``0.0`` and ``150.0`` (inclusive) as values outside that range can look broken depending on the mesh.
+
 ----
 
 .. _class_SpatialMaterial_property_uv2_offset:
@@ -2252,16 +2252,16 @@ If ``true``, instead of using ``UV2`` textures will use a triplanar texture look
 
 - :ref:`float<class_float>` **uv2_triplanar_sharpness**
 
-+-----------+------------------------------------------+
-| *Default* | ``1.0``                                  |
-+-----------+------------------------------------------+
-| *Setter*  | set_uv2_triplanar_blend_sharpness(value) |
-+-----------+------------------------------------------+
-| *Getter*  | get_uv2_triplanar_blend_sharpness()      |
-+-----------+------------------------------------------+
++----------+------------------------------------------+
+| *Setter* | set_uv2_triplanar_blend_sharpness(value) |
++----------+------------------------------------------+
+| *Getter* | get_uv2_triplanar_blend_sharpness()      |
++----------+------------------------------------------+
 
 A lower number blends the texture more softly while a higher number blends the texture more sharply.
 
+\ **Note:** :ref:`uv2_triplanar_sharpness<class_SpatialMaterial_property_uv2_triplanar_sharpness>` is clamped between ``0.0`` and ``150.0`` (inclusive) as values outside that range can look broken depending on the mesh.
+
 ----
 
 .. _class_SpatialMaterial_property_vertex_color_is_srgb:

+ 1 - 1
classes/class_sprite3d.rst

@@ -140,7 +140,7 @@ The region of the atlas texture to display. :ref:`region_enabled<class_Sprite3D_
 | *Getter* | get_texture()      |
 +----------+--------------------+
 
-:ref:`Texture<class_Texture>` object to draw. If :ref:`GeometryInstance.material_override<class_GeometryInstance_property_material_override>` is used, this will be overridden.
+:ref:`Texture<class_Texture>` object to draw. If :ref:`GeometryInstance.material_override<class_GeometryInstance_property_material_override>` is used, this will be overridden. The size information is still used.
 
 ----
 

+ 6 - 0
classes/class_string.rst

@@ -1029,6 +1029,8 @@ Splits the string by a ``delimiter`` string and returns an array of the substrin
 
 The splits in the returned array are sorted in the same order as the original string, from left to right.
 
+If ``allow_empty`` is ``true``, and there are two adjacent delimiters in the string, it will add an empty string to the array of substrings at this position.
+
 If ``maxsplit`` is specified, it defines the number of splits to do from the right up to ``maxsplit``. The default value of 0 means that all items are split, thus giving the same result as :ref:`split<class_String_method_split>`.
 
 Example:
@@ -1114,6 +1116,8 @@ Returns a simplified canonical path.
 
 Splits the string by a ``delimiter`` string and returns an array of the substrings. The ``delimiter`` can be of any length.
 
+If ``allow_empty`` is ``true``, and there are two adjacent delimiters in the string, it will add an empty string to the array of substrings at this position.
+
 If ``maxsplit`` is specified, it defines the number of splits to do from the left up to ``maxsplit``. The default value of ``0`` means that all items are split.
 
 If you need only one element from the array at a specific index, :ref:`get_slice<class_String_method_get_slice>` is a more performant option.
@@ -1140,6 +1144,8 @@ Splits the string in floats by using a delimiter string and returns an array of
 
 For example, ``"1,2.5,3"`` will return ``[1,2.5,3]`` if split by ``","``.
 
+If ``allow_empty`` is ``true``, and there are two adjacent delimiters in the string, it will add an empty string to the array of substrings at this position.
+
 ----
 
 .. _class_String_method_strip_edges:

+ 60 - 40
classes/class_tabs.rst

@@ -37,45 +37,49 @@ Properties
 Methods
 -------
 
-+-------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
-| void                          | :ref:`add_tab<class_Tabs_method_add_tab>` **(** :ref:`String<class_String>` title="", :ref:`Texture<class_Texture>` icon=null **)**     |
-+-------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
-| void                          | :ref:`ensure_tab_visible<class_Tabs_method_ensure_tab_visible>` **(** :ref:`int<class_int>` idx **)**                                   |
-+-------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`       | :ref:`get_offset_buttons_visible<class_Tabs_method_get_offset_buttons_visible>` **(** **)** |const|                                     |
-+-------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`         | :ref:`get_previous_tab<class_Tabs_method_get_previous_tab>` **(** **)** |const|                                                         |
-+-------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`       | :ref:`get_select_with_rmb<class_Tabs_method_get_select_with_rmb>` **(** **)** |const|                                                   |
-+-------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`         | :ref:`get_tab_count<class_Tabs_method_get_tab_count>` **(** **)** |const|                                                               |
-+-------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`       | :ref:`get_tab_disabled<class_Tabs_method_get_tab_disabled>` **(** :ref:`int<class_int>` tab_idx **)** |const|                           |
-+-------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Texture<class_Texture>` | :ref:`get_tab_icon<class_Tabs_method_get_tab_icon>` **(** :ref:`int<class_int>` tab_idx **)** |const|                                   |
-+-------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`         | :ref:`get_tab_offset<class_Tabs_method_get_tab_offset>` **(** **)** |const|                                                             |
-+-------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Rect2<class_Rect2>`     | :ref:`get_tab_rect<class_Tabs_method_get_tab_rect>` **(** :ref:`int<class_int>` tab_idx **)** |const|                                   |
-+-------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_String>`   | :ref:`get_tab_title<class_Tabs_method_get_tab_title>` **(** :ref:`int<class_int>` tab_idx **)** |const|                                 |
-+-------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`         | :ref:`get_tabs_rearrange_group<class_Tabs_method_get_tabs_rearrange_group>` **(** **)** |const|                                         |
-+-------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
-| void                          | :ref:`move_tab<class_Tabs_method_move_tab>` **(** :ref:`int<class_int>` from, :ref:`int<class_int>` to **)**                            |
-+-------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
-| void                          | :ref:`remove_tab<class_Tabs_method_remove_tab>` **(** :ref:`int<class_int>` tab_idx **)**                                               |
-+-------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
-| void                          | :ref:`set_select_with_rmb<class_Tabs_method_set_select_with_rmb>` **(** :ref:`bool<class_bool>` enabled **)**                           |
-+-------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
-| void                          | :ref:`set_tab_disabled<class_Tabs_method_set_tab_disabled>` **(** :ref:`int<class_int>` tab_idx, :ref:`bool<class_bool>` disabled **)** |
-+-------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
-| void                          | :ref:`set_tab_icon<class_Tabs_method_set_tab_icon>` **(** :ref:`int<class_int>` tab_idx, :ref:`Texture<class_Texture>` icon **)**       |
-+-------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
-| void                          | :ref:`set_tab_title<class_Tabs_method_set_tab_title>` **(** :ref:`int<class_int>` tab_idx, :ref:`String<class_String>` title **)**      |
-+-------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
-| void                          | :ref:`set_tabs_rearrange_group<class_Tabs_method_set_tabs_rearrange_group>` **(** :ref:`int<class_int>` group_id **)**                  |
-+-------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
++-------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                          | :ref:`add_tab<class_Tabs_method_add_tab>` **(** :ref:`String<class_String>` title="", :ref:`Texture<class_Texture>` icon=null **)**             |
++-------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                          | :ref:`ensure_tab_visible<class_Tabs_method_ensure_tab_visible>` **(** :ref:`int<class_int>` idx **)**                                           |
++-------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`       | :ref:`get_offset_buttons_visible<class_Tabs_method_get_offset_buttons_visible>` **(** **)** |const|                                             |
++-------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`         | :ref:`get_previous_tab<class_Tabs_method_get_previous_tab>` **(** **)** |const|                                                                 |
++-------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`       | :ref:`get_select_with_rmb<class_Tabs_method_get_select_with_rmb>` **(** **)** |const|                                                           |
++-------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Texture<class_Texture>` | :ref:`get_tab_button_icon<class_Tabs_method_get_tab_button_icon>` **(** :ref:`int<class_int>` tab_idx **)** |const|                             |
++-------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`         | :ref:`get_tab_count<class_Tabs_method_get_tab_count>` **(** **)** |const|                                                                       |
++-------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`       | :ref:`get_tab_disabled<class_Tabs_method_get_tab_disabled>` **(** :ref:`int<class_int>` tab_idx **)** |const|                                   |
++-------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Texture<class_Texture>` | :ref:`get_tab_icon<class_Tabs_method_get_tab_icon>` **(** :ref:`int<class_int>` tab_idx **)** |const|                                           |
++-------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`         | :ref:`get_tab_offset<class_Tabs_method_get_tab_offset>` **(** **)** |const|                                                                     |
++-------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Rect2<class_Rect2>`     | :ref:`get_tab_rect<class_Tabs_method_get_tab_rect>` **(** :ref:`int<class_int>` tab_idx **)** |const|                                           |
++-------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`   | :ref:`get_tab_title<class_Tabs_method_get_tab_title>` **(** :ref:`int<class_int>` tab_idx **)** |const|                                         |
++-------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`         | :ref:`get_tabs_rearrange_group<class_Tabs_method_get_tabs_rearrange_group>` **(** **)** |const|                                                 |
++-------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                          | :ref:`move_tab<class_Tabs_method_move_tab>` **(** :ref:`int<class_int>` from, :ref:`int<class_int>` to **)**                                    |
++-------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                          | :ref:`remove_tab<class_Tabs_method_remove_tab>` **(** :ref:`int<class_int>` tab_idx **)**                                                       |
++-------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                          | :ref:`set_select_with_rmb<class_Tabs_method_set_select_with_rmb>` **(** :ref:`bool<class_bool>` enabled **)**                                   |
++-------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                          | :ref:`set_tab_button_icon<class_Tabs_method_set_tab_button_icon>` **(** :ref:`int<class_int>` tab_idx, :ref:`Texture<class_Texture>` icon **)** |
++-------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                          | :ref:`set_tab_disabled<class_Tabs_method_set_tab_disabled>` **(** :ref:`int<class_int>` tab_idx, :ref:`bool<class_bool>` disabled **)**         |
++-------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                          | :ref:`set_tab_icon<class_Tabs_method_set_tab_icon>` **(** :ref:`int<class_int>` tab_idx, :ref:`Texture<class_Texture>` icon **)**               |
++-------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                          | :ref:`set_tab_title<class_Tabs_method_set_tab_title>` **(** :ref:`int<class_int>` tab_idx, :ref:`String<class_String>` title **)**              |
++-------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                          | :ref:`set_tabs_rearrange_group<class_Tabs_method_set_tabs_rearrange_group>` **(** :ref:`int<class_int>` group_id **)**                          |
++-------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------+
 
 Theme Properties
 ----------------
@@ -133,7 +137,7 @@ Emitted when the active tab is rearranged via mouse drag. See :ref:`drag_to_rear
 
 - **right_button_pressed** **(** :ref:`int<class_int>` tab **)**
 
-Emitted when a tab is right-clicked.
+Emitted when a tab's right button is pressed. See :ref:`set_tab_button_icon<class_Tabs_method_set_tab_button_icon>`.
 
 ----
 
@@ -336,6 +340,14 @@ Returns ``true`` if select with right mouse button is enabled.
 
 ----
 
+.. _class_Tabs_method_get_tab_button_icon:
+
+- :ref:`Texture<class_Texture>` **get_tab_button_icon** **(** :ref:`int<class_int>` tab_idx **)** |const|
+
+Returns the button icon from the tab at index ``tab_idx``.
+
+----
+
 .. _class_Tabs_method_get_tab_count:
 
 - :ref:`int<class_int>` **get_tab_count** **(** **)** |const|
@@ -416,6 +428,14 @@ If ``true``, enables selecting a tab with the right mouse button.
 
 ----
 
+.. _class_Tabs_method_set_tab_button_icon:
+
+- void **set_tab_button_icon** **(** :ref:`int<class_int>` tab_idx, :ref:`Texture<class_Texture>` icon **)**
+
+Sets the button icon from the tab at index ``tab_idx``.
+
+----
+
 .. _class_Tabs_method_set_tab_disabled:
 
 - void **set_tab_disabled** **(** :ref:`int<class_int>` tab_idx, :ref:`bool<class_bool>` disabled **)**

+ 102 - 0
classes/class_torusmesh.rst

@@ -0,0 +1,102 @@
+:github_url: hide
+
+.. DO NOT EDIT THIS FILE!!!
+.. Generated automatically from Godot engine sources.
+.. Generator: https://github.com/godotengine/godot/tree/3.5/doc/tools/make_rst.py.
+.. XML source: https://github.com/godotengine/godot/tree/3.5/doc/classes/TorusMesh.xml.
+
+.. _class_TorusMesh:
+
+TorusMesh
+=========
+
+**Inherits:** :ref:`PrimitiveMesh<class_PrimitiveMesh>` **<** :ref:`Mesh<class_Mesh>` **<** :ref:`Resource<class_Resource>` **<** :ref:`Reference<class_Reference>` **<** :ref:`Object<class_Object>`
+
+Class representing a torus :ref:`PrimitiveMesh<class_PrimitiveMesh>`.
+
+Description
+-----------
+
+Class representing a torus :ref:`PrimitiveMesh<class_PrimitiveMesh>`.
+
+Properties
+----------
+
++---------------------------+--------------------------------------------------------------+---------+
+| :ref:`float<class_float>` | :ref:`inner_radius<class_TorusMesh_property_inner_radius>`   | ``0.5`` |
++---------------------------+--------------------------------------------------------------+---------+
+| :ref:`float<class_float>` | :ref:`outer_radius<class_TorusMesh_property_outer_radius>`   | ``1.0`` |
++---------------------------+--------------------------------------------------------------+---------+
+| :ref:`int<class_int>`     | :ref:`ring_segments<class_TorusMesh_property_ring_segments>` | ``32``  |
++---------------------------+--------------------------------------------------------------+---------+
+| :ref:`int<class_int>`     | :ref:`rings<class_TorusMesh_property_rings>`                 | ``64``  |
++---------------------------+--------------------------------------------------------------+---------+
+
+Property Descriptions
+---------------------
+
+.. _class_TorusMesh_property_inner_radius:
+
+- :ref:`float<class_float>` **inner_radius**
+
++-----------+-------------------------+
+| *Default* | ``0.5``                 |
++-----------+-------------------------+
+| *Setter*  | set_inner_radius(value) |
++-----------+-------------------------+
+| *Getter*  | get_inner_radius()      |
++-----------+-------------------------+
+
+The inner radius of the torus.
+
+----
+
+.. _class_TorusMesh_property_outer_radius:
+
+- :ref:`float<class_float>` **outer_radius**
+
++-----------+-------------------------+
+| *Default* | ``1.0``                 |
++-----------+-------------------------+
+| *Setter*  | set_outer_radius(value) |
++-----------+-------------------------+
+| *Getter*  | get_outer_radius()      |
++-----------+-------------------------+
+
+The outer radius of the torus.
+
+----
+
+.. _class_TorusMesh_property_ring_segments:
+
+- :ref:`int<class_int>` **ring_segments**
+
++-----------+--------------------------+
+| *Default* | ``32``                   |
++-----------+--------------------------+
+| *Setter*  | set_ring_segments(value) |
++-----------+--------------------------+
+| *Getter*  | get_ring_segments()      |
++-----------+--------------------------+
+
+The number of edges each ring of the torus is constructed of.
+
+----
+
+.. _class_TorusMesh_property_rings:
+
+- :ref:`int<class_int>` **rings**
+
++-----------+------------------+
+| *Default* | ``64``           |
++-----------+------------------+
+| *Setter*  | set_rings(value) |
++-----------+------------------+
+| *Getter*  | get_rings()      |
++-----------+------------------+
+
+The number of slices the torus is constructed of.
+
+.. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
+.. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
+.. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`

+ 97 - 17
classes/class_translationserver.rst

@@ -29,23 +29,39 @@ Tutorials
 Methods
 -------
 
-+-----------------------------+--------------------------------------------------------------------------------------------------------------------------------------------+
-| void                        | :ref:`add_translation<class_TranslationServer_method_add_translation>` **(** :ref:`Translation<class_Translation>` translation **)**       |
-+-----------------------------+--------------------------------------------------------------------------------------------------------------------------------------------+
-| void                        | :ref:`clear<class_TranslationServer_method_clear>` **(** **)**                                                                             |
-+-----------------------------+--------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Array<class_Array>`   | :ref:`get_loaded_locales<class_TranslationServer_method_get_loaded_locales>` **(** **)** |const|                                           |
-+-----------------------------+--------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_String>` | :ref:`get_locale<class_TranslationServer_method_get_locale>` **(** **)** |const|                                                           |
-+-----------------------------+--------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_String>` | :ref:`get_locale_name<class_TranslationServer_method_get_locale_name>` **(** :ref:`String<class_String>` locale **)** |const|              |
-+-----------------------------+--------------------------------------------------------------------------------------------------------------------------------------------+
-| void                        | :ref:`remove_translation<class_TranslationServer_method_remove_translation>` **(** :ref:`Translation<class_Translation>` translation **)** |
-+-----------------------------+--------------------------------------------------------------------------------------------------------------------------------------------+
-| void                        | :ref:`set_locale<class_TranslationServer_method_set_locale>` **(** :ref:`String<class_String>` locale **)**                                |
-+-----------------------------+--------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_String>` | :ref:`translate<class_TranslationServer_method_translate>` **(** :ref:`String<class_String>` message **)** |const|                         |
-+-----------------------------+--------------------------------------------------------------------------------------------------------------------------------------------+
++-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                          | :ref:`add_translation<class_TranslationServer_method_add_translation>` **(** :ref:`Translation<class_Translation>` translation **)**                                  |
++-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                          | :ref:`clear<class_TranslationServer_method_clear>` **(** **)**                                                                                                        |
++-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                         | :ref:`compare_locales<class_TranslationServer_method_compare_locales>` **(** :ref:`String<class_String>` locale_a, :ref:`String<class_String>` locale_b **)** |const| |
++-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`PoolStringArray<class_PoolStringArray>` | :ref:`get_all_countries<class_TranslationServer_method_get_all_countries>` **(** **)** |const|                                                                        |
++-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`PoolStringArray<class_PoolStringArray>` | :ref:`get_all_languages<class_TranslationServer_method_get_all_languages>` **(** **)** |const|                                                                        |
++-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`PoolStringArray<class_PoolStringArray>` | :ref:`get_all_scripts<class_TranslationServer_method_get_all_scripts>` **(** **)** |const|                                                                            |
++-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`                   | :ref:`get_country_name<class_TranslationServer_method_get_country_name>` **(** :ref:`String<class_String>` country **)** |const|                                      |
++-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`                   | :ref:`get_language_name<class_TranslationServer_method_get_language_name>` **(** :ref:`String<class_String>` language **)** |const|                                   |
++-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Array<class_Array>`                     | :ref:`get_loaded_locales<class_TranslationServer_method_get_loaded_locales>` **(** **)** |const|                                                                      |
++-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`                   | :ref:`get_locale<class_TranslationServer_method_get_locale>` **(** **)** |const|                                                                                      |
++-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`                   | :ref:`get_locale_name<class_TranslationServer_method_get_locale_name>` **(** :ref:`String<class_String>` locale **)** |const|                                         |
++-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`                   | :ref:`get_script_name<class_TranslationServer_method_get_script_name>` **(** :ref:`String<class_String>` script **)** |const|                                         |
++-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                          | :ref:`remove_translation<class_TranslationServer_method_remove_translation>` **(** :ref:`Translation<class_Translation>` translation **)**                            |
++-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                          | :ref:`set_locale<class_TranslationServer_method_set_locale>` **(** :ref:`String<class_String>` locale **)**                                                           |
++-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`                   | :ref:`standardize_locale<class_TranslationServer_method_standardize_locale>` **(** :ref:`String<class_String>` locale **)** |const|                                   |
++-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`                   | :ref:`translate<class_TranslationServer_method_translate>` **(** :ref:`String<class_String>` message **)** |const|                                                    |
++-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 
 Method Descriptions
 -------------------
@@ -66,6 +82,54 @@ Clears the server from all translations.
 
 ----
 
+.. _class_TranslationServer_method_compare_locales:
+
+- :ref:`int<class_int>` **compare_locales** **(** :ref:`String<class_String>` locale_a, :ref:`String<class_String>` locale_b **)** |const|
+
+Compares two locales and return similarity score between ``0``\ (no match) and ``10``\ (full match).
+
+----
+
+.. _class_TranslationServer_method_get_all_countries:
+
+- :ref:`PoolStringArray<class_PoolStringArray>` **get_all_countries** **(** **)** |const|
+
+Returns array of known country codes.
+
+----
+
+.. _class_TranslationServer_method_get_all_languages:
+
+- :ref:`PoolStringArray<class_PoolStringArray>` **get_all_languages** **(** **)** |const|
+
+Returns array of known language codes.
+
+----
+
+.. _class_TranslationServer_method_get_all_scripts:
+
+- :ref:`PoolStringArray<class_PoolStringArray>` **get_all_scripts** **(** **)** |const|
+
+Returns array of known script codes.
+
+----
+
+.. _class_TranslationServer_method_get_country_name:
+
+- :ref:`String<class_String>` **get_country_name** **(** :ref:`String<class_String>` country **)** |const|
+
+Returns readable country name for the ``country`` code.
+
+----
+
+.. _class_TranslationServer_method_get_language_name:
+
+- :ref:`String<class_String>` **get_language_name** **(** :ref:`String<class_String>` language **)** |const|
+
+Returns readable language name for the ``language`` code.
+
+----
+
 .. _class_TranslationServer_method_get_loaded_locales:
 
 - :ref:`Array<class_Array>` **get_loaded_locales** **(** **)** |const|
@@ -92,6 +156,14 @@ Returns a locale's language and its variant (e.g. ``"en_US"`` would return ``"En
 
 ----
 
+.. _class_TranslationServer_method_get_script_name:
+
+- :ref:`String<class_String>` **get_script_name** **(** :ref:`String<class_String>` script **)** |const|
+
+Returns readable script name for the ``script`` code.
+
+----
+
 .. _class_TranslationServer_method_remove_translation:
 
 - void **remove_translation** **(** :ref:`Translation<class_Translation>` translation **)**
@@ -110,6 +182,14 @@ If translations have been loaded beforehand for the new locale, they will be app
 
 ----
 
+.. _class_TranslationServer_method_standardize_locale:
+
+- :ref:`String<class_String>` **standardize_locale** **(** :ref:`String<class_String>` locale **)** |const|
+
+Retunrs ``locale`` string standardized to match known locales (e.g. ``en-US`` would be matched to ``en_US``).
+
+----
+
 .. _class_TranslationServer_method_translate:
 
 - :ref:`String<class_String>` **translate** **(** :ref:`String<class_String>` message **)** |const|

+ 29 - 10
classes/class_upnp.rst

@@ -12,21 +12,20 @@ UPNP
 
 **Inherits:** :ref:`Reference<class_Reference>` **<** :ref:`Object<class_Object>`
 
-UPNP network functions.
+Universal Plug and Play (UPnP) functions for network device discovery, querying and port forwarding.
 
 Description
 -----------
 
-Provides UPNP functionality to discover :ref:`UPNPDevice<class_UPNPDevice>`\ s on the local network and execute commands on them, like managing port mappings (port forwarding) and querying the local and remote network IP address. Note that methods on this class are synchronous and block the calling thread.
+This class can be used to discover compatible :ref:`UPNPDevice<class_UPNPDevice>`\ s on the local network and execute commands on them, like managing port mappings (for port forwarding/NAT traversal) and querying the local and remote network IP address. Note that methods on this class are synchronous and block the calling thread.
 
-To forward a specific port:
+To forward a specific port (here ``7777``, note both :ref:`discover<class_UPNP_method_discover>` and :ref:`add_port_mapping<class_UPNP_method_add_port_mapping>` can return errors that should be checked):
 
 ::
 
-    const PORT = 7777
     var upnp = UPNP.new()
-    upnp.discover(2000, 2, "InternetGatewayDevice")
-    upnp.add_port_mapping(port)
+    upnp.discover()
+    upnp.add_port_mapping(7777)
 
 To close a specific port (e.g. after you have finished using it):
 
@@ -41,7 +40,7 @@ To close a specific port (e.g. after you have finished using it):
     # Emitted when UPnP port mapping setup is completed (regardless of success or failure).
     signal upnp_completed(error)
     
-    # Replace this with your own server port number between 1025 and 65535.
+    # Replace this with your own server port number between 1024 and 65535.
     const SERVER_PORT = 3928
     var thread = null
     
@@ -68,6 +67,22 @@ To close a specific port (e.g. after you have finished using it):
         # Wait for thread finish here to handle game exit while the thread is running.
         thread.wait_to_finish()
 
+\ **Terminology:** In the context of UPnP networking, "gateway" (or "internet gateway device", short IGD) refers to network devices that allow computers in the local network to access the internet ("wide area network", WAN). These gateways are often also called "routers".
+
+\ **Pitfalls:**\ 
+
+- As explained above, these calls are blocking and shouldn't be run on the main thread, especially as they can block for multiple seconds at a time. Use threading!
+
+- Networking is physical and messy. Packets get lost in transit or get filtered, addresses, free ports and assigned mappings change, and devices may leave or join the network at any time. Be mindful of this, be diligent when checking and handling errors, and handle these gracefully if you can: add clear error UI, timeouts and re-try handling.
+
+- Port mappings may change (and be removed) at any time, and the remote/external IP address of the gateway can change likewise. You should consider re-querying the external IP and try to update/refresh the port mapping periodically (for example, every 5 minutes and on networking failures).
+
+- Not all devices support UPnP, and some users disable UPnP support. You need to handle this (e.g. documenting and requiring the user to manually forward ports, or adding alternative methods of NAT traversal, like a relay/mirror server, or NAT hole punching, STUN/TURN, etc.).
+
+- Consider what happens on mapping conflicts. Maybe multiple users on the same network would like to play your game at the same time, or maybe another application uses the same port. Make the port configurable, and optimally choose a port automatically (re-trying with a different port on failure).
+
+\ **Further reading:** If you want to know more about UPnP (and the Internet Gateway Device (IGD) and Port Control Protocol (PCP) specifically), `Wikipedia <https://en.wikipedia.org/wiki/Universal_Plug_and_Play>`__ is a good first stop, the specification can be found at the `Open Connectivity Foundation <https://openconnectivity.org/developer/specifications/upnp-resources/upnp/>`__ and Godot's implementation is based on the `MiniUPnP client <https://github.com/miniupnp/miniupnp>`__.
+
 Properties
 ----------
 
@@ -293,11 +308,15 @@ Adds the given :ref:`UPNPDevice<class_UPNPDevice>` to the list of discovered dev
 
 - :ref:`int<class_int>` **add_port_mapping** **(** :ref:`int<class_int>` port, :ref:`int<class_int>` port_internal=0, :ref:`String<class_String>` desc="", :ref:`String<class_String>` proto="UDP", :ref:`int<class_int>` duration=0 **)** |const|
 
-Adds a mapping to forward the external ``port`` (between 1 and 65535) on the default gateway (see :ref:`get_gateway<class_UPNP_method_get_gateway>`) to the ``internal_port`` on the local machine for the given protocol ``proto`` (either ``TCP`` or ``UDP``, with UDP being the default). If a port mapping for the given port and protocol combination already exists on that gateway device, this method tries to overwrite it. If that is not desired, you can retrieve the gateway manually with :ref:`get_gateway<class_UPNP_method_get_gateway>` and call :ref:`add_port_mapping<class_UPNP_method_add_port_mapping>` on it, if any.
+Adds a mapping to forward the external ``port`` (between 1 and 65535, although recommended to use port 1024 or above) on the default gateway (see :ref:`get_gateway<class_UPNP_method_get_gateway>`) to the ``internal_port`` on the local machine for the given protocol ``proto`` (either ``TCP`` or ``UDP``, with UDP being the default). If a port mapping for the given port and protocol combination already exists on that gateway device, this method tries to overwrite it. If that is not desired, you can retrieve the gateway manually with :ref:`get_gateway<class_UPNP_method_get_gateway>` and call :ref:`add_port_mapping<class_UPNP_method_add_port_mapping>` on it, if any. Note that forwarding a well-known port (below 1024) with UPnP may fail depending on the device.
+
+Depending on the gateway device, if a mapping for that port already exists, it will either be updated or it will refuse this command due to that conflict, especially if the existing mapping for that port wasn't created via UPnP or points to a different network address (or device) than this one.
 
 If ``internal_port`` is ``0`` (the default), the same port number is used for both the external and the internal port (the ``port`` value).
 
-The description (``desc``) is shown in some router UIs and can be used to point out which application added the mapping. The mapping's lease duration can be limited by specifying a ``duration`` (in seconds). However, some routers are incompatible with one or both of these, so use with caution and add fallback logic in case of errors to retry without them if in doubt.
+The description (``desc``) is shown in some routers management UIs and can be used to point out which application added the mapping.
+
+The mapping's lease ``duration`` can be limited by specifying a duration in seconds. The default of ``0`` means no duration, i.e. a permanent lease and notably some devices only support these permanent leases. Note that whether permanent or not, this is only a request and the gateway may still decide at any point to remove the mapping (which usually happens on a reboot of the gateway, when its external IP address changes, or on some models when it detects a port mapping has become inactive, i.e. had no traffic for multiple minutes). If not ``0`` (permanent), the allowed range according to spec is between ``120`` (2 minutes) and ``86400`` seconds (24 hours).
 
 See :ref:`UPNPResult<enum_UPNP_UPNPResult>` for possible return values.
 
@@ -315,7 +334,7 @@ Clears the list of discovered devices.
 
 - :ref:`int<class_int>` **delete_port_mapping** **(** :ref:`int<class_int>` port, :ref:`String<class_String>` proto="UDP" **)** |const|
 
-Deletes the port mapping for the given port and protocol combination on the default gateway (see :ref:`get_gateway<class_UPNP_method_get_gateway>`) if one exists. ``port`` must be a valid port between 1 and 65535, ``proto`` can be either ``TCP`` or ``UDP``. See :ref:`UPNPResult<enum_UPNP_UPNPResult>` for possible return values.
+Deletes the port mapping for the given port and protocol combination on the default gateway (see :ref:`get_gateway<class_UPNP_method_get_gateway>`) if one exists. ``port`` must be a valid port between 1 and 65535, ``proto`` can be either ``TCP`` or ``UDP``. May be refused for mappings pointing to addresses other than this one, for well-known ports (below 1024), or for mappings not added via UPnP. See :ref:`UPNPResult<enum_UPNP_UPNPResult>` for possible return values.
 
 ----
 

+ 2 - 2
classes/class_upnpdevice.rst

@@ -12,12 +12,12 @@ UPNPDevice
 
 **Inherits:** :ref:`Reference<class_Reference>` **<** :ref:`Object<class_Object>`
 
-UPNP device.
+Universal Plug and Play (UPnP) device.
 
 Description
 -----------
 
-UPNP device. See :ref:`UPNP<class_UPNP>` for UPNP discovery and utility functions. Provides low-level access to UPNP control commands. Allows to manage port mappings (port forwarding) and to query network information of the device (like local and external IP address and status). Note that methods on this class are synchronous and block the calling thread.
+Universal Plug and Play (UPnP) device. See :ref:`UPNP<class_UPNP>` for UPnP discovery and utility functions. Provides low-level access to UPNP control commands. Allows to manage port mappings (port forwarding) and to query network information of the device (like local and external IP address and status). Note that methods on this class are synchronous and block the calling thread.
 
 Properties
 ----------

+ 41 - 3
classes/class_visualinstance.rst

@@ -24,9 +24,13 @@ The ``VisualInstance`` is used to connect a resource to a visual representation.
 Properties
 ----------
 
-+-----------------------+-----------------------------------------------------+-------+
-| :ref:`int<class_int>` | :ref:`layers<class_VisualInstance_property_layers>` | ``1`` |
-+-----------------------+-----------------------------------------------------+-------+
++---------------------------+---------------------------------------------------------------------------------------+----------+
+| :ref:`int<class_int>`     | :ref:`layers<class_VisualInstance_property_layers>`                                   | ``1``    |
++---------------------------+---------------------------------------------------------------------------------------+----------+
+| :ref:`float<class_float>` | :ref:`sorting_offset<class_VisualInstance_property_sorting_offset>`                   | ``0.0``  |
++---------------------------+---------------------------------------------------------------------------------------+----------+
+| :ref:`bool<class_bool>`   | :ref:`sorting_use_aabb_center<class_VisualInstance_property_sorting_use_aabb_center>` | ``true`` |
++---------------------------+---------------------------------------------------------------------------------------+----------+
 
 Methods
 -------
@@ -66,6 +70,40 @@ The render layer(s) this ``VisualInstance`` is drawn on.
 
 This object will only be visible for :ref:`Camera<class_Camera>`\ s whose cull mask includes the render object this ``VisualInstance`` is set to.
 
+----
+
+.. _class_VisualInstance_property_sorting_offset:
+
+- :ref:`float<class_float>` **sorting_offset**
+
++-----------+---------------------------+
+| *Default* | ``0.0``                   |
++-----------+---------------------------+
+| *Setter*  | set_sorting_offset(value) |
++-----------+---------------------------+
+| *Getter*  | get_sorting_offset()      |
++-----------+---------------------------+
+
+The sorting offset used by this ``VisualInstance``. Adjusting it to a higher value will make the ``VisualInstance`` reliably draw on top of other ``VisualInstance``\ s that are otherwise positioned at the same spot.
+
+----
+
+.. _class_VisualInstance_property_sorting_use_aabb_center:
+
+- :ref:`bool<class_bool>` **sorting_use_aabb_center**
+
++-----------+------------------------------------+
+| *Default* | ``true``                           |
++-----------+------------------------------------+
+| *Setter*  | set_sorting_use_aabb_center(value) |
++-----------+------------------------------------+
+| *Getter*  | is_sorting_use_aabb_center()       |
++-----------+------------------------------------+
+
+If ``true``, the object is sorted based on the :ref:`AABB<class_AABB>` center. Sorted based on the global position otherwise.
+
+The :ref:`AABB<class_AABB>` center based sorting is generally more accurate for 3D models. The position based sorting instead allows to better control the drawing order when working with :ref:`Particles<class_Particles>` and :ref:`CPUParticles<class_CPUParticles>`.
+
 Method Descriptions
 -------------------
 

+ 119 - 1
classes/class_visualserver.rst

@@ -57,12 +57,16 @@ Methods
 +---------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`RID<class_RID>`                                   | :ref:`camera_create<class_VisualServer_method_camera_create>` **(** **)**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
 +---------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                    | :ref:`camera_reset_physics_interpolation<class_VisualServer_method_camera_reset_physics_interpolation>` **(** :ref:`RID<class_RID>` camera **)**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
++---------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                                                    | :ref:`camera_set_cull_mask<class_VisualServer_method_camera_set_cull_mask>` **(** :ref:`RID<class_RID>` camera, :ref:`int<class_int>` layers **)**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
 +---------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                                                    | :ref:`camera_set_environment<class_VisualServer_method_camera_set_environment>` **(** :ref:`RID<class_RID>` camera, :ref:`RID<class_RID>` env **)**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
 +---------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                                                    | :ref:`camera_set_frustum<class_VisualServer_method_camera_set_frustum>` **(** :ref:`RID<class_RID>` camera, :ref:`float<class_float>` size, :ref:`Vector2<class_Vector2>` offset, :ref:`float<class_float>` z_near, :ref:`float<class_float>` z_far **)**                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
 +---------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                    | :ref:`camera_set_interpolated<class_VisualServer_method_camera_set_interpolated>` **(** :ref:`RID<class_RID>` camera, :ref:`bool<class_bool>` interpolated **)**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
++---------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                                                    | :ref:`camera_set_orthogonal<class_VisualServer_method_camera_set_orthogonal>` **(** :ref:`RID<class_RID>` camera, :ref:`float<class_float>` size, :ref:`float<class_float>` z_near, :ref:`float<class_float>` z_far **)**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
 +---------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                                                    | :ref:`camera_set_perspective<class_VisualServer_method_camera_set_perspective>` **(** :ref:`RID<class_RID>` camera, :ref:`float<class_float>` fovy_degrees, :ref:`float<class_float>` z_near, :ref:`float<class_float>` z_far **)**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
@@ -369,6 +373,8 @@ Methods
 +---------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                                                    | :ref:`instance_geometry_set_material_override<class_VisualServer_method_instance_geometry_set_material_override>` **(** :ref:`RID<class_RID>` instance, :ref:`RID<class_RID>` material **)**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
 +---------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                    | :ref:`instance_reset_physics_interpolation<class_VisualServer_method_instance_reset_physics_interpolation>` **(** :ref:`RID<class_RID>` instance **)**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
++---------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                                                    | :ref:`instance_set_base<class_VisualServer_method_instance_set_base>` **(** :ref:`RID<class_RID>` instance, :ref:`RID<class_RID>` base **)**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
 +---------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                                                    | :ref:`instance_set_blend_shape_weight<class_VisualServer_method_instance_set_blend_shape_weight>` **(** :ref:`RID<class_RID>` instance, :ref:`int<class_int>` shape, :ref:`float<class_float>` weight **)**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
@@ -379,6 +385,8 @@ Methods
 +---------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                                                    | :ref:`instance_set_extra_visibility_margin<class_VisualServer_method_instance_set_extra_visibility_margin>` **(** :ref:`RID<class_RID>` instance, :ref:`float<class_float>` margin **)**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
 +---------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                    | :ref:`instance_set_interpolated<class_VisualServer_method_instance_set_interpolated>` **(** :ref:`RID<class_RID>` instance, :ref:`bool<class_bool>` interpolated **)**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
++---------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                                                    | :ref:`instance_set_layer_mask<class_VisualServer_method_instance_set_layer_mask>` **(** :ref:`RID<class_RID>` instance, :ref:`int<class_int>` mask **)**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
 +---------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                                                    | :ref:`instance_set_scenario<class_VisualServer_method_instance_set_scenario>` **(** :ref:`RID<class_RID>` instance, :ref:`RID<class_RID>` scenario **)**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
@@ -545,6 +553,8 @@ Methods
 +---------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`Transform2D<class_Transform2D>`                   | :ref:`multimesh_instance_get_transform_2d<class_VisualServer_method_multimesh_instance_get_transform_2d>` **(** :ref:`RID<class_RID>` multimesh, :ref:`int<class_int>` index **)** |const|                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
 +---------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                    | :ref:`multimesh_instance_reset_physics_interpolation<class_VisualServer_method_multimesh_instance_reset_physics_interpolation>` **(** :ref:`RID<class_RID>` multimesh, :ref:`int<class_int>` index **)**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
++---------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                                                    | :ref:`multimesh_instance_set_color<class_VisualServer_method_multimesh_instance_set_color>` **(** :ref:`RID<class_RID>` multimesh, :ref:`int<class_int>` index, :ref:`Color<class_Color>` color **)**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
 +---------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                                                    | :ref:`multimesh_instance_set_custom_data<class_VisualServer_method_multimesh_instance_set_custom_data>` **(** :ref:`RID<class_RID>` multimesh, :ref:`int<class_int>` index, :ref:`Color<class_Color>` custom_data **)**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
@@ -555,8 +565,14 @@ Methods
 +---------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                                                    | :ref:`multimesh_set_as_bulk_array<class_VisualServer_method_multimesh_set_as_bulk_array>` **(** :ref:`RID<class_RID>` multimesh, :ref:`PoolRealArray<class_PoolRealArray>` array **)**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
 +---------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                    | :ref:`multimesh_set_as_bulk_array_interpolated<class_VisualServer_method_multimesh_set_as_bulk_array_interpolated>` **(** :ref:`RID<class_RID>` multimesh, :ref:`PoolRealArray<class_PoolRealArray>` array, :ref:`PoolRealArray<class_PoolRealArray>` array_previous **)**                                                                                                                                                                                                                                                                                                                                                                                                                                             |
++---------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                                                    | :ref:`multimesh_set_mesh<class_VisualServer_method_multimesh_set_mesh>` **(** :ref:`RID<class_RID>` multimesh, :ref:`RID<class_RID>` mesh **)**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
 +---------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                    | :ref:`multimesh_set_physics_interpolated<class_VisualServer_method_multimesh_set_physics_interpolated>` **(** :ref:`RID<class_RID>` multimesh, :ref:`bool<class_bool>` interpolated **)**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
++---------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                    | :ref:`multimesh_set_physics_interpolation_quality<class_VisualServer_method_multimesh_set_physics_interpolation_quality>` **(** :ref:`RID<class_RID>` multimesh, :ref:`MultimeshPhysicsInterpolationQuality<enum_VisualServer_MultimeshPhysicsInterpolationQuality>` quality **)**                                                                                                                                                                                                                                                                                                                                                                                                                                     |
++---------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                                                    | :ref:`multimesh_set_visible_instances<class_VisualServer_method_multimesh_set_visible_instances>` **(** :ref:`RID<class_RID>` multimesh, :ref:`int<class_int>` visible **)**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
 +---------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`RID<class_RID>`                                   | :ref:`omni_light_create<class_VisualServer_method_omni_light_create>` **(** **)**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
@@ -1790,6 +1806,20 @@ enum **MultimeshCustomDataFormat**:
 
 ----
 
+.. _enum_VisualServer_MultimeshPhysicsInterpolationQuality:
+
+.. _class_VisualServer_constant_MULTIMESH_INTERP_QUALITY_FAST:
+
+.. _class_VisualServer_constant_MULTIMESH_INTERP_QUALITY_HIGH:
+
+enum **MultimeshPhysicsInterpolationQuality**:
+
+- **MULTIMESH_INTERP_QUALITY_FAST** = **0** --- MultiMesh physics interpolation favours speed over quality.
+
+- **MULTIMESH_INTERP_QUALITY_HIGH** = **1** --- MultiMesh physics interpolation favours quality over speed.
+
+----
+
 .. _enum_VisualServer_ReflectionProbeUpdateMode:
 
 .. _class_VisualServer_constant_REFLECTION_PROBE_UPDATE_ONCE:
@@ -2059,6 +2089,16 @@ Once finished with your RID, you will want to free the RID using the VisualServe
 
 ----
 
+.. _class_VisualServer_method_camera_reset_physics_interpolation:
+
+- void **camera_reset_physics_interpolation** **(** :ref:`RID<class_RID>` camera **)**
+
+Prevents physics interpolation for the current physics tick.
+
+This is useful when moving a :ref:`Camera<class_Camera>` to a new location, to give an instantaneous change rather than interpolation from the previous location.
+
+----
+
 .. _class_VisualServer_method_camera_set_cull_mask:
 
 - void **camera_set_cull_mask** **(** :ref:`RID<class_RID>` camera, :ref:`int<class_int>` layers **)**
@@ -2083,6 +2123,14 @@ Sets camera to use frustum projection. This mode allows adjusting the ``offset``
 
 ----
 
+.. _class_VisualServer_method_camera_set_interpolated:
+
+- void **camera_set_interpolated** **(** :ref:`RID<class_RID>` camera, :ref:`bool<class_bool>` interpolated **)**
+
+Turns on and off physics interpolation for the :ref:`Camera<class_Camera>`.
+
+----
+
 .. _class_VisualServer_method_camera_set_orthogonal:
 
 - void **camera_set_orthogonal** **(** :ref:`RID<class_RID>` camera, :ref:`float<class_float>` size, :ref:`float<class_float>` z_near, :ref:`float<class_float>` z_far **)**
@@ -2875,7 +2923,21 @@ Synchronizes threads.
 
 - void **free_rid** **(** :ref:`RID<class_RID>` rid **)**
 
-Tries to free an object in the VisualServer.
+Destroys an object created by the VisualServer. If the :ref:`RID<class_RID>` passed is not one created by the server that created it (e.g. VisualServer, PhysicsServer, etc.), an error will be sent to the console.
+
+\ **Note:** After freeing the object, the RID now has a reference to invalid memory. It is not safe to use or free an invalid RID. Before using the RID again, make sure to assign it to ``RID()`` or any other valid RID.
+
+::
+
+    var r: RID = VisualServer.get_test_cube()
+    VisualServer.free_rid(r)
+    print("ID: ", r.get_id())   # It is not safe to access or free an invalid RID
+    r = RID()                   # Reset the RID so it is safe to use again.
+    print("ID: ", r.get_id())
+    
+    # Output:
+    # ID: 157     # Freed RID has invalid data
+    # ID: 0       # RID has been properly reset
 
 ----
 
@@ -3349,6 +3411,16 @@ Sets a material that will override the material for all surfaces on the mesh ass
 
 ----
 
+.. _class_VisualServer_method_instance_reset_physics_interpolation:
+
+- void **instance_reset_physics_interpolation** **(** :ref:`RID<class_RID>` instance **)**
+
+Prevents physics interpolation for the current physics tick.
+
+This is useful when moving an instance to a new location, to give an instantaneous change rather than interpolation from the previous location.
+
+----
+
 .. _class_VisualServer_method_instance_set_base:
 
 - void **instance_set_base** **(** :ref:`RID<class_RID>` instance, :ref:`RID<class_RID>` base **)**
@@ -3389,6 +3461,14 @@ Sets a margin to increase the size of the AABB when culling objects from the vie
 
 ----
 
+.. _class_VisualServer_method_instance_set_interpolated:
+
+- void **instance_set_interpolated** **(** :ref:`RID<class_RID>` instance, :ref:`bool<class_bool>` interpolated **)**
+
+Turns on and off physics interpolation for the instance.
+
+----
+
 .. _class_VisualServer_method_instance_set_layer_mask:
 
 - void **instance_set_layer_mask** **(** :ref:`RID<class_RID>` instance, :ref:`int<class_int>` mask **)**
@@ -4071,6 +4151,16 @@ Returns the :ref:`Transform2D<class_Transform2D>` of the specified instance. For
 
 ----
 
+.. _class_VisualServer_method_multimesh_instance_reset_physics_interpolation:
+
+- void **multimesh_instance_reset_physics_interpolation** **(** :ref:`RID<class_RID>` multimesh, :ref:`int<class_int>` index **)**
+
+Prevents physics interpolation for the specified instance during the current physics tick.
+
+This is useful when moving an instance to a new location, to give an instantaneous change rather than interpolation from the previous location.
+
+----
+
 .. _class_VisualServer_method_multimesh_instance_set_color:
 
 - void **multimesh_instance_set_color** **(** :ref:`RID<class_RID>` multimesh, :ref:`int<class_int>` index, :ref:`Color<class_Color>` color **)**
@@ -4119,6 +4209,16 @@ All data is packed in one large float array. An array may look like this: Transf
 
 ----
 
+.. _class_VisualServer_method_multimesh_set_as_bulk_array_interpolated:
+
+- void **multimesh_set_as_bulk_array_interpolated** **(** :ref:`RID<class_RID>` multimesh, :ref:`PoolRealArray<class_PoolRealArray>` array, :ref:`PoolRealArray<class_PoolRealArray>` array_previous **)**
+
+Alternative version of :ref:`multimesh_set_as_bulk_array<class_VisualServer_method_multimesh_set_as_bulk_array>` for use with physics interpolation.
+
+Takes both an array of current data and an array of data for the previous physics tick.
+
+----
+
 .. _class_VisualServer_method_multimesh_set_mesh:
 
 - void **multimesh_set_mesh** **(** :ref:`RID<class_RID>` multimesh, :ref:`RID<class_RID>` mesh **)**
@@ -4127,6 +4227,24 @@ Sets the mesh to be drawn by the multimesh. Equivalent to :ref:`MultiMesh.mesh<c
 
 ----
 
+.. _class_VisualServer_method_multimesh_set_physics_interpolated:
+
+- void **multimesh_set_physics_interpolated** **(** :ref:`RID<class_RID>` multimesh, :ref:`bool<class_bool>` interpolated **)**
+
+Turns on and off physics interpolation for the :ref:`MultiMesh<class_MultiMesh>`.
+
+----
+
+.. _class_VisualServer_method_multimesh_set_physics_interpolation_quality:
+
+- void **multimesh_set_physics_interpolation_quality** **(** :ref:`RID<class_RID>` multimesh, :ref:`MultimeshPhysicsInterpolationQuality<enum_VisualServer_MultimeshPhysicsInterpolationQuality>` quality **)**
+
+Sets the physics interpolation quality for the :ref:`MultiMesh<class_MultiMesh>`.
+
+A value of ``0`` gives fast but low quality interpolation, a value of ``1`` gives slower but higher quality interpolation.
+
+----
+
 .. _class_VisualServer_method_multimesh_set_visible_instances:
 
 - void **multimesh_set_visible_instances** **(** :ref:`RID<class_RID>` multimesh, :ref:`int<class_int>` visible **)**

+ 1 - 1
classes/class_weakref.rst

@@ -33,7 +33,7 @@ Method Descriptions
 
 - :ref:`Variant<class_Variant>` **get_ref** **(** **)** |const|
 
-Returns the :ref:`Object<class_Object>` this weakref is referring to.
+Returns the :ref:`Object<class_Object>` this weakref is referring to. Returns ``null`` if that object no longer exists.
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`