Ver Fonte

Merge pull request #8181 from godotengine/classref/sync-6916349

classref: Sync with current master branch (6916349)
Max Hilbrunner há 1 ano atrás
pai
commit
7dc16deb7a
96 ficheiros alterados com 1010 adições e 290 exclusões
  1. 30 3
      classes/[email protected]
  2. 59 3
      classes/[email protected]
  3. 23 21
      classes/class_acceptdialog.rst
  4. 5 5
      classes/class_astar3d.rst
  5. 5 5
      classes/class_astargrid2d.rst
  6. 1 1
      classes/class_audiostreamplayer.rst
  7. 1 1
      classes/class_audiostreamplayer2d.rst
  8. 2 2
      classes/class_basematerial3d.rst
  9. 1 1
      classes/class_basis.rst
  10. 1 1
      classes/class_bone2d.rst
  11. 1 1
      classes/class_button.rst
  12. 1 1
      classes/class_camera3d.rst
  13. 2 2
      classes/class_characterbody2d.rst
  14. 2 2
      classes/class_characterbody3d.rst
  15. 3 3
      classes/class_codeedit.rst
  16. 1 1
      classes/class_collisionobject2d.rst
  17. 1 1
      classes/class_collisionpolygon3d.rst
  18. 3 7
      classes/class_curve3d.rst
  19. 1 1
      classes/class_dampedspringjoint2d.rst
  20. 2 0
      classes/class_diraccess.rst
  21. 92 6
      classes/class_displayserver.rst
  22. 6 6
      classes/class_editorexportplatformmacos.rst
  23. 2 2
      classes/class_editorexportplugin.rst
  24. 1 1
      classes/class_editorfiledialog.rst
  25. 29 1
      classes/class_editorinterface.rst
  26. 5 5
      classes/class_editornode3dgizmo.rst
  27. 1 1
      classes/class_editornode3dgizmoplugin.rst
  28. 8 0
      classes/class_editorsceneformatimporter.rst
  29. 4 4
      classes/class_environment.rst
  30. 2 2
      classes/class_fileaccess.rst
  31. 1 1
      classes/class_fontfile.rst
  32. 1 1
      classes/class_fontvariation.rst
  33. 2 2
      classes/class_gpuparticles3d.rst
  34. 125 33
      classes/class_graphedit.rst
  35. 3 3
      classes/class_graphelement.rst
  36. 3 3
      classes/class_httprequest.rst
  37. 2 2
      classes/class_image.rst
  38. 1 1
      classes/class_imagetexturelayered.rst
  39. 1 1
      classes/class_joint2d.rst
  40. 1 1
      classes/class_label.rst
  41. 1 1
      classes/class_line2d.rst
  42. 1 1
      classes/class_linkbutton.rst
  43. 4 4
      classes/class_margincontainer.rst
  44. 1 1
      classes/class_menubutton.rst
  45. 2 2
      classes/class_meshdatatool.rst
  46. 1 1
      classes/class_moviewriter.rst
  47. 1 1
      classes/class_navigationagent2d.rst
  48. 1 1
      classes/class_navigationagent3d.rst
  49. 3 3
      classes/class_navigationmeshsourcegeometrydata3d.rst
  50. 1 1
      classes/class_navigationpathqueryparameters2d.rst
  51. 1 1
      classes/class_navigationpathqueryparameters3d.rst
  52. 2 2
      classes/class_navigationregion2d.rst
  53. 2 2
      classes/class_navigationregion3d.rst
  54. 52 2
      classes/class_node.rst
  55. 14 10
      classes/class_node3d.rst
  56. 9 2
      classes/class_node3dgizmo.rst
  57. 140 28
      classes/class_openxrinterface.rst
  58. 1 1
      classes/class_os.rst
  59. 1 1
      classes/class_packedbytearray.rst
  60. 2 2
      classes/class_packedscene.rst
  61. 1 1
      classes/class_packetpeer.rst
  62. 3 3
      classes/class_particleprocessmaterial.rst
  63. 8 8
      classes/class_physicsserver2d.rst
  64. 3 5
      classes/class_physicsserver3d.rst
  65. 6 6
      classes/class_polygon2d.rst
  66. 59 1
      classes/class_projectsettings.rst
  67. 1 1
      classes/class_quaternion.rst
  68. 73 11
      classes/class_renderingserver.rst
  69. 23 9
      classes/class_resourceimporterobj.rst
  70. 14 0
      classes/class_resourceimporterscene.rst
  71. 2 2
      classes/class_richtextlabel.rst
  72. 1 1
      classes/class_rigidbody3d.rst
  73. 16 0
      classes/class_scriptextension.rst
  74. 1 1
      classes/class_separationrayshape2d.rst
  75. 1 1
      classes/class_separationrayshape3d.rst
  76. 4 4
      classes/class_slider.rst
  77. 3 3
      classes/class_spinbox.rst
  78. 29 0
      classes/class_subviewportcontainer.rst
  79. 2 2
      classes/class_textedit.rst
  80. 17 5
      classes/class_textserver.rst
  81. 16 0
      classes/class_textserverextension.rst
  82. 3 3
      classes/class_textureprogressbar.rst
  83. 1 1
      classes/class_tileset.rst
  84. 1 1
      classes/class_tilesetatlassource.rst
  85. 1 1
      classes/class_tlsoptions.rst
  86. 1 1
      classes/class_transform2d.rst
  87. 1 1
      classes/class_transform3d.rst
  88. 1 1
      classes/class_tree.rst
  89. 1 1
      classes/class_variant.rst
  90. 1 1
      classes/class_vector2.rst
  91. 1 1
      classes/class_vector3.rst
  92. 1 1
      classes/class_vector4.rst
  93. 1 1
      classes/class_visualshadernodeswitch.rst
  94. 36 5
      classes/class_window.rst
  95. 1 1
      classes/class_worldboundaryshape2d.rst
  96. 1 1
      classes/class_xrpositionaltracker.rst

+ 30 - 3
classes/[email protected]

@@ -130,10 +130,37 @@ Mark the following property as exported (editable in the Inspector dock and save
 
 ::
 
+    extends Node
+    
+    enum Direction {LEFT, RIGHT, UP, DOWN}
+    
+    # Built-in types.
     @export var string = ""
     @export var int_number = 5
     @export var float_number: float = 5
+    
+    # Enums.
+    @export var type: Variant.Type
+    @export var format: Image.Format
+    @export var direction: Direction
+    
+    # Resources.
     @export var image: Image
+    @export var custom_resource: CustomResource
+    
+    # Nodes.
+    @export var node: Node
+    @export var custom_node: CustomNode
+    
+    # Typed arrays.
+    @export var int_array: Array[int]
+    @export var direction_array: Array[Direction]
+    @export var image_array: Array[Image]
+    @export var node_array: Array[Node]
+
+\ **Note:** Custom resources and nodes must be registered as global classes using ``class_name``.
+
+\ **Note:** Node export is only supported in :ref:`Node<class_Node>`-derived classes and has a number of other limitations.
 
 .. rst-class:: classref-item-separator
 
@@ -633,9 +660,9 @@ Add a custom icon to the current script. The icon specified at ``icon_path`` is
 
 \ **Note:** Only the script can have a custom icon. Inner classes are not supported.
 
-\ **Note:** As annotations describe their subject, the ``@icon`` annotation must be placed before the class definition and inheritance.
+\ **Note:** As annotations describe their subject, the :ref:`@icon<class_@GDScript_annotation_@icon>` annotation must be placed before the class definition and inheritance.
 
-\ **Note:** Unlike other annotations, the argument of the ``@icon`` annotation must be a string literal (constant expressions are not supported).
+\ **Note:** Unlike other annotations, the argument of the :ref:`@icon<class_@GDScript_annotation_@icon>` annotation must be a string literal (constant expressions are not supported).
 
 .. rst-class:: classref-item-separator
 
@@ -715,7 +742,7 @@ Mark the current script as a tool script, allowing it to be loaded and executed
     @tool
     extends Node
 
-\ **Note:** As annotations describe their subject, the ``@tool`` annotation must be placed before the class definition and inheritance.
+\ **Note:** As annotations describe their subject, the :ref:`@tool<class_@GDScript_annotation_@tool>` annotation must be placed before the class definition and inheritance.
 
 .. rst-class:: classref-item-separator
 

+ 59 - 3
classes/[email protected]

@@ -137,6 +137,8 @@ Methods
    +-------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | :ref:`float<class_float>`                       | :ref:`acosh<class_@GlobalScope_method_acosh>` **(** :ref:`float<class_float>` x **)**                                                                                                                                                                                                                                                                                          |
    +-------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`float<class_float>`                       | :ref:`angle_difference<class_@GlobalScope_method_angle_difference>` **(** :ref:`float<class_float>` from, :ref:`float<class_float>` to **)**                                                                                                                                                                                                                                   |
+   +-------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | :ref:`float<class_float>`                       | :ref:`asin<class_@GlobalScope_method_asin>` **(** :ref:`float<class_float>` x **)**                                                                                                                                                                                                                                                                                            |
    +-------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | :ref:`float<class_float>`                       | :ref:`asinh<class_@GlobalScope_method_asinh>` **(** :ref:`float<class_float>` x **)**                                                                                                                                                                                                                                                                                          |
@@ -293,6 +295,8 @@ Methods
    +-------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | :ref:`RID<class_RID>`                           | :ref:`rid_from_int64<class_@GlobalScope_method_rid_from_int64>` **(** :ref:`int<class_int>` base **)**                                                                                                                                                                                                                                                                         |
    +-------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`float<class_float>`                       | :ref:`rotate_toward<class_@GlobalScope_method_rotate_toward>` **(** :ref:`float<class_float>` from, :ref:`float<class_float>` to, :ref:`float<class_float>` delta **)**                                                                                                                                                                                                        |
+   +-------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | :ref:`Variant<class_Variant>`                   | :ref:`round<class_@GlobalScope_method_round>` **(** :ref:`Variant<class_Variant>` x **)**                                                                                                                                                                                                                                                                                      |
    +-------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | :ref:`float<class_float>`                       | :ref:`roundf<class_@GlobalScope_method_roundf>` **(** :ref:`float<class_float>` x **)**                                                                                                                                                                                                                                                                                        |
@@ -333,6 +337,8 @@ Methods
    +-------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | :ref:`Variant<class_Variant>`                   | :ref:`type_convert<class_@GlobalScope_method_type_convert>` **(** :ref:`Variant<class_Variant>` variant, :ref:`int<class_int>` type **)**                                                                                                                                                                                                                                      |
    +-------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`String<class_String>`                     | :ref:`type_string<class_@GlobalScope_method_type_string>` **(** :ref:`int<class_int>` type **)**                                                                                                                                                                                                                                                                               |
+   +-------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | :ref:`int<class_int>`                           | :ref:`typeof<class_@GlobalScope_method_typeof>` **(** :ref:`Variant<class_Variant>` variable **)**                                                                                                                                                                                                                                                                             |
    +-------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | :ref:`PackedByteArray<class_PackedByteArray>`   | :ref:`var_to_bytes<class_@GlobalScope_method_var_to_bytes>` **(** :ref:`Variant<class_Variant>` variable **)**                                                                                                                                                                                                                                                                 |
@@ -5246,6 +5252,18 @@ Returns the hyperbolic arc (also called inverse) cosine of ``x``, returning a va
 
 ----
 
+.. _class_@GlobalScope_method_angle_difference:
+
+.. rst-class:: classref-method
+
+:ref:`float<class_float>` **angle_difference** **(** :ref:`float<class_float>` from, :ref:`float<class_float>` to **)**
+
+Returns the difference between the two angles, in the range of ``[-PI, +PI]``. When ``from`` and ``to`` are opposite, returns ``-PI`` if ``from`` is smaller than ``to``, or ``PI`` otherwise.
+
+.. rst-class:: classref-item-separator
+
+----
+
 .. _class_@GlobalScope_method_asin:
 
 .. rst-class:: classref-method
@@ -5581,7 +5599,7 @@ Cubic interpolates between two rotation values with shortest path by the factor
 
 Cubic interpolates between two rotation values with shortest path by the factor defined in ``weight`` with ``pre`` and ``post`` values. See also :ref:`lerp_angle<class_@GlobalScope_method_lerp_angle>`.
 
-It can perform smoother interpolation than ``cubic_interpolate()`` by the time values.
+It can perform smoother interpolation than :ref:`cubic_interpolate<class_@GlobalScope_method_cubic_interpolate>` by the time values.
 
 .. rst-class:: classref-item-separator
 
@@ -6785,6 +6803,22 @@ Creates a RID from a ``base``. This is used mainly from native extensions to bui
 
 ----
 
+.. _class_@GlobalScope_method_rotate_toward:
+
+.. rst-class:: classref-method
+
+:ref:`float<class_float>` **rotate_toward** **(** :ref:`float<class_float>` from, :ref:`float<class_float>` to, :ref:`float<class_float>` delta **)**
+
+Rotates ``from`` toward ``to`` by the ``delta`` amount. Will not go past ``to``.
+
+Similar to :ref:`move_toward<class_@GlobalScope_method_move_toward>`, but interpolates correctly when the angles wrap around :ref:`@GDScript.TAU<class_@GDScript_constant_TAU>`.
+
+If ``delta`` is negative, this function will rotate away from ``to``, toward the opposite angle, and will not go past the opposite angle.
+
+.. rst-class:: classref-item-separator
+
+----
+
 .. _class_@GlobalScope_method_round:
 
 .. rst-class:: classref-method
@@ -7183,7 +7217,7 @@ Returns the hyperbolic tangent of ``x``.
 
 Converts the given ``variant`` to the given ``type``, using the :ref:`Variant.Type<enum_@GlobalScope_Variant.Type>` values. This method is generous with how it handles types, it can automatically convert between array types, convert numeric :ref:`String<class_String>`\ s to :ref:`int<class_int>`, and converting most things to :ref:`String<class_String>`.
 
-If the type conversion cannot be done, this method will return the default value for that type, for example converting :ref:`Rect2<class_Rect2>` to :ref:`Vector2<class_Vector2>` will always return ``Vector2.ZERO``. This method will never show error messages as long as ``type`` is a valid Variant type.
+If the type conversion cannot be done, this method will return the default value for that type, for example converting :ref:`Rect2<class_Rect2>` to :ref:`Vector2<class_Vector2>` will always return :ref:`Vector2.ZERO<class_Vector2_constant_ZERO>`. This method will never show error messages as long as ``type`` is a valid Variant type.
 
 The returned value is a :ref:`Variant<class_Variant>`, but the data inside and the :ref:`Variant.Type<enum_@GlobalScope_Variant.Type>` will be the same as the requested type.
 
@@ -7199,6 +7233,26 @@ The returned value is a :ref:`Variant<class_Variant>`, but the data inside and t
 
 ----
 
+.. _class_@GlobalScope_method_type_string:
+
+.. rst-class:: classref-method
+
+:ref:`String<class_String>` **type_string** **(** :ref:`int<class_int>` type **)**
+
+Returns a human-readable name of the given ``type``, using the :ref:`Variant.Type<enum_@GlobalScope_Variant.Type>` values.
+
+::
+
+    print(TYPE_INT) # Prints 2.
+    print(type_string(TYPE_INT)) # Prints "int".
+    print(type_string(TYPE_STRING)) # Prints "String".
+
+See also :ref:`typeof<class_@GlobalScope_method_typeof>`.
+
+.. rst-class:: classref-item-separator
+
+----
+
 .. _class_@GlobalScope_method_typeof:
 
 .. rst-class:: classref-method
@@ -7217,6 +7271,8 @@ Returns the internal type of the given ``variable``, using the :ref:`Variant.Typ
     else:
         print("Unexpected result")
 
+See also :ref:`type_string<class_@GlobalScope_method_type_string>`.
+
 .. rst-class:: classref-item-separator
 
 ----
@@ -7349,7 +7405,7 @@ Wraps the float ``value`` between ``min`` and ``max``. Can be used for creating
 
 \ **Note:** If ``min`` is ``0``, this is equivalent to :ref:`fposmod<class_@GlobalScope_method_fposmod>`, so prefer using that instead.
 
-\ ``wrapf`` is more flexible than using the :ref:`fposmod<class_@GlobalScope_method_fposmod>` approach by giving the user control over the minimum value.
+\ :ref:`wrapf<class_@GlobalScope_method_wrapf>` is more flexible than using the :ref:`fposmod<class_@GlobalScope_method_fposmod>` approach by giving the user control over the minimum value.
 
 .. rst-class:: classref-item-separator
 

+ 23 - 21
classes/class_acceptdialog.rst

@@ -31,27 +31,29 @@ Properties
 .. table::
    :widths: auto
 
-   +-----------------------------+-----------------------------------------------------------------------------------+-------------------------------------------------------------------------+
-   | :ref:`bool<class_bool>`     | :ref:`dialog_autowrap<class_AcceptDialog_property_dialog_autowrap>`               | ``false``                                                               |
-   +-----------------------------+-----------------------------------------------------------------------------------+-------------------------------------------------------------------------+
-   | :ref:`bool<class_bool>`     | :ref:`dialog_close_on_escape<class_AcceptDialog_property_dialog_close_on_escape>` | ``true``                                                                |
-   +-----------------------------+-----------------------------------------------------------------------------------+-------------------------------------------------------------------------+
-   | :ref:`bool<class_bool>`     | :ref:`dialog_hide_on_ok<class_AcceptDialog_property_dialog_hide_on_ok>`           | ``true``                                                                |
-   +-----------------------------+-----------------------------------------------------------------------------------+-------------------------------------------------------------------------+
-   | :ref:`String<class_String>` | :ref:`dialog_text<class_AcceptDialog_property_dialog_text>`                       | ``""``                                                                  |
-   +-----------------------------+-----------------------------------------------------------------------------------+-------------------------------------------------------------------------+
-   | :ref:`bool<class_bool>`     | exclusive                                                                         | ``true`` (overrides :ref:`Window<class_Window_property_exclusive>`)     |
-   +-----------------------------+-----------------------------------------------------------------------------------+-------------------------------------------------------------------------+
-   | :ref:`String<class_String>` | :ref:`ok_button_text<class_AcceptDialog_property_ok_button_text>`                 | ``"OK"``                                                                |
-   +-----------------------------+-----------------------------------------------------------------------------------+-------------------------------------------------------------------------+
-   | :ref:`String<class_String>` | title                                                                             | ``"Alert!"`` (overrides :ref:`Window<class_Window_property_title>`)     |
-   +-----------------------------+-----------------------------------------------------------------------------------+-------------------------------------------------------------------------+
-   | :ref:`bool<class_bool>`     | transient                                                                         | ``true`` (overrides :ref:`Window<class_Window_property_transient>`)     |
-   +-----------------------------+-----------------------------------------------------------------------------------+-------------------------------------------------------------------------+
-   | :ref:`bool<class_bool>`     | visible                                                                           | ``false`` (overrides :ref:`Window<class_Window_property_visible>`)      |
-   +-----------------------------+-----------------------------------------------------------------------------------+-------------------------------------------------------------------------+
-   | :ref:`bool<class_bool>`     | wrap_controls                                                                     | ``true`` (overrides :ref:`Window<class_Window_property_wrap_controls>`) |
-   +-----------------------------+-----------------------------------------------------------------------------------+-------------------------------------------------------------------------+
+   +-----------------------------+-----------------------------------------------------------------------------------+------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`     | :ref:`dialog_autowrap<class_AcceptDialog_property_dialog_autowrap>`               | ``false``                                                                    |
+   +-----------------------------+-----------------------------------------------------------------------------------+------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`     | :ref:`dialog_close_on_escape<class_AcceptDialog_property_dialog_close_on_escape>` | ``true``                                                                     |
+   +-----------------------------+-----------------------------------------------------------------------------------+------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`     | :ref:`dialog_hide_on_ok<class_AcceptDialog_property_dialog_hide_on_ok>`           | ``true``                                                                     |
+   +-----------------------------+-----------------------------------------------------------------------------------+------------------------------------------------------------------------------+
+   | :ref:`String<class_String>` | :ref:`dialog_text<class_AcceptDialog_property_dialog_text>`                       | ``""``                                                                       |
+   +-----------------------------+-----------------------------------------------------------------------------------+------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`     | exclusive                                                                         | ``true`` (overrides :ref:`Window<class_Window_property_exclusive>`)          |
+   +-----------------------------+-----------------------------------------------------------------------------------+------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`     | keep_title_visible                                                                | ``true`` (overrides :ref:`Window<class_Window_property_keep_title_visible>`) |
+   +-----------------------------+-----------------------------------------------------------------------------------+------------------------------------------------------------------------------+
+   | :ref:`String<class_String>` | :ref:`ok_button_text<class_AcceptDialog_property_ok_button_text>`                 | ``"OK"``                                                                     |
+   +-----------------------------+-----------------------------------------------------------------------------------+------------------------------------------------------------------------------+
+   | :ref:`String<class_String>` | title                                                                             | ``"Alert!"`` (overrides :ref:`Window<class_Window_property_title>`)          |
+   +-----------------------------+-----------------------------------------------------------------------------------+------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`     | transient                                                                         | ``true`` (overrides :ref:`Window<class_Window_property_transient>`)          |
+   +-----------------------------+-----------------------------------------------------------------------------------+------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`     | visible                                                                           | ``false`` (overrides :ref:`Window<class_Window_property_visible>`)           |
+   +-----------------------------+-----------------------------------------------------------------------------------+------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`     | wrap_controls                                                                     | ``true`` (overrides :ref:`Window<class_Window_property_wrap_controls>`)      |
+   +-----------------------------+-----------------------------------------------------------------------------------+------------------------------------------------------------------------------+
 
 .. rst-class:: classref-reftable-group
 

+ 5 - 5
classes/class_astar3d.rst

@@ -23,7 +23,7 @@ A\* (A star) is a computer algorithm used in pathfinding and graph traversal, th
 
 You must add points manually with :ref:`add_point<class_AStar3D_method_add_point>` and create segments manually with :ref:`connect_points<class_AStar3D_method_connect_points>`. Once done, you can test if there is a path between two points with the :ref:`are_points_connected<class_AStar3D_method_are_points_connected>` function, get a path containing indices by :ref:`get_id_path<class_AStar3D_method_get_id_path>`, or one containing actual coordinates with :ref:`get_point_path<class_AStar3D_method_get_point_path>`.
 
-It is also possible to use non-Euclidean distances. To do so, create a class that extends ``AStar3D`` and override methods :ref:`_compute_cost<class_AStar3D_method__compute_cost>` and :ref:`_estimate_cost<class_AStar3D_method__estimate_cost>`. Both take two indices and return a length, as is shown in the following example.
+It is also possible to use non-Euclidean distances. To do so, create a class that extends **AStar3D** and override methods :ref:`_compute_cost<class_AStar3D_method__compute_cost>` and :ref:`_estimate_cost<class_AStar3D_method__estimate_cost>`. Both take two indices and return a length, as is shown in the following example.
 
 
 .. tabs::
@@ -56,7 +56,7 @@ It is also possible to use non-Euclidean distances. To do so, create a class tha
 
 
 
-\ :ref:`_estimate_cost<class_AStar3D_method__estimate_cost>` should return a lower bound of the distance, i.e. ``_estimate_cost(u, v) <= _compute_cost(u, v)``. This serves as a hint to the algorithm because the custom ``_compute_cost`` might be computation-heavy. If this is not the case, make :ref:`_estimate_cost<class_AStar3D_method__estimate_cost>` return the same value as :ref:`_compute_cost<class_AStar3D_method__compute_cost>` to provide the algorithm with the most accurate information.
+\ :ref:`_estimate_cost<class_AStar3D_method__estimate_cost>` should return a lower bound of the distance, i.e. ``_estimate_cost(u, v) <= _compute_cost(u, v)``. This serves as a hint to the algorithm because the custom :ref:`_compute_cost<class_AStar3D_method__compute_cost>` might be computation-heavy. If this is not the case, make :ref:`_estimate_cost<class_AStar3D_method__estimate_cost>` return the same value as :ref:`_compute_cost<class_AStar3D_method__compute_cost>` to provide the algorithm with the most accurate information.
 
 If the default :ref:`_estimate_cost<class_AStar3D_method__estimate_cost>` and :ref:`_compute_cost<class_AStar3D_method__compute_cost>` methods are used, or if the supplied :ref:`_estimate_cost<class_AStar3D_method__estimate_cost>` method returns a lower bound of the cost, then the paths returned by A\* will be the lowest-cost paths. Here, the cost of a path equals the sum of the :ref:`_compute_cost<class_AStar3D_method__compute_cost>` results of all segments in the path multiplied by the ``weight_scale``\ s of the endpoints of the respective segments. If the default methods are used and the ``weight_scale``\ s of all points are set to ``1.0``, then this equals the sum of Euclidean distances of all segments in the path.
 
@@ -137,7 +137,7 @@ Method Descriptions
 
 Called when computing the cost between two connected points.
 
-Note that this function is hidden in the default ``AStar3D`` class.
+Note that this function is hidden in the default **AStar3D** class.
 
 .. rst-class:: classref-item-separator
 
@@ -151,7 +151,7 @@ Note that this function is hidden in the default ``AStar3D`` class.
 
 Called when estimating the cost between a point and the path's ending point.
 
-Note that this function is hidden in the default ``AStar3D`` class.
+Note that this function is hidden in the default **AStar3D** class.
 
 .. rst-class:: classref-item-separator
 
@@ -369,7 +369,7 @@ If you change the 2nd point's weight to 3, then the result will be ``[1, 4, 3]``
 
 :ref:`int<class_int>` **get_point_capacity** **(** **)** |const|
 
-Returns the capacity of the structure backing the points, useful in conjunction with ``reserve_space``.
+Returns the capacity of the structure backing the points, useful in conjunction with :ref:`reserve_space<class_AStar3D_method_reserve_space>`.
 
 .. rst-class:: classref-item-separator
 

+ 5 - 5
classes/class_astargrid2d.rst

@@ -412,7 +412,7 @@ Method Descriptions
 
 Called when computing the cost between two connected points.
 
-Note that this function is hidden in the default ``AStarGrid2D`` class.
+Note that this function is hidden in the default **AStarGrid2D** class.
 
 .. rst-class:: classref-item-separator
 
@@ -426,7 +426,7 @@ Note that this function is hidden in the default ``AStarGrid2D`` class.
 
 Called when estimating the cost between a point and the path's ending point.
 
-Note that this function is hidden in the default ``AStarGrid2D`` class.
+Note that this function is hidden in the default **AStarGrid2D** class.
 
 .. rst-class:: classref-item-separator
 
@@ -490,7 +490,7 @@ Returns an array with the IDs of the points that form the path found by AStar2D
 
 :ref:`PackedVector2Array<class_PackedVector2Array>` **get_point_path** **(** :ref:`Vector2i<class_Vector2i>` from_id, :ref:`Vector2i<class_Vector2i>` to_id **)**
 
-Returns an array with the points that are in the path found by AStarGrid2D between the given points. The array is ordered from the starting point to the ending point of the path.
+Returns an array with the points that are in the path found by **AStarGrid2D** between the given points. The array is ordered from the starting point to the ending point of the path.
 
 \ **Note:** This method is not thread-safe. If called from a :ref:`Thread<class_Thread>`, it will return an empty :ref:`PackedVector3Array<class_PackedVector3Array>` and will print an error message.
 
@@ -540,7 +540,7 @@ Indicates that the grid parameters were changed and :ref:`update<class_AStarGrid
 
 :ref:`bool<class_bool>` **is_in_bounds** **(** :ref:`int<class_int>` x, :ref:`int<class_int>` y **)** |const|
 
-Returns ``true`` if the ``x`` and ``y`` is a valid grid coordinate (id).
+Returns ``true`` if the ``x`` and ``y`` is a valid grid coordinate (id), i.e. if it is inside :ref:`region<class_AStarGrid2D_property_region>`. Equivalent to ``region.has_point(Vector2i(x, y))``.
 
 .. rst-class:: classref-item-separator
 
@@ -552,7 +552,7 @@ Returns ``true`` if the ``x`` and ``y`` is a valid grid coordinate (id).
 
 :ref:`bool<class_bool>` **is_in_boundsv** **(** :ref:`Vector2i<class_Vector2i>` id **)** |const|
 
-Returns ``true`` if the ``id`` vector is a valid grid coordinate.
+Returns ``true`` if the ``id`` vector is a valid grid coordinate, i.e. if it is inside :ref:`region<class_AStarGrid2D_property_region>`. Equivalent to ``region.has_point(id)``.
 
 .. rst-class:: classref-item-separator
 

+ 1 - 1
classes/class_audiostreamplayer.rst

@@ -286,7 +286,7 @@ The :ref:`AudioStream<class_AudioStream>` object to be played.
 - void **set_stream_paused** **(** :ref:`bool<class_bool>` value **)**
 - :ref:`bool<class_bool>` **get_stream_paused** **(** **)**
 
-If ``true``, the playback is paused. You can resume it by setting ``stream_paused`` to ``false``.
+If ``true``, the playback is paused. You can resume it by setting :ref:`stream_paused<class_AudioStreamPlayer_property_stream_paused>` to ``false``.
 
 .. rst-class:: classref-item-separator
 

+ 1 - 1
classes/class_audiostreamplayer2d.rst

@@ -298,7 +298,7 @@ The :ref:`AudioStream<class_AudioStream>` object to be played.
 - void **set_stream_paused** **(** :ref:`bool<class_bool>` value **)**
 - :ref:`bool<class_bool>` **get_stream_paused** **(** **)**
 
-If ``true``, the playback is paused. You can resume it by setting ``stream_paused`` to ``false``.
+If ``true``, the playback is paused. You can resume it by setting :ref:`stream_paused<class_AudioStreamPlayer2D_property_stream_paused>` to ``false``.
 
 .. rst-class:: classref-item-separator
 

+ 2 - 2
classes/class_basematerial3d.rst

@@ -2039,7 +2039,7 @@ If ``true``, the object receives no shadow that would otherwise be cast onto it.
 
 Distance at which the object appears fully opaque.
 
-\ **Note:** If ``distance_fade_max_distance`` is less than ``distance_fade_min_distance``, the behavior will be reversed. The object will start to fade away at ``distance_fade_max_distance`` and will fully disappear once it reaches ``distance_fade_min_distance``.
+\ **Note:** If :ref:`distance_fade_max_distance<class_BaseMaterial3D_property_distance_fade_max_distance>` is less than :ref:`distance_fade_min_distance<class_BaseMaterial3D_property_distance_fade_min_distance>`, the behavior will be reversed. The object will start to fade away at :ref:`distance_fade_max_distance<class_BaseMaterial3D_property_distance_fade_max_distance>` and will fully disappear once it reaches :ref:`distance_fade_min_distance<class_BaseMaterial3D_property_distance_fade_min_distance>`.
 
 .. rst-class:: classref-item-separator
 
@@ -2058,7 +2058,7 @@ Distance at which the object appears fully opaque.
 
 Distance at which the object starts to become visible. If the object is less than this distance away, it will be invisible.
 
-\ **Note:** If ``distance_fade_min_distance`` is greater than ``distance_fade_max_distance``, the behavior will be reversed. The object will start to fade away at ``distance_fade_max_distance`` and will fully disappear once it reaches ``distance_fade_min_distance``.
+\ **Note:** If :ref:`distance_fade_min_distance<class_BaseMaterial3D_property_distance_fade_min_distance>` is greater than :ref:`distance_fade_max_distance<class_BaseMaterial3D_property_distance_fade_max_distance>`, the behavior will be reversed. The object will start to fade away at :ref:`distance_fade_max_distance<class_BaseMaterial3D_property_distance_fade_max_distance>` and will fully disappear once it reaches :ref:`distance_fade_min_distance<class_BaseMaterial3D_property_distance_fade_min_distance>`.
 
 .. rst-class:: classref-item-separator
 

+ 1 - 1
classes/class_basis.rst

@@ -173,7 +173,7 @@ Constants
 
 The identity basis, with no rotation or scaling applied.
 
-This is identical to calling ``Basis()`` without any parameters. This constant can be used to make your code clearer, and for consistency with C#.
+This is identical to creating :ref:`Basis<class_Basis_constructor_Basis>` without any parameters. This constant can be used to make your code clearer, and for consistency with C#.
 
 .. _class_Basis_constant_FLIP_X:
 

+ 1 - 1
classes/class_bone2d.rst

@@ -166,7 +166,7 @@ Returns the length of the bone in the **Bone2D** node.
 
 :ref:`Transform2D<class_Transform2D>` **get_skeleton_rest** **(** **)** |const|
 
-Returns the node's :ref:`rest<class_Bone2D_property_rest>` ``Transform2D`` if it doesn't have a parent, or its rest pose relative to its parent.
+Returns the node's :ref:`rest<class_Bone2D_property_rest>` :ref:`Transform2D<class_Transform2D>` if it doesn't have a parent, or its rest pose relative to its parent.
 
 .. rst-class:: classref-item-separator
 

+ 1 - 1
classes/class_button.rst

@@ -636,7 +636,7 @@ Font size of the **Button**'s text.
 
 :ref:`StyleBox<class_StyleBox>` **focus**
 
-:ref:`StyleBox<class_StyleBox>` used when the **Button** is focused. The ``focus`` :ref:`StyleBox<class_StyleBox>` is displayed *over* the base :ref:`StyleBox<class_StyleBox>`, so a partially transparent :ref:`StyleBox<class_StyleBox>` should be used to ensure the base :ref:`StyleBox<class_StyleBox>` remains visible. A :ref:`StyleBox<class_StyleBox>` that represents an outline or an underline works well for this purpose. To disable the focus visual effect, assign a :ref:`StyleBoxEmpty<class_StyleBoxEmpty>` resource. Note that disabling the focus visual effect will harm keyboard/controller navigation usability, so this is not recommended for accessibility reasons.
+:ref:`StyleBox<class_StyleBox>` used when the **Button** is focused. The :ref:`focus<class_Button_theme_style_focus>` :ref:`StyleBox<class_StyleBox>` is displayed *over* the base :ref:`StyleBox<class_StyleBox>`, so a partially transparent :ref:`StyleBox<class_StyleBox>` should be used to ensure the base :ref:`StyleBox<class_StyleBox>` remains visible. A :ref:`StyleBox<class_StyleBox>` that represents an outline or an underline works well for this purpose. To disable the focus visual effect, assign a :ref:`StyleBoxEmpty<class_StyleBoxEmpty>` resource. Note that disabling the focus visual effect will harm keyboard/controller navigation usability, so this is not recommended for accessibility reasons.
 
 .. rst-class:: classref-item-separator
 

+ 1 - 1
classes/class_camera3d.rst

@@ -345,7 +345,7 @@ The distance to the far culling boundary for this camera relative to its local Z
 - void **set_fov** **(** :ref:`float<class_float>` value **)**
 - :ref:`float<class_float>` **get_fov** **(** **)**
 
-The camera's field of view angle (in degrees). Only applicable in perspective mode. Since :ref:`keep_aspect<class_Camera3D_property_keep_aspect>` locks one axis, ``fov`` sets the other axis' field of view angle.
+The camera's field of view angle (in degrees). Only applicable in perspective mode. Since :ref:`keep_aspect<class_Camera3D_property_keep_aspect>` locks one axis, :ref:`fov<class_Camera3D_property_fov>` sets the other axis' field of view angle.
 
 For reference, the default vertical field of view value (``75.0``) is equivalent to a horizontal FOV of:
 

+ 2 - 2
classes/class_characterbody2d.rst

@@ -423,7 +423,7 @@ If ``true``, during a jump against the ceiling, the body will slide, if ``false`
 - void **set_up_direction** **(** :ref:`Vector2<class_Vector2>` value **)**
 - :ref:`Vector2<class_Vector2>` **get_up_direction** **(** **)**
 
-Vector pointing upwards, used to determine what is a wall and what is a floor (or a ceiling) when calling :ref:`move_and_slide<class_CharacterBody2D_method_move_and_slide>`. Defaults to ``Vector2.UP``. As the vector will be normalized it can't be equal to :ref:`Vector2.ZERO<class_Vector2_constant_ZERO>`, if you want all collisions to be reported as walls, consider using :ref:`MOTION_MODE_FLOATING<class_CharacterBody2D_constant_MOTION_MODE_FLOATING>` as :ref:`motion_mode<class_CharacterBody2D_property_motion_mode>`.
+Vector pointing upwards, used to determine what is a wall and what is a floor (or a ceiling) when calling :ref:`move_and_slide<class_CharacterBody2D_method_move_and_slide>`. Defaults to :ref:`Vector2.UP<class_Vector2_constant_UP>`. As the vector will be normalized it can't be equal to :ref:`Vector2.ZERO<class_Vector2_constant_ZERO>`, if you want all collisions to be reported as walls, consider using :ref:`MOTION_MODE_FLOATING<class_CharacterBody2D_constant_MOTION_MODE_FLOATING>` as :ref:`motion_mode<class_CharacterBody2D_property_motion_mode>`.
 
 .. rst-class:: classref-item-separator
 
@@ -486,7 +486,7 @@ Allows to manually apply a snap to the floor regardless of the body's velocity.
 
 :ref:`float<class_float>` **get_floor_angle** **(** :ref:`Vector2<class_Vector2>` up_direction=Vector2(0, -1) **)** |const|
 
-Returns the floor's collision angle at the last collision point according to ``up_direction``, which is ``Vector2.UP`` by default. This value is always positive and only valid after calling :ref:`move_and_slide<class_CharacterBody2D_method_move_and_slide>` and when :ref:`is_on_floor<class_CharacterBody2D_method_is_on_floor>` returns ``true``.
+Returns the floor's collision angle at the last collision point according to ``up_direction``, which is :ref:`Vector2.UP<class_Vector2_constant_UP>` by default. This value is always positive and only valid after calling :ref:`move_and_slide<class_CharacterBody2D_method_move_and_slide>` and when :ref:`is_on_floor<class_CharacterBody2D_method_is_on_floor>` returns ``true``.
 
 .. rst-class:: classref-item-separator
 

+ 2 - 2
classes/class_characterbody3d.rst

@@ -427,7 +427,7 @@ If ``true``, during a jump against the ceiling, the body will slide, if ``false`
 - void **set_up_direction** **(** :ref:`Vector3<class_Vector3>` value **)**
 - :ref:`Vector3<class_Vector3>` **get_up_direction** **(** **)**
 
-Vector pointing upwards, used to determine what is a wall and what is a floor (or a ceiling) when calling :ref:`move_and_slide<class_CharacterBody3D_method_move_and_slide>`. Defaults to ``Vector3.UP``. As the vector will be normalized it can't be equal to :ref:`Vector3.ZERO<class_Vector3_constant_ZERO>`, if you want all collisions to be reported as walls, consider using :ref:`MOTION_MODE_FLOATING<class_CharacterBody3D_constant_MOTION_MODE_FLOATING>` as :ref:`motion_mode<class_CharacterBody3D_property_motion_mode>`.
+Vector pointing upwards, used to determine what is a wall and what is a floor (or a ceiling) when calling :ref:`move_and_slide<class_CharacterBody3D_method_move_and_slide>`. Defaults to :ref:`Vector3.UP<class_Vector3_constant_UP>`. As the vector will be normalized it can't be equal to :ref:`Vector3.ZERO<class_Vector3_constant_ZERO>`, if you want all collisions to be reported as walls, consider using :ref:`MOTION_MODE_FLOATING<class_CharacterBody3D_constant_MOTION_MODE_FLOATING>` as :ref:`motion_mode<class_CharacterBody3D_property_motion_mode>`.
 
 .. rst-class:: classref-item-separator
 
@@ -490,7 +490,7 @@ Allows to manually apply a snap to the floor regardless of the body's velocity.
 
 :ref:`float<class_float>` **get_floor_angle** **(** :ref:`Vector3<class_Vector3>` up_direction=Vector3(0, 1, 0) **)** |const|
 
-Returns the floor's collision angle at the last collision point according to ``up_direction``, which is ``Vector3.UP`` by default. This value is always positive and only valid after calling :ref:`move_and_slide<class_CharacterBody3D_method_move_and_slide>` and when :ref:`is_on_floor<class_CharacterBody3D_method_is_on_floor>` returns ``true``.
+Returns the floor's collision angle at the last collision point according to ``up_direction``, which is :ref:`Vector3.UP<class_Vector3_constant_UP>` by default. This value is always positive and only valid after calling :ref:`move_and_slide<class_CharacterBody3D_method_move_and_slide>` and when :ref:`is_on_floor<class_CharacterBody3D_method_is_on_floor>` returns ``true``.
 
 .. rst-class:: classref-item-separator
 

+ 3 - 3
classes/class_codeedit.rst

@@ -746,7 +746,7 @@ Prefixes to trigger an automatic indent.
 - void **set_indent_size** **(** :ref:`int<class_int>` value **)**
 - :ref:`int<class_int>` **get_indent_size** **(** **)**
 
-Size of tabs, if ``indent_use_spaces`` is enabled the number of spaces to use.
+Size of the tabulation indent (one :kbd:`Tab` press) in characters. If :ref:`indent_use_spaces<class_CodeEdit_property_indent_use_spaces>` is enabled the number of spaces to use.
 
 .. rst-class:: classref-item-separator
 
@@ -1015,7 +1015,7 @@ Removes all string delimiters.
 
 void **confirm_code_completion** **(** :ref:`bool<class_bool>` replace=false **)**
 
-Inserts the selected entry into the text. If ``replace`` is true, any existing text is replaced rather then merged.
+Inserts the selected entry into the text. If ``replace`` is true, any existing text is replaced rather than merged.
 
 .. rst-class:: classref-item-separator
 
@@ -1846,7 +1846,7 @@ Max number of options to display in the code completion popup at any one time.
 
 :ref:`int<class_int>` **completion_max_width** = ``50``
 
-Max width of options in the code completion popup. Options longer then this will be cut off.
+Max width of options in the code completion popup. Options longer than this will be cut off.
 
 .. rst-class:: classref-item-separator
 

+ 1 - 1
classes/class_collisionobject2d.rst

@@ -334,7 +334,7 @@ Method Descriptions
 
 void **_input_event** **(** :ref:`Viewport<class_Viewport>` viewport, :ref:`InputEvent<class_InputEvent>` event, :ref:`int<class_int>` shape_idx **)** |virtual|
 
-Accepts unhandled :ref:`InputEvent<class_InputEvent>`\ s. ``shape_idx`` is the child index of the clicked :ref:`Shape2D<class_Shape2D>`. Connect to the ``input_event`` signal to easily pick up these events.
+Accepts unhandled :ref:`InputEvent<class_InputEvent>`\ s. ``shape_idx`` is the child index of the clicked :ref:`Shape2D<class_Shape2D>`. Connect to :ref:`input_event<class_CollisionObject2D_signal_input_event>` to easily pick up these events.
 
 \ **Note:** :ref:`_input_event<class_CollisionObject2D_method__input_event>` requires :ref:`input_pickable<class_CollisionObject2D_property_input_pickable>` to be ``true`` and at least one :ref:`collision_layer<class_CollisionObject2D_property_collision_layer>` bit to be set.
 

+ 1 - 1
classes/class_collisionpolygon3d.rst

@@ -114,7 +114,7 @@ The collision margin for the generated :ref:`Shape3D<class_Shape3D>`. See :ref:`
 
 Array of vertices which define the 2D polygon in the local XY plane.
 
-\ **Note:** The returned value is a copy of the original. Methods which mutate the size or properties of the return value will not impact the original polygon. To change properties of the polygon, assign it to a temporary variable and make changes before reassigning the ``polygon`` member.
+\ **Note:** The returned value is a copy of the original. Methods which mutate the size or properties of the return value will not impact the original polygon. To change properties of the polygon, assign it to a temporary variable and make changes before reassigning the class property.
 
 .. |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 - 7
classes/class_curve3d.rst

@@ -346,9 +346,7 @@ If ``idx`` is out of bounds it is truncated to the first or last vertex, and ``t
 
 :ref:`Vector3<class_Vector3>` **sample_baked** **(** :ref:`float<class_float>` offset=0.0, :ref:`bool<class_bool>` cubic=false **)** |const|
 
-Returns a point within the curve at position ``offset``, where ``offset`` is measured as a distance in 3D units along the curve.
-
-To do that, it finds the two cached points where the ``offset`` lies between, then interpolates the values. This interpolation is cubic if ``cubic`` is set to ``true``, or linear if set to ``false``.
+Returns a point within the curve at position ``offset``, where ``offset`` is measured as a distance in 3D units along the curve. To do that, it finds the two cached points where the ``offset`` lies between, then interpolates the values. This interpolation is cubic if ``cubic`` is set to ``true``, or linear if set to ``false``.
 
 Cubic interpolation tends to follow the curves better, but linear is faster (and often, precise enough).
 
@@ -362,9 +360,7 @@ Cubic interpolation tends to follow the curves better, but linear is faster (and
 
 :ref:`Vector3<class_Vector3>` **sample_baked_up_vector** **(** :ref:`float<class_float>` offset, :ref:`bool<class_bool>` apply_tilt=false **)** |const|
 
-Returns an up vector within the curve at position ``offset``, where ``offset`` is measured as a distance in 3D units along the curve.
-
-To do that, it finds the two cached up vectors where the ``offset`` lies between, then interpolates the values. If ``apply_tilt`` is ``true``, an interpolated tilt is applied to the interpolated up vector.
+Returns an up vector within the curve at position ``offset``, where ``offset`` is measured as a distance in 3D units along the curve. To do that, it finds the two cached up vectors where the ``offset`` lies between, then interpolates the values. If ``apply_tilt`` is ``true``, an interpolated tilt is applied to the interpolated up vector.
 
 If the curve has no up vectors, the function sends an error to the console, and returns ``(0, 1, 0)``.
 
@@ -378,7 +374,7 @@ If the curve has no up vectors, the function sends an error to the console, and
 
 :ref:`Transform3D<class_Transform3D>` **sample_baked_with_rotation** **(** :ref:`float<class_float>` offset=0.0, :ref:`bool<class_bool>` cubic=false, :ref:`bool<class_bool>` apply_tilt=false **)** |const|
 
-Similar with ``interpolate_baked()``. The return value is ``Transform3D``, with ``origin`` as point position, ``basis.x`` as sideway vector, ``basis.y`` as up vector, ``basis.z`` as forward vector. When the curve length is 0, there is no reasonable way to calculate the rotation, all vectors aligned with global space axes.
+Returns a :ref:`Transform3D<class_Transform3D>` with ``origin`` as point position, ``basis.x`` as sideway vector, ``basis.y`` as up vector, ``basis.z`` as forward vector. When the curve length is 0, there is no reasonable way to calculate the rotation, all vectors aligned with global space axes. See also :ref:`sample_baked<class_Curve3D_method_sample_baked>`.
 
 .. rst-class:: classref-item-separator
 

+ 1 - 1
classes/class_dampedspringjoint2d.rst

@@ -59,7 +59,7 @@ Property Descriptions
 - void **set_damping** **(** :ref:`float<class_float>` value **)**
 - :ref:`float<class_float>` **get_damping** **(** **)**
 
-The spring joint's damping ratio. A value between ``0`` and ``1``. When the two bodies move into different directions the system tries to align them to the spring axis again. A high ``damping`` value forces the attached bodies to align faster.
+The spring joint's damping ratio. A value between ``0`` and ``1``. When the two bodies move into different directions the system tries to align them to the spring axis again. A high :ref:`damping<class_DampedSpringJoint2D_property_damping>` value forces the attached bodies to align faster.
 
 .. rst-class:: classref-item-separator
 

+ 2 - 0
classes/class_diraccess.rst

@@ -237,6 +237,8 @@ Changes the currently opened directory to the one passed as an argument. The arg
 
 Returns one of the :ref:`Error<enum_@GlobalScope_Error>` code constants (:ref:`@GlobalScope.OK<class_@GlobalScope_constant_OK>` on success).
 
+\ **Note:** The new directory must be within the same scope, e.g. when you had opened a directory inside ``res://``, you can't change it to ``user://`` directory. If you need to open a directory in another access scope, use :ref:`open<class_DirAccess_method_open>` to create a new instance instead.
+
 .. rst-class:: classref-item-separator
 
 ----

+ 92 - 6
classes/class_displayserver.rst

@@ -138,6 +138,8 @@ Methods
    +-------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | :ref:`bool<class_bool>`                                                 | :ref:`global_menu_is_item_disabled<class_DisplayServer_method_global_menu_is_item_disabled>` **(** :ref:`String<class_String>` menu_root, :ref:`int<class_int>` idx **)** |const|                                                                                                                                                                                                                                                                                                                     |
    +-------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`                                                 | :ref:`global_menu_is_item_hidden<class_DisplayServer_method_global_menu_is_item_hidden>` **(** :ref:`String<class_String>` menu_root, :ref:`int<class_int>` idx **)** |const|                                                                                                                                                                                                                                                                                                                         |
+   +-------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | :ref:`bool<class_bool>`                                                 | :ref:`global_menu_is_item_radio_checkable<class_DisplayServer_method_global_menu_is_item_radio_checkable>` **(** :ref:`String<class_String>` menu_root, :ref:`int<class_int>` idx **)** |const|                                                                                                                                                                                                                                                                                                       |
    +-------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | void                                                                    | :ref:`global_menu_remove_item<class_DisplayServer_method_global_menu_remove_item>` **(** :ref:`String<class_String>` menu_root, :ref:`int<class_int>` idx **)**                                                                                                                                                                                                                                                                                                                                       |
@@ -152,6 +154,10 @@ Methods
    +-------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | void                                                                    | :ref:`global_menu_set_item_disabled<class_DisplayServer_method_global_menu_set_item_disabled>` **(** :ref:`String<class_String>` menu_root, :ref:`int<class_int>` idx, :ref:`bool<class_bool>` disabled **)**                                                                                                                                                                                                                                                                                         |
    +-------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                                                    | :ref:`global_menu_set_item_hidden<class_DisplayServer_method_global_menu_set_item_hidden>` **(** :ref:`String<class_String>` menu_root, :ref:`int<class_int>` idx, :ref:`bool<class_bool>` hidden **)**                                                                                                                                                                                                                                                                                               |
+   +-------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                                                    | :ref:`global_menu_set_item_hover_callbacks<class_DisplayServer_method_global_menu_set_item_hover_callbacks>` **(** :ref:`String<class_String>` menu_root, :ref:`int<class_int>` idx, :ref:`Callable<class_Callable>` callback **)**                                                                                                                                                                                                                                                                   |
+   +-------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | void                                                                    | :ref:`global_menu_set_item_icon<class_DisplayServer_method_global_menu_set_item_icon>` **(** :ref:`String<class_String>` menu_root, :ref:`int<class_int>` idx, :ref:`Texture2D<class_Texture2D>` icon **)**                                                                                                                                                                                                                                                                                           |
    +-------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | void                                                                    | :ref:`global_menu_set_item_indentation_level<class_DisplayServer_method_global_menu_set_item_indentation_level>` **(** :ref:`String<class_String>` menu_root, :ref:`int<class_int>` idx, :ref:`int<class_int>` level **)**                                                                                                                                                                                                                                                                            |
@@ -172,6 +178,8 @@ Methods
    +-------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | void                                                                    | :ref:`global_menu_set_item_tooltip<class_DisplayServer_method_global_menu_set_item_tooltip>` **(** :ref:`String<class_String>` menu_root, :ref:`int<class_int>` idx, :ref:`String<class_String>` tooltip **)**                                                                                                                                                                                                                                                                                        |
    +-------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                                                    | :ref:`global_menu_set_popup_callbacks<class_DisplayServer_method_global_menu_set_popup_callbacks>` **(** :ref:`String<class_String>` menu_root, :ref:`Callable<class_Callable>` open_callback, :ref:`Callable<class_Callable>` close_callback **)**                                                                                                                                                                                                                                                   |
+   +-------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | :ref:`bool<class_bool>`                                                 | :ref:`has_feature<class_DisplayServer_method_has_feature>` **(** :ref:`Feature<enum_DisplayServer_Feature>` feature **)** |const|                                                                                                                                                                                                                                                                                                                                                                     |
    +-------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | :ref:`Vector2i<class_Vector2i>`                                         | :ref:`ime_get_selection<class_DisplayServer_method_ime_get_selection>` **(** **)** |const|                                                                                                                                                                                                                                                                                                                                                                                                            |
@@ -302,6 +310,8 @@ Methods
    +-------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | :ref:`Vector2i<class_Vector2i>`                                         | :ref:`window_get_size_with_decorations<class_DisplayServer_method_window_get_size_with_decorations>` **(** :ref:`int<class_int>` window_id=0 **)** |const|                                                                                                                                                                                                                                                                                                                                            |
    +-------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Vector2i<class_Vector2i>`                                         | :ref:`window_get_title_size<class_DisplayServer_method_window_get_title_size>` **(** :ref:`String<class_String>` title, :ref:`int<class_int>` window_id=0 **)** |const|                                                                                                                                                                                                                                                                                                                               |
+   +-------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | :ref:`VSyncMode<enum_DisplayServer_VSyncMode>`                          | :ref:`window_get_vsync_mode<class_DisplayServer_method_window_get_vsync_mode>` **(** :ref:`int<class_int>` window_id=0 **)** |const|                                                                                                                                                                                                                                                                                                                                                                  |
    +-------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | :ref:`bool<class_bool>`                                                 | :ref:`window_is_focused<class_DisplayServer_method_window_is_focused>` **(** :ref:`int<class_int>` window_id=0 **)** |const|                                                                                                                                                                                                                                                                                                                                                                          |
@@ -982,7 +992,11 @@ Maximized window mode, i.e. :ref:`Window<class_Window>` will occupy whole screen
 
 Full screen mode with full multi-window support.
 
-Full screen window cover the entire display area of a screen, have no border or decorations. Display video mode is not changed.
+Full screen window covers the entire display area of a screen and has no decorations. The display's video mode is not changed.
+
+\ **On Windows:** Multi-window full-screen mode has a 1px border of the :ref:`ProjectSettings.rendering/environment/defaults/default_clear_color<class_ProjectSettings_property_rendering/environment/defaults/default_clear_color>` color.
+
+\ **On macOS:** A new desktop is used to display the running project.
 
 \ **Note:** Regardless of the platform, enabling full screen will change the window size to match the monitor's size. Therefore, make sure your project supports :doc:`multiple resolutions <../tutorials/rendering/multiple_resolutions>` when enabling full screen mode.
 
@@ -994,11 +1008,11 @@ Full screen window cover the entire display area of a screen, have no border or
 
 A single window full screen mode. This mode has less overhead, but only one window can be open on a given screen at a time (opening a child window or application switching will trigger a full screen transition).
 
-Full screen window cover the entire display area of a screen, have no border or decorations. Display video mode is not changed.
+Full screen window covers the entire display area of a screen and has no border or decorations. The display's video mode is not changed.
 
 \ **On Windows:** Depending on video driver, full screen transition might cause screens to go black for a moment.
 
-\ **On macOS:** Exclusive full screen mode prevents Dock and Menu from showing up when the mouse pointer is hovering the edge of the screen.
+\ **On macOS:** A new desktop is used to display the running project. Exclusive full screen mode prevents Dock and Menu from showing up when the mouse pointer is hovering the edge of the screen.
 
 \ **On Linux (X11):** Exclusive full screen mode bypasses compositor.
 
@@ -1572,9 +1586,9 @@ Allows the ``process_id`` PID to steal focus from this window. In other words, t
 
 Displays OS native dialog for selecting files or directories in the file system.
 
-Callbacks have the following arguments: ``bool status, PackedStringArray selected_paths``.
+Callbacks have the following arguments: ``bool status, PackedStringArray selected_paths, int selected_filter_index``.
 
-\ **Note:** This method is implemented if the display server has the ``FEATURE_NATIVE_DIALOG`` feature.
+\ **Note:** This method is implemented if the display server has the :ref:`FEATURE_NATIVE_DIALOG<class_DisplayServer_constant_FEATURE_NATIVE_DIALOG>` feature.
 
 \ **Note:** This method is implemented on Linux, Windows and macOS.
 
@@ -2259,6 +2273,22 @@ See :ref:`global_menu_set_item_disabled<class_DisplayServer_method_global_menu_s
 
 ----
 
+.. _class_DisplayServer_method_global_menu_is_item_hidden:
+
+.. rst-class:: classref-method
+
+:ref:`bool<class_bool>` **global_menu_is_item_hidden** **(** :ref:`String<class_String>` menu_root, :ref:`int<class_int>` idx **)** |const|
+
+Returns ``true`` if the item at index ``idx`` is hidden.
+
+See :ref:`global_menu_set_item_hidden<class_DisplayServer_method_global_menu_set_item_hidden>` for more info on how to hide an item.
+
+\ **Note:** This method is implemented only on macOS.
+
+.. rst-class:: classref-item-separator
+
+----
+
 .. _class_DisplayServer_method_global_menu_is_item_radio_checkable:
 
 .. rst-class:: classref-method
@@ -2363,6 +2393,36 @@ Enables/disables the item at index ``idx``. When it is disabled, it can't be sel
 
 ----
 
+.. _class_DisplayServer_method_global_menu_set_item_hidden:
+
+.. rst-class:: classref-method
+
+void **global_menu_set_item_hidden** **(** :ref:`String<class_String>` menu_root, :ref:`int<class_int>` idx, :ref:`bool<class_bool>` hidden **)**
+
+Hides/shows the item at index ``idx``. When it is hidden, an item does not appear in a menu and its action cannot be invoked.
+
+\ **Note:** This method is implemented only on macOS.
+
+.. rst-class:: classref-item-separator
+
+----
+
+.. _class_DisplayServer_method_global_menu_set_item_hover_callbacks:
+
+.. rst-class:: classref-method
+
+void **global_menu_set_item_hover_callbacks** **(** :ref:`String<class_String>` menu_root, :ref:`int<class_int>` idx, :ref:`Callable<class_Callable>` callback **)**
+
+Sets the callback of the item at index ``idx``. The callback is emitted when an item is hovered.
+
+\ **Note:** The ``callback`` Callable needs to accept exactly one Variant parameter, the parameter passed to the Callable will be the value passed to the ``tag`` parameter when the menu item was created.
+
+\ **Note:** This method is implemented only on macOS.
+
+.. rst-class:: classref-item-separator
+
+----
+
 .. _class_DisplayServer_method_global_menu_set_item_icon:
 
 .. rst-class:: classref-method
@@ -2509,6 +2569,18 @@ Sets the :ref:`String<class_String>` tooltip of the item at the specified index
 
 ----
 
+.. _class_DisplayServer_method_global_menu_set_popup_callbacks:
+
+.. rst-class:: classref-method
+
+void **global_menu_set_popup_callbacks** **(** :ref:`String<class_String>` menu_root, :ref:`Callable<class_Callable>` open_callback, :ref:`Callable<class_Callable>` close_callback **)**
+
+Registers callables to emit when the menu is respectively about to show or closed.
+
+.. rst-class:: classref-item-separator
+
+----
+
 .. _class_DisplayServer_method_has_feature:
 
 .. rst-class:: classref-method
@@ -3053,7 +3125,7 @@ Each :ref:`Dictionary<class_Dictionary>` contains two :ref:`String<class_String>
 
 - ``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.
+- ``language`` is language code in ``lang_Variant`` format. The ``lang`` part is a 2 or 3-letter code based on the ISO-639 standard, in lowercase. The ``Variant`` part is an engine-dependent string describing country, region or/and dialect.
 
 Note that Godot depends on system libraries for text-to-speech functionality. These libraries are installed by default on Windows and macOS, but not on all Linux distributions. If they are not present, this method will return an empty list. This applies to both Godot users on Linux, as well as end-users on Linux running Godot games that use text-to-speech.
 
@@ -3459,6 +3531,20 @@ Returns the size of the window specified by ``window_id`` (in pixels), including
 
 ----
 
+.. _class_DisplayServer_method_window_get_title_size:
+
+.. rst-class:: classref-method
+
+:ref:`Vector2i<class_Vector2i>` **window_get_title_size** **(** :ref:`String<class_String>` title, :ref:`int<class_int>` window_id=0 **)** |const|
+
+Returns the estimated window title bar size (including text and window buttons) for the window specified by ``window_id`` (in pixels). This method does not change the window title.
+
+\ **Note:** This method is implemented on macOS and Windows.
+
+.. rst-class:: classref-item-separator
+
+----
+
 .. _class_DisplayServer_method_window_get_vsync_mode:
 
 .. rst-class:: classref-method

+ 6 - 6
classes/class_editorexportplatformmacos.rst

@@ -440,7 +440,7 @@ Array of the additional command line arguments passed to the code signing tool.
 
 :ref:`bool<class_bool>` **codesign/entitlements/address_book**
 
-Enable to allow access to contacts in the user's address book, if it's enabled you should also provide usage message in the ``privacy/address_book_usage_description`` option. See `com.apple.security.personal-information.addressbook <https://developer.apple.com/documentation/bundleresources/entitlements/com_apple_security_personal-information_addressbook>`__.
+Enable to allow access to contacts in the user's address book, if it's enabled you should also provide usage message in the :ref:`privacy/address_book_usage_description<class_EditorExportPlatformMacOS_property_privacy/address_book_usage_description>` option. See `com.apple.security.personal-information.addressbook <https://developer.apple.com/documentation/bundleresources/entitlements/com_apple_security_personal-information_addressbook>`__.
 
 .. rst-class:: classref-item-separator
 
@@ -634,7 +634,7 @@ Enable to allow app to send Apple events to other apps. See `com.apple.security.
 
 :ref:`bool<class_bool>` **codesign/entitlements/audio_input**
 
-Enable if you need to use the microphone or other audio input sources, if it's enabled you should also provide usage message in the ``privacy/microphone_usage_description`` option. See `com.apple.security.device.audio-input <https://developer.apple.com/documentation/bundleresources/entitlements/com_apple_security_device_audio-input>`__.
+Enable if you need to use the microphone or other audio input sources, if it's enabled you should also provide usage message in the :ref:`privacy/microphone_usage_description<class_EditorExportPlatformMacOS_property_privacy/microphone_usage_description>` option. See `com.apple.security.device.audio-input <https://developer.apple.com/documentation/bundleresources/entitlements/com_apple_security_device_audio-input>`__.
 
 .. rst-class:: classref-item-separator
 
@@ -646,7 +646,7 @@ Enable if you need to use the microphone or other audio input sources, if it's e
 
 :ref:`bool<class_bool>` **codesign/entitlements/calendars**
 
-Enable to allow access to the user's calendar, if it's enabled you should also provide usage message in the ``privacy/calendar_usage_description`` option. See `com.apple.security.personal-information.calendars <https://developer.apple.com/documentation/bundleresources/entitlements/com_apple_security_personal-information_calendars>`__.
+Enable to allow access to the user's calendar, if it's enabled you should also provide usage message in the :ref:`privacy/calendar_usage_description<class_EditorExportPlatformMacOS_property_privacy/calendar_usage_description>` option. See `com.apple.security.personal-information.calendars <https://developer.apple.com/documentation/bundleresources/entitlements/com_apple_security_personal-information_calendars>`__.
 
 .. rst-class:: classref-item-separator
 
@@ -658,7 +658,7 @@ Enable to allow access to the user's calendar, if it's enabled you should also p
 
 :ref:`bool<class_bool>` **codesign/entitlements/camera**
 
-Enable if you need to use the camera, if it's enabled you should also provide usage message in the ``privacy/camera_usage_description`` option. See `com.apple.security.device.camera <https://developer.apple.com/documentation/bundleresources/entitlements/com_apple_security_device_camera>`__.
+Enable if you need to use the camera, if it's enabled you should also provide usage message in the :ref:`privacy/camera_usage_description<class_EditorExportPlatformMacOS_property_privacy/camera_usage_description>` option. See `com.apple.security.device.camera <https://developer.apple.com/documentation/bundleresources/entitlements/com_apple_security_device_camera>`__.
 
 .. rst-class:: classref-item-separator
 
@@ -706,7 +706,7 @@ Allows app to load arbitrary libraries and frameworks (not signed with the same
 
 :ref:`bool<class_bool>` **codesign/entitlements/location**
 
-Enable if you need to use location information from Location Services, if it's enabled you should also provide usage message in the ``privacy/location_usage_description`` option. See `com.apple.security.personal-information.location <https://developer.apple.com/documentation/bundleresources/entitlements/com_apple_security_personal-information_location>`__.
+Enable if you need to use location information from Location Services, if it's enabled you should also provide usage message in the :ref:`privacy/location_usage_description<class_EditorExportPlatformMacOS_property_privacy/location_usage_description>` option. See `com.apple.security.personal-information.location <https://developer.apple.com/documentation/bundleresources/entitlements/com_apple_security_personal-information_location>`__.
 
 .. rst-class:: classref-item-separator
 
@@ -718,7 +718,7 @@ Enable if you need to use location information from Location Services, if it's e
 
 :ref:`bool<class_bool>` **codesign/entitlements/photos_library**
 
-Enable to allow access to the user's Photos library, if it's enabled you should also provide usage message in the ``privacy/photos_library_usage_description`` option. See `com.apple.security.personal-information.photos-library <https://developer.apple.com/documentation/bundleresources/entitlements/com_apple_security_personal-information_photos-library>`__.
+Enable to allow access to the user's Photos library, if it's enabled you should also provide usage message in the :ref:`privacy/photos_library_usage_description<class_EditorExportPlatformMacOS_property_privacy/photos_library_usage_description>` option. See `com.apple.security.personal-information.photos-library <https://developer.apple.com/documentation/bundleresources/entitlements/com_apple_security_personal-information_photos-library>`__.
 
 .. rst-class:: classref-item-separator
 

+ 2 - 2
classes/class_editorexportplugin.rst

@@ -471,9 +471,9 @@ void **add_ios_embedded_framework** **(** :ref:`String<class_String>` path **)**
 
 Adds a dynamic library (\*.dylib, \*.framework) to Linking Phase in iOS's Xcode project and embeds it into resulting binary.
 
-\ **Note:** For static libraries (\*.a) works in same way as ``add_ios_framework``.
+\ **Note:** For static libraries (\*.a) works in same way as :ref:`add_ios_framework<class_EditorExportPlugin_method_add_ios_framework>`.
 
-This method should not be used for System libraries as they are already present on the device.
+\ **Note:** This method should not be used for System libraries as they are already present on the device.
 
 .. rst-class:: classref-item-separator
 

+ 1 - 1
classes/class_editorfiledialog.rst

@@ -458,7 +458,7 @@ Returns the LineEdit for the selected file.
 
 :ref:`VBoxContainer<class_VBoxContainer>` **get_vbox** **(** **)**
 
-Returns the ``VBoxContainer`` used to display the file system.
+Returns the :ref:`VBoxContainer<class_VBoxContainer>` used to display the file system.
 
 \ **Warning:** This is a required internal node, removing and freeing it may cause a crash. If you wish to hide it or any of its children, use their :ref:`CanvasItem.visible<class_CanvasItem_property_visible>` property.
 

+ 29 - 1
classes/class_editorinterface.rst

@@ -88,6 +88,10 @@ Methods
    +-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | :ref:`Theme<class_Theme>`                                 | :ref:`get_editor_theme<class_EditorInterface_method_get_editor_theme>` **(** **)** |const|                                                                                                                                                             |
    +-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`SubViewport<class_SubViewport>`                     | :ref:`get_editor_viewport_2d<class_EditorInterface_method_get_editor_viewport_2d>` **(** **)** |const|                                                                                                                                                 |
+   +-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`SubViewport<class_SubViewport>`                     | :ref:`get_editor_viewport_3d<class_EditorInterface_method_get_editor_viewport_3d>` **(** :ref:`int<class_int>` idx=0 **)** |const|                                                                                                                     |
+   +-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | :ref:`FileSystemDock<class_FileSystemDock>`               | :ref:`get_file_system_dock<class_EditorInterface_method_get_file_system_dock>` **(** **)** |const|                                                                                                                                                     |
    +-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | :ref:`EditorInspector<class_EditorInspector>`             | :ref:`get_inspector<class_EditorInterface_method_get_inspector>` **(** **)** |const|                                                                                                                                                                   |
@@ -383,6 +387,30 @@ Returns the editor's :ref:`Theme<class_Theme>`.
 
 ----
 
+.. _class_EditorInterface_method_get_editor_viewport_2d:
+
+.. rst-class:: classref-method
+
+:ref:`SubViewport<class_SubViewport>` **get_editor_viewport_2d** **(** **)** |const|
+
+Returns the 2D editor :ref:`SubViewport<class_SubViewport>`. It does not have a camera. Instead, the view transforms are done directly and can be accessed with :ref:`Viewport.global_canvas_transform<class_Viewport_property_global_canvas_transform>`.
+
+.. rst-class:: classref-item-separator
+
+----
+
+.. _class_EditorInterface_method_get_editor_viewport_3d:
+
+.. rst-class:: classref-method
+
+:ref:`SubViewport<class_SubViewport>` **get_editor_viewport_3d** **(** :ref:`int<class_int>` idx=0 **)** |const|
+
+Returns the specified 3D editor :ref:`SubViewport<class_SubViewport>`, from ``0`` to ``3``. The viewport can be used to access the active editor cameras with :ref:`Viewport.get_camera_3d<class_Viewport_method_get_camera_3d>`.
+
+.. rst-class:: classref-item-separator
+
+----
+
 .. _class_EditorInterface_method_get_file_system_dock:
 
 .. rst-class:: classref-method
@@ -755,7 +783,7 @@ A feature profile can be created programmatically using the :ref:`EditorFeatureP
 
 void **set_main_screen_editor** **(** :ref:`String<class_String>` name **)**
 
-Sets the editor's current main screen to the one specified in ``name``. ``name`` must match the text of the tab in question exactly (``2D``, ``3D``, ``Script``, ``AssetLib``).
+Sets the editor's current main screen to the one specified in ``name``. ``name`` must match the title of the tab in question exactly (e.g. ``2D``, ``3D``, ``Script``, or ``AssetLib`` for default tabs).
 
 .. rst-class:: classref-item-separator
 

+ 5 - 5
classes/class_editornode3dgizmo.rst

@@ -12,14 +12,14 @@ EditorNode3DGizmo
 
 **Inherits:** :ref:`Node3DGizmo<class_Node3DGizmo>` **<** :ref:`RefCounted<class_RefCounted>` **<** :ref:`Object<class_Object>`
 
-Gizmo for editing Node3D objects.
+Gizmo for editing :ref:`Node3D<class_Node3D>` objects.
 
 .. rst-class:: classref-introduction-group
 
 Description
 -----------
 
-Gizmo that is used for providing custom visualization and editing (handles and subgizmos) for Node3D objects. Can be overridden to create custom gizmos, but for simple gizmos creating a :ref:`EditorNode3DGizmoPlugin<class_EditorNode3DGizmoPlugin>` is usually recommended.
+Gizmo that is used for providing custom visualization and editing (handles and subgizmos) for :ref:`Node3D<class_Node3D>` objects. Can be overridden to create custom gizmos, but for simple gizmos creating a :ref:`EditorNode3DGizmoPlugin<class_EditorNode3DGizmoPlugin>` is usually recommended.
 
 .. rst-class:: classref-reftable-group
 
@@ -204,7 +204,7 @@ The ``secondary`` argument is ``true`` when the edited handle is secondary (see
 
 void **_set_subgizmo_transform** **(** :ref:`int<class_int>` id, :ref:`Transform3D<class_Transform3D>` transform **)** |virtual|
 
-Override this method to update the node properties during subgizmo editing (see :ref:`_subgizmos_intersect_ray<class_EditorNode3DGizmo_method__subgizmos_intersect_ray>` and :ref:`_subgizmos_intersect_frustum<class_EditorNode3DGizmo_method__subgizmos_intersect_frustum>`). The ``transform`` is given in the Node3D's local coordinate system.
+Override this method to update the node properties during subgizmo editing (see :ref:`_subgizmos_intersect_ray<class_EditorNode3DGizmo_method__subgizmos_intersect_ray>` and :ref:`_subgizmos_intersect_frustum<class_EditorNode3DGizmo_method__subgizmos_intersect_frustum>`). The ``transform`` is given in the :ref:`Node3D<class_Node3D>`'s local coordinate system.
 
 .. rst-class:: classref-item-separator
 
@@ -216,7 +216,7 @@ Override this method to update the node properties during subgizmo editing (see
 
 :ref:`PackedInt32Array<class_PackedInt32Array>` **_subgizmos_intersect_frustum** **(** :ref:`Camera3D<class_Camera3D>` camera, :ref:`Plane[]<class_Plane>` frustum **)** |virtual| |const|
 
-Override this method to allow selecting subgizmos using mouse drag box selection. Given a ``camera`` and a ``frustum``, this method should return which subgizmos are contained within the frustum. The ``frustum`` argument consists of an ``Array`` with all the ``Plane``\ s that make up the selection frustum. The returned value should contain a list of unique subgizmo identifiers, which can have any non-negative value and will be used in other virtual methods like :ref:`_get_subgizmo_transform<class_EditorNode3DGizmo_method__get_subgizmo_transform>` or :ref:`_commit_subgizmos<class_EditorNode3DGizmo_method__commit_subgizmos>`.
+Override this method to allow selecting subgizmos using mouse drag box selection. Given a ``camera`` and a ``frustum``, this method should return which subgizmos are contained within the frustum. The ``frustum`` argument consists of an array with all the :ref:`Plane<class_Plane>`\ s that make up the selection frustum. The returned value should contain a list of unique subgizmo identifiers, which can have any non-negative value and will be used in other virtual methods like :ref:`_get_subgizmo_transform<class_EditorNode3DGizmo_method__get_subgizmo_transform>` or :ref:`_commit_subgizmos<class_EditorNode3DGizmo_method__commit_subgizmos>`.
 
 .. rst-class:: classref-item-separator
 
@@ -264,7 +264,7 @@ Adds collision triangles to the gizmo for picking. A :ref:`TriangleMesh<class_Tr
 
 void **add_handles** **(** :ref:`PackedVector3Array<class_PackedVector3Array>` handles, :ref:`Material<class_Material>` material, :ref:`PackedInt32Array<class_PackedInt32Array>` ids, :ref:`bool<class_bool>` billboard=false, :ref:`bool<class_bool>` secondary=false **)**
 
-Adds a list of handles (points) which can be used to edit the properties of the gizmo's Node3D. The ``ids`` argument can be used to specify a custom identifier for each handle, if an empty ``Array`` is passed, the ids will be assigned automatically from the ``handles`` argument order.
+Adds a list of handles (points) which can be used to edit the properties of the gizmo's :ref:`Node3D<class_Node3D>`. The ``ids`` argument can be used to specify a custom identifier for each handle, if an empty array is passed, the ids will be assigned automatically from the ``handles`` argument order.
 
 The ``secondary`` argument marks the added handles as secondary, meaning they will normally have lower selection priority than regular handles. When the user is holding the shift key secondary handles will switch to have higher priority than regular handles. This change in priority can be used to place multiple handles at the same point while still giving the user control on their selection.
 

+ 1 - 1
classes/class_editornode3dgizmoplugin.rst

@@ -297,7 +297,7 @@ Override this method to update the node properties during subgizmo editing (see
 
 :ref:`PackedInt32Array<class_PackedInt32Array>` **_subgizmos_intersect_frustum** **(** :ref:`EditorNode3DGizmo<class_EditorNode3DGizmo>` gizmo, :ref:`Camera3D<class_Camera3D>` camera, :ref:`Plane[]<class_Plane>` frustum_planes **)** |virtual| |const|
 
-Override this method to allow selecting subgizmos using mouse drag box selection. Given a ``camera`` and ``frustum_planes``, this method should return which subgizmos are contained within the frustums. The ``frustum_planes`` argument consists of an ``Array`` with all the ``Plane``\ s that make up the selection frustum. The returned value should contain a list of unique subgizmo identifiers, these identifiers can have any non-negative value and will be used in other virtual methods like :ref:`_get_subgizmo_transform<class_EditorNode3DGizmoPlugin_method__get_subgizmo_transform>` or :ref:`_commit_subgizmos<class_EditorNode3DGizmoPlugin_method__commit_subgizmos>`. Called for this plugin's active gizmos.
+Override this method to allow selecting subgizmos using mouse drag box selection. Given a ``camera`` and ``frustum_planes``, this method should return which subgizmos are contained within the frustums. The ``frustum_planes`` argument consists of an array with all the :ref:`Plane<class_Plane>`\ s that make up the selection frustum. The returned value should contain a list of unique subgizmo identifiers, these identifiers can have any non-negative value and will be used in other virtual methods like :ref:`_get_subgizmo_transform<class_EditorNode3DGizmoPlugin_method__get_subgizmo_transform>` or :ref:`_commit_subgizmos<class_EditorNode3DGizmoPlugin_method__commit_subgizmos>`. Called for this plugin's active gizmos.
 
 .. rst-class:: classref-item-separator
 

+ 8 - 0
classes/class_editorsceneformatimporter.rst

@@ -102,6 +102,14 @@ Constants
 
 
 
+.. _class_EditorSceneFormatImporter_constant_IMPORT_FORCE_DISABLE_MESH_COMPRESSION:
+
+.. rst-class:: classref-constant
+
+**IMPORT_FORCE_DISABLE_MESH_COMPRESSION** = ``64``
+
+
+
 .. rst-class:: classref-section-separator
 
 ----

+ 4 - 4
classes/class_environment.rst

@@ -551,7 +551,7 @@ Property Descriptions
 - void **set_adjustment_brightness** **(** :ref:`float<class_float>` value **)**
 - :ref:`float<class_float>` **get_adjustment_brightness** **(** **)**
 
-The global brightness value of the rendered scene. Effective only if ``adjustment_enabled`` is ``true``.
+The global brightness value of the rendered scene. Effective only if :ref:`adjustment_enabled<class_Environment_property_adjustment_enabled>` is ``true``.
 
 .. rst-class:: classref-item-separator
 
@@ -568,7 +568,7 @@ The global brightness value of the rendered scene. Effective only if ``adjustmen
 - void **set_adjustment_color_correction** **(** :ref:`Texture<class_Texture>` value **)**
 - :ref:`Texture<class_Texture>` **get_adjustment_color_correction** **(** **)**
 
-The :ref:`Texture2D<class_Texture2D>` or :ref:`Texture3D<class_Texture3D>` lookup table (LUT) to use for the built-in post-process color grading. Can use a :ref:`GradientTexture1D<class_GradientTexture1D>` for a 1-dimensional LUT, or a :ref:`Texture3D<class_Texture3D>` for a more complex LUT. Effective only if ``adjustment_enabled`` is ``true``.
+The :ref:`Texture2D<class_Texture2D>` or :ref:`Texture3D<class_Texture3D>` lookup table (LUT) to use for the built-in post-process color grading. Can use a :ref:`GradientTexture1D<class_GradientTexture1D>` for a 1-dimensional LUT, or a :ref:`Texture3D<class_Texture3D>` for a more complex LUT. Effective only if :ref:`adjustment_enabled<class_Environment_property_adjustment_enabled>` is ``true``.
 
 .. rst-class:: classref-item-separator
 
@@ -585,7 +585,7 @@ The :ref:`Texture2D<class_Texture2D>` or :ref:`Texture3D<class_Texture3D>` looku
 - void **set_adjustment_contrast** **(** :ref:`float<class_float>` value **)**
 - :ref:`float<class_float>` **get_adjustment_contrast** **(** **)**
 
-The global contrast value of the rendered scene (default value is 1). Effective only if ``adjustment_enabled`` is ``true``.
+The global contrast value of the rendered scene (default value is 1). Effective only if :ref:`adjustment_enabled<class_Environment_property_adjustment_enabled>` is ``true``.
 
 .. rst-class:: classref-item-separator
 
@@ -621,7 +621,7 @@ If ``true``, enables the ``adjustment_*`` properties provided by this resource.
 - void **set_adjustment_saturation** **(** :ref:`float<class_float>` value **)**
 - :ref:`float<class_float>` **get_adjustment_saturation** **(** **)**
 
-The global color saturation value of the rendered scene (default value is 1). Effective only if ``adjustment_enabled`` is ``true``.
+The global color saturation value of the rendered scene (default value is 1). Effective only if :ref:`adjustment_enabled<class_Environment_property_adjustment_enabled>` is ``true``.
 
 .. rst-class:: classref-item-separator
 

+ 2 - 2
classes/class_fileaccess.rst

@@ -970,7 +970,7 @@ Changes the file reading/writing cursor to the specified position (in bytes from
 
 :ref:`Error<enum_@GlobalScope_Error>` **set_hidden_attribute** **(** :ref:`String<class_String>` file, :ref:`bool<class_bool>` hidden **)** |static|
 
-Sets file ``hidden`` attribute.
+Sets file **hidden** attribute.
 
 \ **Note:** This method is implemented on iOS, BSD, macOS, and Windows.
 
@@ -984,7 +984,7 @@ Sets file ``hidden`` attribute.
 
 :ref:`Error<enum_@GlobalScope_Error>` **set_read_only_attribute** **(** :ref:`String<class_String>` file, :ref:`bool<class_bool>` ro **)** |static|
 
-Sets file ``read only`` attribute.
+Sets file **read only** attribute.
 
 \ **Note:** This method is implemented on iOS, BSD, macOS, and Windows.
 

+ 1 - 1
classes/class_fontfile.rst

@@ -914,7 +914,7 @@ Returns list of script support overrides.
 
 :ref:`Vector2i[]<class_Vector2i>` **get_size_cache_list** **(** :ref:`int<class_int>` cache_index **)** |const|
 
-Returns list of the font sizes in the cache. Each size is ``Vector2i`` with font size and outline size.
+Returns list of the font sizes in the cache. Each size is :ref:`Vector2i<class_Vector2i>` with font size and outline size.
 
 .. rst-class:: classref-item-separator
 

+ 1 - 1
classes/class_fontvariation.rst

@@ -255,7 +255,7 @@ Active face index in the TrueType / OpenType collection file.
 
 Font OpenType variation coordinates. More info: `OpenType variation tags <https://docs.microsoft.com/en-us/typography/opentype/spec/dvaraxisreg>`__.
 
-\ **Note:** This :ref:`Dictionary<class_Dictionary>` uses OpenType tags as keys. Variation axes can be identified both by tags(``int``) and names (``string``). Some axes might be accessible by multiple names. For example, ``wght`` refers to the same axis as ``weight``. Tags on the other hand are unique. To convert between names and tags, use :ref:`TextServer.name_to_tag<class_TextServer_method_name_to_tag>` and :ref:`TextServer.tag_to_name<class_TextServer_method_tag_to_name>`.
+\ **Note:** This :ref:`Dictionary<class_Dictionary>` uses OpenType tags as keys. Variation axes can be identified both by tags (:ref:`int<class_int>`, e.g. ``0x77678674``) and names (:ref:`String<class_String>`, e.g. ``wght``). Some axes might be accessible by multiple names. For example, ``wght`` refers to the same axis as ``weight``. Tags on the other hand are unique. To convert between names and tags, use :ref:`TextServer.name_to_tag<class_TextServer_method_name_to_tag>` and :ref:`TextServer.tag_to_name<class_TextServer_method_tag_to_name>`.
 
 \ **Note:** To get available variation axes of a font, use :ref:`Font.get_supported_variation_list<class_Font_method_get_supported_variation_list>`.
 

+ 2 - 2
classes/class_gpuparticles3d.rst

@@ -21,7 +21,7 @@ Description
 
 3D particle node used to create a variety of particle systems and effects. **GPUParticles3D** features an emitter that generates some number of particles at a given rate.
 
-Use the ``process_material`` property to add a :ref:`ParticleProcessMaterial<class_ParticleProcessMaterial>` to configure particle appearance and behavior. Alternatively, you can add a :ref:`ShaderMaterial<class_ShaderMaterial>` which will be applied to all particles.
+Use :ref:`process_material<class_GPUParticles3D_property_process_material>` to add a :ref:`ParticleProcessMaterial<class_ParticleProcessMaterial>` to configure particle appearance and behavior. Alternatively, you can add a :ref:`ShaderMaterial<class_ShaderMaterial>` which will be applied to all particles.
 
 .. rst-class:: classref-introduction-group
 
@@ -591,7 +591,7 @@ If ``true``, particles use the parent node's coordinate space (known as local co
 - void **set_one_shot** **(** :ref:`bool<class_bool>` value **)**
 - :ref:`bool<class_bool>` **get_one_shot** **(** **)**
 
-If ``true``, only ``amount`` particles will be emitted.
+If ``true``, only the number of particles equal to :ref:`amount<class_GPUParticles3D_property_amount>` will be emitted.
 
 .. rst-class:: classref-item-separator
 

+ 125 - 33
classes/class_graphedit.rst

@@ -21,7 +21,7 @@ Description
 
 **GraphEdit** provides tools for creation, manipulation, and display of various graphs. Its main purpose in the engine is to power the visual programming systems, such as visual shaders, but it is also available for use in user projects.
 
-\ **GraphEdit** by itself is only an empty container, representing an infinite grid where :ref:`GraphNode<class_GraphNode>`\ s can be placed. Each :ref:`GraphNode<class_GraphNode>` represents a node in the graph, a single unit of data in the connected scheme. **GraphEdit**, in turn, helps to control various interactions with nodes and between nodes. When the user attempts to connect, disconnect, or close a :ref:`GraphNode<class_GraphNode>`, a signal is emitted in the **GraphEdit**, but no action is taken by default. It is the responsibility of the programmer utilizing this control to implement the necessary logic to determine how each request should be handled.
+\ **GraphEdit** by itself is only an empty container, representing an infinite grid where :ref:`GraphNode<class_GraphNode>`\ s can be placed. Each :ref:`GraphNode<class_GraphNode>` represents a node in the graph, a single unit of data in the connected scheme. **GraphEdit**, in turn, helps to control various interactions with nodes and between nodes. When the user attempts to connect, disconnect, or delete a :ref:`GraphNode<class_GraphNode>`, a signal is emitted in the **GraphEdit**, but no action is taken by default. It is the responsibility of the programmer utilizing this control to implement the necessary logic to determine how each request should be handled.
 
 \ **Performance:** It is greatly advised to enable low-processor usage mode (see :ref:`OS.low_processor_usage_mode<class_OS_property_low_processor_usage_mode>`) when using GraphEdits.
 
@@ -33,8 +33,6 @@ Properties
 .. table::
    :widths: auto
 
-   +----------------------------------------------------+--------------------------------------------------------------------------------------------+---------------------------------------------------------------------------+
-   | :ref:`bool<class_bool>`                            | :ref:`arrange_nodes_button_hidden<class_GraphEdit_property_arrange_nodes_button_hidden>`   | ``false``                                                                 |
    +----------------------------------------------------+--------------------------------------------------------------------------------------------+---------------------------------------------------------------------------+
    | :ref:`bool<class_bool>`                            | clip_contents                                                                              | ``true`` (overrides :ref:`Control<class_Control_property_clip_contents>`) |
    +----------------------------------------------------+--------------------------------------------------------------------------------------------+---------------------------------------------------------------------------+
@@ -58,8 +56,18 @@ Properties
    +----------------------------------------------------+--------------------------------------------------------------------------------------------+---------------------------------------------------------------------------+
    | :ref:`Vector2<class_Vector2>`                      | :ref:`scroll_offset<class_GraphEdit_property_scroll_offset>`                               | ``Vector2(0, 0)``                                                         |
    +----------------------------------------------------+--------------------------------------------------------------------------------------------+---------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`                            | :ref:`show_arrange_button<class_GraphEdit_property_show_arrange_button>`                   | ``true``                                                                  |
+   +----------------------------------------------------+--------------------------------------------------------------------------------------------+---------------------------------------------------------------------------+
    | :ref:`bool<class_bool>`                            | :ref:`show_grid<class_GraphEdit_property_show_grid>`                                       | ``true``                                                                  |
    +----------------------------------------------------+--------------------------------------------------------------------------------------------+---------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`                            | :ref:`show_grid_buttons<class_GraphEdit_property_show_grid_buttons>`                       | ``true``                                                                  |
+   +----------------------------------------------------+--------------------------------------------------------------------------------------------+---------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`                            | :ref:`show_menu<class_GraphEdit_property_show_menu>`                                       | ``true``                                                                  |
+   +----------------------------------------------------+--------------------------------------------------------------------------------------------+---------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`                            | :ref:`show_minimap_button<class_GraphEdit_property_show_minimap_button>`                   | ``true``                                                                  |
+   +----------------------------------------------------+--------------------------------------------------------------------------------------------+---------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`                            | :ref:`show_zoom_buttons<class_GraphEdit_property_show_zoom_buttons>`                       | ``true``                                                                  |
+   +----------------------------------------------------+--------------------------------------------------------------------------------------------+---------------------------------------------------------------------------+
    | :ref:`bool<class_bool>`                            | :ref:`show_zoom_label<class_GraphEdit_property_show_zoom_label>`                           | ``false``                                                                 |
    +----------------------------------------------------+--------------------------------------------------------------------------------------------+---------------------------------------------------------------------------+
    | :ref:`int<class_int>`                              | :ref:`snapping_distance<class_GraphEdit_property_snapping_distance>`                       | ``20``                                                                    |
@@ -166,6 +174,8 @@ Theme Properties
    +-----------------------------------+--------------------------------------------------------------------------------------------+--------------------------+
    | :ref:`Texture2D<class_Texture2D>` | :ref:`zoom_reset<class_GraphEdit_theme_icon_zoom_reset>`                                   |                          |
    +-----------------------------------+--------------------------------------------------------------------------------------------+--------------------------+
+   | :ref:`StyleBox<class_StyleBox>`   | :ref:`menu_panel<class_GraphEdit_theme_style_menu_panel>`                                  |                          |
+   +-----------------------------------+--------------------------------------------------------------------------------------------+--------------------------+
    | :ref:`StyleBox<class_StyleBox>`   | :ref:`panel<class_GraphEdit_theme_style_panel>`                                            |                          |
    +-----------------------------------+--------------------------------------------------------------------------------------------+--------------------------+
 
@@ -190,18 +200,6 @@ Emitted at the beginning of a GraphNode movement.
 
 ----
 
-.. _class_GraphEdit_signal_close_nodes_request:
-
-.. rst-class:: classref-signal
-
-**close_nodes_request** **(** :ref:`StringName[]<class_StringName>` nodes **)**
-
-Emitted when attempting to remove a GraphNode from the GraphEdit. Provides a list of node names to be removed (all selected nodes, excluding nodes without closing button).
-
-.. rst-class:: classref-item-separator
-
-----
-
 .. _class_GraphEdit_signal_connection_drag_ended:
 
 .. rst-class:: classref-signal
@@ -274,6 +272,18 @@ Emitted when the user presses :kbd:`Ctrl + C`.
 
 ----
 
+.. _class_GraphEdit_signal_delete_nodes_request:
+
+.. rst-class:: classref-signal
+
+**delete_nodes_request** **(** :ref:`StringName[]<class_StringName>` nodes **)**
+
+Emitted when attempting to remove a GraphNode from the GraphEdit. Provides a list of node names to be removed (all selected nodes, excluding nodes without closing button).
+
+.. rst-class:: classref-item-separator
+
+----
+
 .. _class_GraphEdit_signal_disconnection_request:
 
 .. rst-class:: classref-signal
@@ -408,23 +418,6 @@ enum **PanningScheme**:
 Property Descriptions
 ---------------------
 
-.. _class_GraphEdit_property_arrange_nodes_button_hidden:
-
-.. rst-class:: classref-property
-
-:ref:`bool<class_bool>` **arrange_nodes_button_hidden** = ``false``
-
-.. rst-class:: classref-property-setget
-
-- void **set_arrange_nodes_button_hidden** **(** :ref:`bool<class_bool>` value **)**
-- :ref:`bool<class_bool>` **is_arrange_nodes_button_hidden** **(** **)**
-
-If ``true``, the Arrange Nodes button is hidden.
-
-.. rst-class:: classref-item-separator
-
-----
-
 .. _class_GraphEdit_property_connection_lines_antialiased:
 
 .. rst-class:: classref-property
@@ -578,6 +571,23 @@ The scroll offset.
 
 ----
 
+.. _class_GraphEdit_property_show_arrange_button:
+
+.. rst-class:: classref-property
+
+:ref:`bool<class_bool>` **show_arrange_button** = ``true``
+
+.. rst-class:: classref-property-setget
+
+- void **set_show_arrange_button** **(** :ref:`bool<class_bool>` value **)**
+- :ref:`bool<class_bool>` **is_showing_arrange_button** **(** **)**
+
+If ``true``, the button to automatically arrange graph nodes is visible.
+
+.. rst-class:: classref-item-separator
+
+----
+
 .. _class_GraphEdit_property_show_grid:
 
 .. rst-class:: classref-property
@@ -595,6 +605,74 @@ If ``true``, the grid is visible.
 
 ----
 
+.. _class_GraphEdit_property_show_grid_buttons:
+
+.. rst-class:: classref-property
+
+:ref:`bool<class_bool>` **show_grid_buttons** = ``true``
+
+.. rst-class:: classref-property-setget
+
+- void **set_show_grid_buttons** **(** :ref:`bool<class_bool>` value **)**
+- :ref:`bool<class_bool>` **is_showing_grid_buttons** **(** **)**
+
+If ``true``, buttons that allow to configure grid and snapping options are visible.
+
+.. rst-class:: classref-item-separator
+
+----
+
+.. _class_GraphEdit_property_show_menu:
+
+.. rst-class:: classref-property
+
+:ref:`bool<class_bool>` **show_menu** = ``true``
+
+.. rst-class:: classref-property-setget
+
+- void **set_show_menu** **(** :ref:`bool<class_bool>` value **)**
+- :ref:`bool<class_bool>` **is_showing_menu** **(** **)**
+
+If ``true``, the menu toolbar is visible.
+
+.. rst-class:: classref-item-separator
+
+----
+
+.. _class_GraphEdit_property_show_minimap_button:
+
+.. rst-class:: classref-property
+
+:ref:`bool<class_bool>` **show_minimap_button** = ``true``
+
+.. rst-class:: classref-property-setget
+
+- void **set_show_minimap_button** **(** :ref:`bool<class_bool>` value **)**
+- :ref:`bool<class_bool>` **is_showing_minimap_button** **(** **)**
+
+If ``true``, the button to toggle the minimap is visible.
+
+.. rst-class:: classref-item-separator
+
+----
+
+.. _class_GraphEdit_property_show_zoom_buttons:
+
+.. rst-class:: classref-property
+
+:ref:`bool<class_bool>` **show_zoom_buttons** = ``true``
+
+.. rst-class:: classref-property-setget
+
+- void **set_show_zoom_buttons** **(** :ref:`bool<class_bool>` value **)**
+- :ref:`bool<class_bool>` **is_showing_zoom_buttons** **(** **)**
+
+If ``true``, buttons that allow to change and reset the zoom level are visible.
+
+.. rst-class:: classref-item-separator
+
+----
+
 .. _class_GraphEdit_property_show_zoom_label:
 
 .. rst-class:: classref-property
@@ -606,7 +684,7 @@ If ``true``, the grid is visible.
 - void **set_show_zoom_label** **(** :ref:`bool<class_bool>` value **)**
 - :ref:`bool<class_bool>` **is_showing_zoom_label** **(** **)**
 
-If ``true``, makes a label with the current zoom level visible. The zoom value is displayed in percents.
+If ``true``, the label with the current zoom level is visible. The zoom level is displayed in percents.
 
 .. rst-class:: classref-item-separator
 
@@ -1215,6 +1293,20 @@ The icon for the zoom reset button.
 
 ----
 
+.. _class_GraphEdit_theme_style_menu_panel:
+
+.. rst-class:: classref-themeproperty
+
+:ref:`StyleBox<class_StyleBox>` **menu_panel**
+
+.. container:: contribute
+
+	There is currently no description for this theme property. Please help us by :ref:`contributing one <doc_updating_the_class_reference>`!
+
+.. rst-class:: classref-item-separator
+
+----
+
 .. _class_GraphEdit_theme_style_panel:
 
 .. rst-class:: classref-themeproperty

+ 3 - 3
classes/class_graphelement.rst

@@ -64,13 +64,13 @@ Theme Properties
 Signals
 -------
 
-.. _class_GraphElement_signal_close_request:
+.. _class_GraphElement_signal_delete_request:
 
 .. rst-class:: classref-signal
 
-**close_request** **(** **)**
+**delete_request** **(** **)**
 
-Emitted when closing the GraphElement is requested.
+Emitted when removing the GraphElement is requested.
 
 .. rst-class:: classref-item-separator
 

+ 3 - 3
classes/class_httprequest.rst

@@ -410,11 +410,11 @@ Property Descriptions
 
 If ``true``, this header will be added to each request: ``Accept-Encoding: gzip, deflate`` telling servers that it's okay to compress response bodies.
 
-Any Response body declaring a ``Content-Encoding`` of either ``gzip`` or ``deflate`` will then be automatically decompressed, and the uncompressed bytes will be delivered via ``request_completed``.
+Any Response body declaring a ``Content-Encoding`` of either ``gzip`` or ``deflate`` will then be automatically decompressed, and the uncompressed bytes will be delivered via :ref:`request_completed<class_HTTPRequest_signal_request_completed>`.
 
-If the user has specified their own ``Accept-Encoding`` header, then no header will be added regardless of ``accept_gzip``.
+If the user has specified their own ``Accept-Encoding`` header, then no header will be added regardless of :ref:`accept_gzip<class_HTTPRequest_property_accept_gzip>`.
 
-If ``false`` no header will be added, and no decompression will be performed on response bodies. The raw bytes of the response body will be returned via ``request_completed``.
+If ``false`` no header will be added, and no decompression will be performed on response bodies. The raw bytes of the response body will be returned via :ref:`request_completed<class_HTTPRequest_signal_request_completed>`.
 
 .. rst-class:: classref-item-separator
 

+ 2 - 2
classes/class_image.rst

@@ -21,7 +21,7 @@ Description
 
 Native image datatype. Contains image data which can be converted to an :ref:`ImageTexture<class_ImageTexture>` and provides commonly used *image processing* methods. The maximum width and height for an **Image** are :ref:`MAX_WIDTH<class_Image_constant_MAX_WIDTH>` and :ref:`MAX_HEIGHT<class_Image_constant_MAX_HEIGHT>`.
 
-An **Image** cannot be assigned to a ``texture`` property of an object directly (such as :ref:`Sprite2D<class_Sprite2D>`), and has to be converted manually to an :ref:`ImageTexture<class_ImageTexture>` first.
+An **Image** cannot be assigned to a texture property of an object directly (such as :ref:`Sprite2D.texture<class_Sprite2D_property_texture>`), and has to be converted manually to an :ref:`ImageTexture<class_ImageTexture>` first.
 
 \ **Note:** The maximum image size is 16384×16384 pixels due to graphics hardware limitations. Larger images may fail to import.
 
@@ -1224,7 +1224,7 @@ Returns the number of mipmap levels or 0 if the image has no mipmaps. The larges
 
 :ref:`int<class_int>` **get_mipmap_offset** **(** :ref:`int<class_int>` mipmap **)** |const|
 
-Returns the offset where the image's mipmap with index ``mipmap`` is stored in the ``data`` dictionary.
+Returns the offset where the image's mipmap with index ``mipmap`` is stored in the :ref:`data<class_Image_property_data>` dictionary.
 
 .. rst-class:: classref-item-separator
 

+ 1 - 1
classes/class_imagetexturelayered.rst

@@ -68,7 +68,7 @@ void **update_layer** **(** :ref:`Image<class_Image>` image, :ref:`int<class_int
 
 Replaces the existing :ref:`Image<class_Image>` data at the given ``layer`` with this new image.
 
-The given :ref:`Image<class_Image>` must have the same width, height, image format and mipmapping setting (a ``bool`` value) as the rest of the referenced images.
+The given :ref:`Image<class_Image>` must have the same width, height, image format, and mipmapping flag as the rest of the referenced images.
 
 If the image format is unsupported, it will be decompressed and converted to a similar and supported :ref:`Format<enum_Image_Format>`.
 

+ 1 - 1
classes/class_joint2d.rst

@@ -73,7 +73,7 @@ Property Descriptions
 - void **set_bias** **(** :ref:`float<class_float>` value **)**
 - :ref:`float<class_float>` **get_bias** **(** **)**
 
-When :ref:`node_a<class_Joint2D_property_node_a>` and :ref:`node_b<class_Joint2D_property_node_b>` move in different directions the ``bias`` controls how fast the joint pulls them back to their original position. The lower the ``bias`` the more the two bodies can pull on the joint.
+When :ref:`node_a<class_Joint2D_property_node_a>` and :ref:`node_b<class_Joint2D_property_node_b>` move in different directions the :ref:`bias<class_Joint2D_property_bias>` controls how fast the joint pulls them back to their original position. The lower the :ref:`bias<class_Joint2D_property_bias>` the more the two bodies can pull on the joint.
 
 When set to ``0``, the default value from :ref:`ProjectSettings.physics/2d/solver/default_constraint_bias<class_ProjectSettings_property_physics/2d/solver/default_constraint_bias>` is used.
 

+ 1 - 1
classes/class_label.rst

@@ -252,7 +252,7 @@ Language code used for line-breaking and text shaping algorithms, if left empty
 - void **set_lines_skipped** **(** :ref:`int<class_int>` value **)**
 - :ref:`int<class_int>` **get_lines_skipped** **(** **)**
 
-The node ignores the first ``lines_skipped`` lines before it starts to display text.
+The number of the lines ignored and not displayed from the start of the :ref:`text<class_Label_property_text>` value.
 
 .. rst-class:: classref-item-separator
 

+ 1 - 1
classes/class_line2d.rst

@@ -397,7 +397,7 @@ Determines the miter limit of the polyline. Normally, when :ref:`joint_mode<clas
 - void **set_texture** **(** :ref:`Texture2D<class_Texture2D>` value **)**
 - :ref:`Texture2D<class_Texture2D>` **get_texture** **(** **)**
 
-The texture used for the polyline. Uses ``texture_mode`` for drawing style.
+The texture used for the polyline. Uses :ref:`texture_mode<class_Line2D_property_texture_mode>` for drawing style.
 
 .. rst-class:: classref-item-separator
 

+ 1 - 1
classes/class_linkbutton.rst

@@ -416,7 +416,7 @@ Font size of the **LinkButton**'s text.
 
 :ref:`StyleBox<class_StyleBox>` **focus**
 
-:ref:`StyleBox<class_StyleBox>` used when the **LinkButton** is focused. The ``focus`` :ref:`StyleBox<class_StyleBox>` is displayed *over* the base :ref:`StyleBox<class_StyleBox>`, so a partially transparent :ref:`StyleBox<class_StyleBox>` should be used to ensure the base :ref:`StyleBox<class_StyleBox>` remains visible. A :ref:`StyleBox<class_StyleBox>` that represents an outline or an underline works well for this purpose. To disable the focus visual effect, assign a :ref:`StyleBoxEmpty<class_StyleBoxEmpty>` resource. Note that disabling the focus visual effect will harm keyboard/controller navigation usability, so this is not recommended for accessibility reasons.
+:ref:`StyleBox<class_StyleBox>` used when the **LinkButton** is focused. The :ref:`focus<class_LinkButton_theme_style_focus>` :ref:`StyleBox<class_StyleBox>` is displayed *over* the base :ref:`StyleBox<class_StyleBox>`, so a partially transparent :ref:`StyleBox<class_StyleBox>` should be used to ensure the base :ref:`StyleBox<class_StyleBox>` remains visible. A :ref:`StyleBox<class_StyleBox>` that represents an outline or an underline works well for this purpose. To disable the focus visual effect, assign a :ref:`StyleBoxEmpty<class_StyleBoxEmpty>` resource. Note that disabling the focus visual effect will harm keyboard/controller navigation usability, so this is not recommended for accessibility reasons.
 
 .. |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.)`

+ 4 - 4
classes/class_margincontainer.rst

@@ -86,7 +86,7 @@ Theme Property Descriptions
 
 :ref:`int<class_int>` **margin_bottom** = ``0``
 
-All direct children of **MarginContainer** will have a bottom margin of ``margin_bottom`` pixels.
+Offsets towards the inside direct children of the container by this amount of pixels from the bottom.
 
 .. rst-class:: classref-item-separator
 
@@ -98,7 +98,7 @@ All direct children of **MarginContainer** will have a bottom margin of ``margin
 
 :ref:`int<class_int>` **margin_left** = ``0``
 
-All direct children of **MarginContainer** will have a left margin of ``margin_left`` pixels.
+Offsets towards the inside direct children of the container by this amount of pixels from the left.
 
 .. rst-class:: classref-item-separator
 
@@ -110,7 +110,7 @@ All direct children of **MarginContainer** will have a left margin of ``margin_l
 
 :ref:`int<class_int>` **margin_right** = ``0``
 
-All direct children of **MarginContainer** will have a right margin of ``margin_right`` pixels.
+Offsets towards the inside direct children of the container by this amount of pixels from the right.
 
 .. rst-class:: classref-item-separator
 
@@ -122,7 +122,7 @@ All direct children of **MarginContainer** will have a right margin of ``margin_
 
 :ref:`int<class_int>` **margin_top** = ``0``
 
-All direct children of **MarginContainer** will have a top margin of ``margin_top`` pixels.
+Offsets towards the inside direct children of the container by this amount of pixels from the top.
 
 .. |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.)`

+ 1 - 1
classes/class_menubutton.rst

@@ -115,7 +115,7 @@ The number of items currently in the list.
 - void **set_switch_on_hover** **(** :ref:`bool<class_bool>` value **)**
 - :ref:`bool<class_bool>` **is_switch_on_hover** **(** **)**
 
-If ``true``, when the cursor hovers above another **MenuButton** within the same parent which also has ``switch_on_hover`` enabled, it will close the current **MenuButton** and open the other one.
+If ``true``, when the cursor hovers above another **MenuButton** within the same parent which also has :ref:`switch_on_hover<class_MenuButton_property_switch_on_hover>` enabled, it will close the current **MenuButton** and open the other one.
 
 .. rst-class:: classref-section-separator
 

+ 2 - 2
classes/class_meshdatatool.rst

@@ -90,7 +90,7 @@ Methods
    +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | void                                                | :ref:`clear<class_MeshDataTool_method_clear>` **(** **)**                                                                                                                  |
    +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-   | :ref:`Error<enum_@GlobalScope_Error>`               | :ref:`commit_to_surface<class_MeshDataTool_method_commit_to_surface>` **(** :ref:`ArrayMesh<class_ArrayMesh>` mesh **)**                                                   |
+   | :ref:`Error<enum_@GlobalScope_Error>`               | :ref:`commit_to_surface<class_MeshDataTool_method_commit_to_surface>` **(** :ref:`ArrayMesh<class_ArrayMesh>` mesh, :ref:`int<class_int>` compression_flags=0 **)**        |
    +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | :ref:`Error<enum_@GlobalScope_Error>`               | :ref:`create_from_surface<class_MeshDataTool_method_create_from_surface>` **(** :ref:`ArrayMesh<class_ArrayMesh>` mesh, :ref:`int<class_int>` surface **)**                |
    +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
@@ -190,7 +190,7 @@ Clears all data currently in MeshDataTool.
 
 .. rst-class:: classref-method
 
-:ref:`Error<enum_@GlobalScope_Error>` **commit_to_surface** **(** :ref:`ArrayMesh<class_ArrayMesh>` mesh **)**
+:ref:`Error<enum_@GlobalScope_Error>` **commit_to_surface** **(** :ref:`ArrayMesh<class_ArrayMesh>` mesh, :ref:`int<class_int>` compression_flags=0 **)**
 
 Adds a new surface to specified :ref:`Mesh<class_Mesh>` with edited data.
 

+ 1 - 1
classes/class_moviewriter.rst

@@ -29,7 +29,7 @@ Godot has 2 built-in **MovieWriter**\ s:
 
 If you need to encode to a different format or pipe a stream through third-party software, you can extend the **MovieWriter** class to create your own movie writers. This should typically be done using GDExtension for performance reasons.
 
-\ **Editor usage:** A default movie file path can be specified in :ref:`ProjectSettings.editor/movie_writer/movie_file<class_ProjectSettings_property_editor/movie_writer/movie_file>`. Alternatively, for running single scenes, a ``movie_path`` metadata can be added to the root node, specifying the path to a movie file that will be used when recording that scene. Once a path is set, click the video reel icon in the top-right corner of the editor to enable Movie Maker mode, then run any scene as usual. The engine will start recording as soon as the splash screen is finished, and it will only stop recording when the engine quits. Click the video reel icon again to disable Movie Maker mode. Note that toggling Movie Maker mode does not affect project instances that are already running.
+\ **Editor usage:** A default movie file path can be specified in :ref:`ProjectSettings.editor/movie_writer/movie_file<class_ProjectSettings_property_editor/movie_writer/movie_file>`. Alternatively, for running single scenes, a ``movie_file`` metadata can be added to the root node, specifying the path to a movie file that will be used when recording that scene. Once a path is set, click the video reel icon in the top-right corner of the editor to enable Movie Maker mode, then run any scene as usual. The engine will start recording as soon as the splash screen is finished, and it will only stop recording when the engine quits. Click the video reel icon again to disable Movie Maker mode. Note that toggling Movie Maker mode does not affect project instances that are already running.
 
 \ **Note:** MovieWriter is available for use in both the editor and exported projects, but it is *not* designed for use by end users to record videos while playing. Players wishing to record gameplay videos should install tools such as `OBS Studio <https://obsproject.com/>`__ or `SimpleScreenRecorder <https://www.maartenbaert.be/simplescreenrecorder/>`__ instead.
 

+ 1 - 1
classes/class_navigationagent2d.rst

@@ -607,7 +607,7 @@ The distance threshold before the final target point is considered to be reached
 - void **set_target_position** **(** :ref:`Vector2<class_Vector2>` value **)**
 - :ref:`Vector2<class_Vector2>` **get_target_position** **(** **)**
 
-If set a new navigation path from the current agent position to the :ref:`target_position<class_NavigationAgent2D_property_target_position>` is requested from the NavigationServer.
+If set, a new navigation path from the current agent position to the :ref:`target_position<class_NavigationAgent2D_property_target_position>` is requested from the NavigationServer.
 
 .. rst-class:: classref-item-separator
 

+ 1 - 1
classes/class_navigationagent3d.rst

@@ -628,7 +628,7 @@ The distance threshold before the final target point is considered to be reached
 - void **set_target_position** **(** :ref:`Vector3<class_Vector3>` value **)**
 - :ref:`Vector3<class_Vector3>` **get_target_position** **(** **)**
 
-If set a new navigation path from the current agent position to the :ref:`target_position<class_NavigationAgent3D_property_target_position>` is requested from the NavigationServer.
+If set, a new navigation path from the current agent position to the :ref:`target_position<class_NavigationAgent3D_property_target_position>` is requested from the NavigationServer.
 
 .. rst-class:: classref-item-separator
 

+ 3 - 3
classes/class_navigationmeshsourcegeometrydata3d.rst

@@ -64,7 +64,7 @@ Method Descriptions
 
 void **add_faces** **(** :ref:`PackedVector3Array<class_PackedVector3Array>` faces, :ref:`Transform3D<class_Transform3D>` xform **)**
 
-Adds an array of vertex positions to the geometry data for navigation mesh baking to form triangulated faces. For each face the array must have three vertex positions in clockwise winding order. Since :ref:`NavigationMesh<class_NavigationMesh>` resource have no transform all vertex positions need to be offset by the node's transform using the ``xform`` parameter.
+Adds an array of vertex positions to the geometry data for navigation mesh baking to form triangulated faces. For each face the array must have three vertex positions in clockwise winding order. Since :ref:`NavigationMesh<class_NavigationMesh>` resources have no transform, all vertex positions need to be offset by the node's transform using ``xform``.
 
 .. rst-class:: classref-item-separator
 
@@ -76,7 +76,7 @@ Adds an array of vertex positions to the geometry data for navigation mesh bakin
 
 void **add_mesh** **(** :ref:`Mesh<class_Mesh>` mesh, :ref:`Transform3D<class_Transform3D>` xform **)**
 
-Adds the geometry data of a :ref:`Mesh<class_Mesh>` resource to the navigation mesh baking data. The mesh must have valid triangulated mesh data to be considered. Since :ref:`NavigationMesh<class_NavigationMesh>` resource have no transform all vertex positions need to be offset by the node's transform using the ``xform`` parameter.
+Adds the geometry data of a :ref:`Mesh<class_Mesh>` resource to the navigation mesh baking data. The mesh must have valid triangulated mesh data to be considered. Since :ref:`NavigationMesh<class_NavigationMesh>` resources have no transform, all vertex positions need to be offset by the node's transform using ``xform``.
 
 .. rst-class:: classref-item-separator
 
@@ -88,7 +88,7 @@ Adds the geometry data of a :ref:`Mesh<class_Mesh>` resource to the navigation m
 
 void **add_mesh_array** **(** :ref:`Array<class_Array>` mesh_array, :ref:`Transform3D<class_Transform3D>` xform **)**
 
-Adds an :ref:`Array<class_Array>` the size of :ref:`Mesh.ARRAY_MAX<class_Mesh_constant_ARRAY_MAX>` and with vertices at index :ref:`Mesh.ARRAY_VERTEX<class_Mesh_constant_ARRAY_VERTEX>` and indices at index :ref:`Mesh.ARRAY_INDEX<class_Mesh_constant_ARRAY_INDEX>` to the navigation mesh baking data. The array must have valid triangulated mesh data to be considered. Since :ref:`NavigationMesh<class_NavigationMesh>` resource have no transform all vertex positions need to be offset by the node's transform using the ``xform`` parameter.
+Adds an :ref:`Array<class_Array>` the size of :ref:`Mesh.ARRAY_MAX<class_Mesh_constant_ARRAY_MAX>` and with vertices at index :ref:`Mesh.ARRAY_VERTEX<class_Mesh_constant_ARRAY_VERTEX>` and indices at index :ref:`Mesh.ARRAY_INDEX<class_Mesh_constant_ARRAY_INDEX>` to the navigation mesh baking data. The array must have valid triangulated mesh data to be considered. Since :ref:`NavigationMesh<class_NavigationMesh>` resources have no transform, all vertex positions need to be offset by the node's transform using ``xform``.
 
 .. rst-class:: classref-item-separator
 

+ 1 - 1
classes/class_navigationpathqueryparameters2d.rst

@@ -171,7 +171,7 @@ Property Descriptions
 - void **set_map** **(** :ref:`RID<class_RID>` value **)**
 - :ref:`RID<class_RID>` **get_map** **(** **)**
 
-The navigation ``map`` :ref:`RID<class_RID>` used in the path query.
+The navigation map :ref:`RID<class_RID>` used in the path query.
 
 .. rst-class:: classref-item-separator
 

+ 1 - 1
classes/class_navigationpathqueryparameters3d.rst

@@ -171,7 +171,7 @@ Property Descriptions
 - void **set_map** **(** :ref:`RID<class_RID>` value **)**
 - :ref:`RID<class_RID>` **get_map** **(** **)**
 
-The navigation ``map`` :ref:`RID<class_RID>` used in the path query.
+The navigation map :ref:`RID<class_RID>` used in the path query.
 
 .. rst-class:: classref-item-separator
 

+ 2 - 2
classes/class_navigationregion2d.rst

@@ -194,7 +194,7 @@ Determines if the **NavigationRegion2D** is enabled or disabled.
 - void **set_enter_cost** **(** :ref:`float<class_float>` value **)**
 - :ref:`float<class_float>` **get_enter_cost** **(** **)**
 
-When pathfinding enters this region's navigation mesh from another regions navigation mesh the ``enter_cost`` value is added to the path distance for determining the shortest path.
+When pathfinding enters this region's navigation mesh from another regions navigation mesh the :ref:`enter_cost<class_NavigationRegion2D_property_enter_cost>` value is added to the path distance for determining the shortest path.
 
 .. rst-class:: classref-item-separator
 
@@ -245,7 +245,7 @@ The :ref:`NavigationPolygon<class_NavigationPolygon>` resource to use.
 - void **set_travel_cost** **(** :ref:`float<class_float>` value **)**
 - :ref:`float<class_float>` **get_travel_cost** **(** **)**
 
-When pathfinding moves inside this region's navigation mesh the traveled distances are multiplied with ``travel_cost`` for determining the shortest path.
+When pathfinding moves inside this region's navigation mesh the traveled distances are multiplied with :ref:`travel_cost<class_NavigationRegion2D_property_travel_cost>` for determining the shortest path.
 
 .. rst-class:: classref-item-separator
 

+ 2 - 2
classes/class_navigationregion3d.rst

@@ -150,7 +150,7 @@ Determines if the **NavigationRegion3D** is enabled or disabled.
 - void **set_enter_cost** **(** :ref:`float<class_float>` value **)**
 - :ref:`float<class_float>` **get_enter_cost** **(** **)**
 
-When pathfinding enters this region's navigation mesh from another regions navigation mesh the ``enter_cost`` value is added to the path distance for determining the shortest path.
+When pathfinding enters this region's navigation mesh from another regions navigation mesh the :ref:`enter_cost<class_NavigationRegion3D_property_enter_cost>` value is added to the path distance for determining the shortest path.
 
 .. rst-class:: classref-item-separator
 
@@ -201,7 +201,7 @@ The :ref:`NavigationMesh<class_NavigationMesh>` resource to use.
 - void **set_travel_cost** **(** :ref:`float<class_float>` value **)**
 - :ref:`float<class_float>` **get_travel_cost** **(** **)**
 
-When pathfinding moves inside this region's navigation mesh the traveled distances are multiplied with ``travel_cost`` for determining the shortest path.
+When pathfinding moves inside this region's navigation mesh the traveled distances are multiplied with :ref:`travel_cost<class_NavigationRegion3D_property_travel_cost>` for determining the shortest path.
 
 .. rst-class:: classref-item-separator
 

+ 52 - 2
classes/class_node.rst

@@ -173,6 +173,10 @@ Methods
    +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | :ref:`SceneTree<class_SceneTree>`                 | :ref:`get_tree<class_Node_method_get_tree>` **(** **)** |const|                                                                                                                                                                |
    +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`String<class_String>`                       | :ref:`get_tree_string<class_Node_method_get_tree_string>` **(** **)**                                                                                                                                                          |
+   +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`String<class_String>`                       | :ref:`get_tree_string_pretty<class_Node_method_get_tree_string_pretty>` **(** **)**                                                                                                                                            |
+   +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | :ref:`Viewport<class_Viewport>`                   | :ref:`get_viewport<class_Node_method_get_viewport>` **(** **)** |const|                                                                                                                                                        |
    +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | :ref:`Window<class_Window>`                       | :ref:`get_window<class_Node_method_get_window>` **(** **)** |const|                                                                                                                                                            |
@@ -1351,7 +1355,7 @@ Corresponds to the :ref:`NOTIFICATION_READY<class_Node_constant_NOTIFICATION_REA
 
 Usually used for initialization. For even earlier initialization, :ref:`Object._init<class_Object_method__init>` may be used. See also :ref:`_enter_tree<class_Node_method__enter_tree>`.
 
-\ **Note:** :ref:`_ready<class_Node_method__ready>` may be called only once for each node. After removing a node from the scene tree and adding it again, ``_ready`` will not be called a second time. This can be bypassed by requesting another call with :ref:`request_ready<class_Node_method_request_ready>`, which may be called anywhere before adding the node again.
+\ **Note:** :ref:`_ready<class_Node_method__ready>` may be called only once for each node. After removing a node from the scene tree and adding it again, :ref:`_ready<class_Node_method__ready>` will not be called a second time. This can be bypassed by requesting another call with :ref:`request_ready<class_Node_method_request_ready>`, which may be called anywhere before adding the node again.
 
 .. rst-class:: classref-item-separator
 
@@ -1945,6 +1949,52 @@ Returns the :ref:`SceneTree<class_SceneTree>` that contains this node.
 
 ----
 
+.. _class_Node_method_get_tree_string:
+
+.. rst-class:: classref-method
+
+:ref:`String<class_String>` **get_tree_string** **(** **)**
+
+Returns the tree as a :ref:`String<class_String>`. Used mainly for debugging purposes. This version displays the path relative to the current node, and is good for copy/pasting into the :ref:`get_node<class_Node_method_get_node>` function. It also can be used in game UI/UX.
+
+\ **Example output:**\ 
+
+::
+
+    TheGame
+    TheGame/Menu
+    TheGame/Menu/Label
+    TheGame/Menu/Camera2D
+    TheGame/SplashScreen
+    TheGame/SplashScreen/Camera2D
+
+.. rst-class:: classref-item-separator
+
+----
+
+.. _class_Node_method_get_tree_string_pretty:
+
+.. rst-class:: classref-method
+
+:ref:`String<class_String>` **get_tree_string_pretty** **(** **)**
+
+Similar to :ref:`get_tree_string<class_Node_method_get_tree_string>`, this returns the tree as a :ref:`String<class_String>`. This version displays a more graphical representation similar to what is displayed in the Scene Dock. It is useful for inspecting larger trees.
+
+\ **Example output:**\ 
+
+::
+
+     ┖╴TheGame
+        ┠╴Menu
+        ┃  ┠╴Label
+        ┃  ┖╴Camera2D
+        ┖╴SplashScreen
+           ┖╴Camera2D
+
+.. rst-class:: classref-item-separator
+
+----
+
 .. _class_Node_method_get_viewport:
 
 .. rst-class:: classref-method
@@ -2389,7 +2439,7 @@ If ``keep_groups`` is ``true``, the ``node`` is added to the same groups that th
 
 void **request_ready** **(** **)**
 
-Requests that ``_ready`` be called again. Note that the method won't be called immediately, but is scheduled for when the node is added to the scene tree again (see :ref:`_ready<class_Node_method__ready>`). ``_ready`` is called only for the node which requested it, which means that you need to request ready for each child if you want them to call ``_ready`` too (in which case, ``_ready`` will be called in the same order as it would normally).
+Requests that :ref:`_ready<class_Node_method__ready>` be called again. Note that the method won't be called immediately, but is scheduled for when the node is added to the scene tree again. :ref:`_ready<class_Node_method__ready>` is called only for the node which requested it, which means that you need to request ready for each child if you want them to call :ref:`_ready<class_Node_method__ready>` too (in which case, :ref:`_ready<class_Node_method__ready>` will be called in the same order as it would normally).
 
 .. rst-class:: classref-item-separator
 

+ 14 - 10
classes/class_node3d.rst

@@ -21,7 +21,7 @@ Most basic 3D game object, parent of all 3D-related nodes.
 Description
 -----------
 
-Most basic 3D game object, with a :ref:`Transform3D<class_Transform3D>` and visibility settings. All other 3D game objects inherit from Node3D. Use **Node3D** as a parent node to move, scale, rotate and show/hide children in a 3D project.
+Most basic 3D game object, with a :ref:`Transform3D<class_Transform3D>` and visibility settings. All other 3D game objects inherit from **Node3D**. Use **Node3D** as a parent node to move, scale, rotate and show/hide children in a 3D project.
 
 Affine operations (rotate, scale, translate) happen in parent's local coordinate system, unless the **Node3D** object is set as top-level. Affine operations in this coordinate system correspond to direct affine operations on the **Node3D**'s transform. The word local below refers to this coordinate system. The coordinate system that is attached to the **Node3D** object itself is referred to as object-local coordinate system.
 
@@ -235,7 +235,7 @@ Constants
 
 **NOTIFICATION_TRANSFORM_CHANGED** = ``2000``
 
-Node3D nodes receives this notification when their global transform changes. This means that either the current or a parent node changed its transform.
+**Node3D** nodes receive this notification when their global transform changes. This means that either the current or a parent node changed its transform.
 
 In order for :ref:`NOTIFICATION_TRANSFORM_CHANGED<class_Node3D_constant_NOTIFICATION_TRANSFORM_CHANGED>` to work, users first need to ask for it, with :ref:`set_notify_transform<class_Node3D_method_set_notify_transform>`. The notification is also sent if the node is in the editor context and it has at least one valid gizmo.
 
@@ -245,7 +245,7 @@ In order for :ref:`NOTIFICATION_TRANSFORM_CHANGED<class_Node3D_constant_NOTIFICA
 
 **NOTIFICATION_ENTER_WORLD** = ``41``
 
-Node3D nodes receives this notification when they are registered to new :ref:`World3D<class_World3D>` resource.
+**Node3D** nodes receive this notification when they are registered to new :ref:`World3D<class_World3D>` resource.
 
 .. _class_Node3D_constant_NOTIFICATION_EXIT_WORLD:
 
@@ -253,7 +253,7 @@ Node3D nodes receives this notification when they are registered to new :ref:`Wo
 
 **NOTIFICATION_EXIT_WORLD** = ``42``
 
-Node3D nodes receives this notification when they are unregistered from current :ref:`World3D<class_World3D>` resource.
+**Node3D** nodes receive this notification when they are unregistered from current :ref:`World3D<class_World3D>` resource.
 
 .. _class_Node3D_constant_NOTIFICATION_VISIBILITY_CHANGED:
 
@@ -261,7 +261,7 @@ Node3D nodes receives this notification when they are unregistered from current
 
 **NOTIFICATION_VISIBILITY_CHANGED** = ``43``
 
-Node3D nodes receives this notification when their visibility changes.
+**Node3D** nodes receive this notification when their visibility changes.
 
 .. _class_Node3D_constant_NOTIFICATION_LOCAL_TRANSFORM_CHANGED:
 
@@ -269,7 +269,7 @@ Node3D nodes receives this notification when their visibility changes.
 
 **NOTIFICATION_LOCAL_TRANSFORM_CHANGED** = ``44``
 
-Node3D nodes receives this notification when their local transform changes. This is not received when the transform of a parent node is changed.
+**Node3D** nodes receive this notification when their local transform changes. This is not received when the transform of a parent node is changed.
 
 In order for :ref:`NOTIFICATION_LOCAL_TRANSFORM_CHANGED<class_Node3D_constant_NOTIFICATION_LOCAL_TRANSFORM_CHANGED>` to work, users first need to ask for it, with :ref:`set_notify_local_transform<class_Node3D_method_set_notify_local_transform>`.
 
@@ -592,7 +592,9 @@ Method Descriptions
 
 void **add_gizmo** **(** :ref:`Node3DGizmo<class_Node3DGizmo>` gizmo **)**
 
-Attach a gizmo to this ``Node3D``.
+Attach an editor gizmo to this **Node3D**.
+
+\ **Note:** The gizmo object would typically be an instance of :ref:`EditorNode3DGizmo<class_EditorNode3DGizmo>`, but the argument type is kept generic to avoid creating a dependency on editor classes in **Node3D**.
 
 .. rst-class:: classref-item-separator
 
@@ -604,7 +606,7 @@ Attach a gizmo to this ``Node3D``.
 
 void **clear_gizmos** **(** **)**
 
-Clear all gizmos attached to this ``Node3D``.
+Clear all gizmos attached to this **Node3D**.
 
 .. rst-class:: classref-item-separator
 
@@ -640,7 +642,7 @@ Forces the transform to update. Transform changes in physics are not instant for
 
 :ref:`Node3DGizmo[]<class_Node3DGizmo>` **get_gizmos** **(** **)** |const|
 
-Returns all the gizmos attached to this ``Node3D``.
+Returns all the gizmos attached to this **Node3D**.
 
 .. rst-class:: classref-item-separator
 
@@ -950,6 +952,8 @@ void **set_subgizmo_selection** **(** :ref:`Node3DGizmo<class_Node3DGizmo>` gizm
 
 Set subgizmo selection for this node in the editor.
 
+\ **Note:** The gizmo object would typically be an instance of :ref:`EditorNode3DGizmo<class_EditorNode3DGizmo>`, but the argument type is kept generic to avoid creating a dependency on editor classes in **Node3D**.
+
 .. rst-class:: classref-item-separator
 
 ----
@@ -1022,7 +1026,7 @@ Changes the node's position by the given offset :ref:`Vector3<class_Vector3>` in
 
 void **update_gizmos** **(** **)**
 
-Updates all the :ref:`Node3DGizmo<class_Node3DGizmo>`\ s attached to this node.
+Updates all the **Node3D** gizmos attached to this node.
 
 .. |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.)`

+ 9 - 2
classes/class_node3dgizmo.rst

@@ -14,9 +14,16 @@ Node3DGizmo
 
 **Inherited By:** :ref:`EditorNode3DGizmo<class_EditorNode3DGizmo>`
 
-.. container:: contribute
+Abstract class to expose editor gizmos for :ref:`Node3D<class_Node3D>`.
 
-	There is currently no description for this class. Please help us by :ref:`contributing one <doc_updating_the_class_reference>`!
+.. rst-class:: classref-introduction-group
+
+Description
+-----------
+
+This abstract class helps connect the :ref:`Node3D<class_Node3D>` scene with the editor-specific :ref:`EditorNode3DGizmo<class_EditorNode3DGizmo>` class.
+
+\ **Node3DGizmo** by itself has no exposed API, refer to :ref:`Node3D.add_gizmo<class_Node3D_method_add_gizmo>` and pass it an :ref:`EditorNode3DGizmo<class_EditorNode3DGizmo>` instance.
 
 .. |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.)`

+ 140 - 28
classes/class_openxrinterface.rst

@@ -56,31 +56,37 @@ Methods
 .. table::
    :widths: auto
 
-   +--------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-   | :ref:`Array<class_Array>`                                    | :ref:`get_action_sets<class_OpenXRInterface_method_get_action_sets>` **(** **)** |const|                                                                                                                                       |
-   +--------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-   | :ref:`Array<class_Array>`                                    | :ref:`get_available_display_refresh_rates<class_OpenXRInterface_method_get_available_display_refresh_rates>` **(** **)** |const|                                                                                               |
-   +--------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-   | :ref:`Vector3<class_Vector3>`                                | :ref:`get_hand_joint_angular_velocity<class_OpenXRInterface_method_get_hand_joint_angular_velocity>` **(** :ref:`Hand<enum_OpenXRInterface_Hand>` hand, :ref:`HandJoints<enum_OpenXRInterface_HandJoints>` joint **)** |const| |
-   +--------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-   | :ref:`Vector3<class_Vector3>`                                | :ref:`get_hand_joint_linear_velocity<class_OpenXRInterface_method_get_hand_joint_linear_velocity>` **(** :ref:`Hand<enum_OpenXRInterface_Hand>` hand, :ref:`HandJoints<enum_OpenXRInterface_HandJoints>` joint **)** |const|   |
-   +--------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-   | :ref:`Vector3<class_Vector3>`                                | :ref:`get_hand_joint_position<class_OpenXRInterface_method_get_hand_joint_position>` **(** :ref:`Hand<enum_OpenXRInterface_Hand>` hand, :ref:`HandJoints<enum_OpenXRInterface_HandJoints>` joint **)** |const|                 |
-   +--------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-   | :ref:`float<class_float>`                                    | :ref:`get_hand_joint_radius<class_OpenXRInterface_method_get_hand_joint_radius>` **(** :ref:`Hand<enum_OpenXRInterface_Hand>` hand, :ref:`HandJoints<enum_OpenXRInterface_HandJoints>` joint **)** |const|                     |
-   +--------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-   | :ref:`Quaternion<class_Quaternion>`                          | :ref:`get_hand_joint_rotation<class_OpenXRInterface_method_get_hand_joint_rotation>` **(** :ref:`Hand<enum_OpenXRInterface_Hand>` hand, :ref:`HandJoints<enum_OpenXRInterface_HandJoints>` joint **)** |const|                 |
-   +--------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-   | :ref:`HandMotionRange<enum_OpenXRInterface_HandMotionRange>` | :ref:`get_motion_range<class_OpenXRInterface_method_get_motion_range>` **(** :ref:`Hand<enum_OpenXRInterface_Hand>` hand **)** |const|                                                                                         |
-   +--------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-   | :ref:`bool<class_bool>`                                      | :ref:`is_action_set_active<class_OpenXRInterface_method_is_action_set_active>` **(** :ref:`String<class_String>` name **)** |const|                                                                                            |
-   +--------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-   | :ref:`bool<class_bool>`                                      | :ref:`is_foveation_supported<class_OpenXRInterface_method_is_foveation_supported>` **(** **)** |const|                                                                                                                         |
-   +--------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-   | void                                                         | :ref:`set_action_set_active<class_OpenXRInterface_method_set_action_set_active>` **(** :ref:`String<class_String>` name, :ref:`bool<class_bool>` active **)**                                                                  |
-   +--------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-   | void                                                         | :ref:`set_motion_range<class_OpenXRInterface_method_set_motion_range>` **(** :ref:`Hand<enum_OpenXRInterface_Hand>` hand, :ref:`HandMotionRange<enum_OpenXRInterface_HandMotionRange>` motion_range **)**                      |
-   +--------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   +--------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Array<class_Array>`                                                | :ref:`get_action_sets<class_OpenXRInterface_method_get_action_sets>` **(** **)** |const|                                                                                                                                       |
+   +--------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Array<class_Array>`                                                | :ref:`get_available_display_refresh_rates<class_OpenXRInterface_method_get_available_display_refresh_rates>` **(** **)** |const|                                                                                               |
+   +--------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Vector3<class_Vector3>`                                            | :ref:`get_hand_joint_angular_velocity<class_OpenXRInterface_method_get_hand_joint_angular_velocity>` **(** :ref:`Hand<enum_OpenXRInterface_Hand>` hand, :ref:`HandJoints<enum_OpenXRInterface_HandJoints>` joint **)** |const| |
+   +--------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | |bitfield|\<:ref:`HandJointFlags<enum_OpenXRInterface_HandJointFlags>`\> | :ref:`get_hand_joint_flags<class_OpenXRInterface_method_get_hand_joint_flags>` **(** :ref:`Hand<enum_OpenXRInterface_Hand>` hand, :ref:`HandJoints<enum_OpenXRInterface_HandJoints>` joint **)** |const|                       |
+   +--------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Vector3<class_Vector3>`                                            | :ref:`get_hand_joint_linear_velocity<class_OpenXRInterface_method_get_hand_joint_linear_velocity>` **(** :ref:`Hand<enum_OpenXRInterface_Hand>` hand, :ref:`HandJoints<enum_OpenXRInterface_HandJoints>` joint **)** |const|   |
+   +--------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Vector3<class_Vector3>`                                            | :ref:`get_hand_joint_position<class_OpenXRInterface_method_get_hand_joint_position>` **(** :ref:`Hand<enum_OpenXRInterface_Hand>` hand, :ref:`HandJoints<enum_OpenXRInterface_HandJoints>` joint **)** |const|                 |
+   +--------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`float<class_float>`                                                | :ref:`get_hand_joint_radius<class_OpenXRInterface_method_get_hand_joint_radius>` **(** :ref:`Hand<enum_OpenXRInterface_Hand>` hand, :ref:`HandJoints<enum_OpenXRInterface_HandJoints>` joint **)** |const|                     |
+   +--------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Quaternion<class_Quaternion>`                                      | :ref:`get_hand_joint_rotation<class_OpenXRInterface_method_get_hand_joint_rotation>` **(** :ref:`Hand<enum_OpenXRInterface_Hand>` hand, :ref:`HandJoints<enum_OpenXRInterface_HandJoints>` joint **)** |const|                 |
+   +--------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`HandMotionRange<enum_OpenXRInterface_HandMotionRange>`             | :ref:`get_motion_range<class_OpenXRInterface_method_get_motion_range>` **(** :ref:`Hand<enum_OpenXRInterface_Hand>` hand **)** |const|                                                                                         |
+   +--------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`                                                  | :ref:`is_action_set_active<class_OpenXRInterface_method_is_action_set_active>` **(** :ref:`String<class_String>` name **)** |const|                                                                                            |
+   +--------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`                                                  | :ref:`is_eye_gaze_interaction_supported<class_OpenXRInterface_method_is_eye_gaze_interaction_supported>` **(** **)**                                                                                                           |
+   +--------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`                                                  | :ref:`is_foveation_supported<class_OpenXRInterface_method_is_foveation_supported>` **(** **)** |const|                                                                                                                         |
+   +--------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`                                                  | :ref:`is_hand_tracking_supported<class_OpenXRInterface_method_is_hand_tracking_supported>` **(** **)**                                                                                                                         |
+   +--------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                                                     | :ref:`set_action_set_active<class_OpenXRInterface_method_set_action_set_active>` **(** :ref:`String<class_String>` name, :ref:`bool<class_bool>` active **)**                                                                  |
+   +--------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                                                     | :ref:`set_motion_range<class_OpenXRInterface_method_set_motion_range>` **(** :ref:`Hand<enum_OpenXRInterface_Hand>` hand, :ref:`HandMotionRange<enum_OpenXRInterface_HandMotionRange>` motion_range **)**                      |
+   +--------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 
 .. rst-class:: classref-section-separator
 
@@ -446,6 +452,72 @@ Little tip joint.
 
 Maximum value for the hand joint enum.
 
+.. rst-class:: classref-item-separator
+
+----
+
+.. _enum_OpenXRInterface_HandJointFlags:
+
+.. rst-class:: classref-enumeration
+
+flags **HandJointFlags**:
+
+.. _class_OpenXRInterface_constant_HAND_JOINT_NONE:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`HandJointFlags<enum_OpenXRInterface_HandJointFlags>` **HAND_JOINT_NONE** = ``0``
+
+No flags are set.
+
+.. _class_OpenXRInterface_constant_HAND_JOINT_ORIENTATION_VALID:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`HandJointFlags<enum_OpenXRInterface_HandJointFlags>` **HAND_JOINT_ORIENTATION_VALID** = ``1``
+
+If set, the orientation data is valid, otherwise, the orientation data is unreliable and should not be used.
+
+.. _class_OpenXRInterface_constant_HAND_JOINT_ORIENTATION_TRACKED:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`HandJointFlags<enum_OpenXRInterface_HandJointFlags>` **HAND_JOINT_ORIENTATION_TRACKED** = ``2``
+
+If set, the orientation data comes from tracking data, otherwise, the orientation data contains predicted data.
+
+.. _class_OpenXRInterface_constant_HAND_JOINT_POSITION_VALID:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`HandJointFlags<enum_OpenXRInterface_HandJointFlags>` **HAND_JOINT_POSITION_VALID** = ``4``
+
+If set, the positional data is valid, otherwise, the positional data is unreliable and should not be used.
+
+.. _class_OpenXRInterface_constant_HAND_JOINT_POSITION_TRACKED:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`HandJointFlags<enum_OpenXRInterface_HandJointFlags>` **HAND_JOINT_POSITION_TRACKED** = ``8``
+
+If set, the positional data comes from tracking data, otherwise, the positional data contains predicted data.
+
+.. _class_OpenXRInterface_constant_HAND_JOINT_LINEAR_VELOCITY_VALID:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`HandJointFlags<enum_OpenXRInterface_HandJointFlags>` **HAND_JOINT_LINEAR_VELOCITY_VALID** = ``16``
+
+If set, our linear velocity data is valid, otherwise, the linear velocity data is unreliable and should not be used.
+
+.. _class_OpenXRInterface_constant_HAND_JOINT_ANGULAR_VELOCITY_VALID:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`HandJointFlags<enum_OpenXRInterface_HandJointFlags>` **HAND_JOINT_ANGULAR_VELOCITY_VALID** = ``32``
+
+If set, our angular velocity data is valid, otherwise, the angular velocity data is unreliable and should not be used.
+
 .. rst-class:: classref-section-separator
 
 ----
@@ -483,7 +555,7 @@ The display refresh rate for the current HMD. Only functional if this feature is
 - void **set_foveation_dynamic** **(** :ref:`bool<class_bool>` value **)**
 - :ref:`bool<class_bool>` **get_foveation_dynamic** **(** **)**
 
-Enable dynamic foveation adjustment, the interface must be initialised before this is accessible. If enabled foveation will automatically adjusted between low and :ref:`foveation_level<class_OpenXRInterface_property_foveation_level>`.
+Enable dynamic foveation adjustment, the interface must be initialized before this is accessible. If enabled foveation will automatically adjusted between low and :ref:`foveation_level<class_OpenXRInterface_property_foveation_level>`.
 
 .. rst-class:: classref-item-separator
 
@@ -500,7 +572,7 @@ Enable dynamic foveation adjustment, the interface must be initialised before th
 - void **set_foveation_level** **(** :ref:`int<class_int>` value **)**
 - :ref:`int<class_int>` **get_foveation_level** **(** **)**
 
-Set foveation level from 0 (off) to 3 (high), the interface must be initialised before this is accessible.
+Set foveation level from 0 (off) to 3 (high), the interface must be initialized before this is accessible.
 
 .. rst-class:: classref-item-separator
 
@@ -564,6 +636,18 @@ If handtracking is enabled, returns the angular velocity of a joint (``joint``)
 
 ----
 
+.. _class_OpenXRInterface_method_get_hand_joint_flags:
+
+.. rst-class:: classref-method
+
+|bitfield|\<:ref:`HandJointFlags<enum_OpenXRInterface_HandJointFlags>`\> **get_hand_joint_flags** **(** :ref:`Hand<enum_OpenXRInterface_Hand>` hand, :ref:`HandJoints<enum_OpenXRInterface_HandJoints>` joint **)** |const|
+
+If handtracking is enabled, returns flags that inform us of the validity of the tracking data.
+
+.. rst-class:: classref-item-separator
+
+----
+
 .. _class_OpenXRInterface_method_get_hand_joint_linear_velocity:
 
 .. rst-class:: classref-method
@@ -636,13 +720,27 @@ Returns ``true`` if the given action set is active.
 
 ----
 
+.. _class_OpenXRInterface_method_is_eye_gaze_interaction_supported:
+
+.. rst-class:: classref-method
+
+:ref:`bool<class_bool>` **is_eye_gaze_interaction_supported** **(** **)**
+
+Returns the capabilities of the eye gaze interaction extension.
+
+\ **Note:** This only returns a valid value after OpenXR has been initialized.
+
+.. rst-class:: classref-item-separator
+
+----
+
 .. _class_OpenXRInterface_method_is_foveation_supported:
 
 .. rst-class:: classref-method
 
 :ref:`bool<class_bool>` **is_foveation_supported** **(** **)** |const|
 
-Returns ``true`` if OpenXRs foveation extension is supported, the interface must be initialised before this returns a valid value.
+Returns ``true`` if OpenXR's foveation extension is supported, the interface must be initialized before this returns a valid value.
 
 \ **Note:** This feature is only available on the compatibility renderer and currently only available on some stand alone headsets. For Vulkan set :ref:`Viewport.vrs_mode<class_Viewport_property_vrs_mode>` to ``VRS_XR`` on desktop.
 
@@ -650,6 +748,20 @@ Returns ``true`` if OpenXRs foveation extension is supported, the interface must
 
 ----
 
+.. _class_OpenXRInterface_method_is_hand_tracking_supported:
+
+.. rst-class:: classref-method
+
+:ref:`bool<class_bool>` **is_hand_tracking_supported** **(** **)**
+
+Returns ``true`` if OpenXR's hand tracking is supported and enabled.
+
+\ **Note:** This only returns a valid value after OpenXR has been initialized.
+
+.. rst-class:: classref-item-separator
+
+----
+
 .. _class_OpenXRInterface_method_set_action_set_active:
 
 .. rst-class:: classref-method

+ 1 - 1
classes/class_os.rst

@@ -1089,7 +1089,7 @@ Returns a string that is unique to the device.
 
 \ **Note:** This string may change without notice if the user reinstalls/upgrades their operating system or changes their hardware. This means it should generally not be used to encrypt persistent data as the data saved before an unexpected ID change would become inaccessible. The returned string may also be falsified using external programs, so do not rely on the string returned by :ref:`get_unique_id<class_OS_method_get_unique_id>` for security purposes.
 
-\ **Note:** Returns an empty string on Web, as this method isn't implemented on this platform yet.
+\ **Note:** Returns an empty string and prints an error on Web, as this method cannot be implemented on this platform.
 
 .. rst-class:: classref-item-separator
 

+ 1 - 1
classes/class_packedbytearray.rst

@@ -483,7 +483,7 @@ Returns a new **PackedByteArray** with the data decompressed. Set ``buffer_size`
 
 Returns a new **PackedByteArray** with the data decompressed. Set the compression mode using one of :ref:`CompressionMode<enum_FileAccess_CompressionMode>`'s constants. **This method only accepts brotli, gzip, and deflate compression modes.**\ 
 
-This method is potentially slower than ``decompress``, as it may have to re-allocate its output buffer multiple times while decompressing, whereas ``decompress`` knows it's output buffer size from the beginning.
+This method is potentially slower than :ref:`decompress<class_PackedByteArray_method_decompress>`, as it may have to re-allocate its output buffer multiple times while decompressing, whereas :ref:`decompress<class_PackedByteArray_method_decompress>` knows it's output buffer size from the beginning.
 
 GZIP has a maximal compression ratio of 1032:1, meaning it's very possible for a small compressed payload to decompress to a potentially very large output. To guard against this, you may provide a maximum size this function is allowed to allocate in bytes via ``max_output_size``. Passing -1 will allow for unbounded output. If any positive value is passed, and the decompression exceeds that amount in bytes, then an error will be returned.
 

+ 2 - 2
classes/class_packedscene.rst

@@ -46,7 +46,7 @@ Can be used to save a node to a file. When saving, the node as well as all the n
 
 
 
-\ **Example of saving a node with different owners:** The following example creates 3 objects: :ref:`Node2D<class_Node2D>` (``node``), :ref:`RigidBody2D<class_RigidBody2D>` (``body``) and :ref:`CollisionObject2D<class_CollisionObject2D>` (``collision``). ``collision`` is a child of ``body`` which is a child of ``node``. Only ``body`` is owned by ``node`` and ``pack`` will therefore only save those two nodes, but not ``collision``.
+\ **Example of saving a node with different owners:** The following example creates 3 objects: :ref:`Node2D<class_Node2D>` (``node``), :ref:`RigidBody2D<class_RigidBody2D>` (``body``) and :ref:`CollisionObject2D<class_CollisionObject2D>` (``collision``). ``collision`` is a child of ``body`` which is a child of ``node``. Only ``body`` is owned by ``node`` and :ref:`pack<class_PackedScene_method_pack>` will therefore only save those two nodes, but not ``collision``.
 
 
 .. tabs::
@@ -237,7 +237,7 @@ Returns ``true`` if the scene file has nodes.
 
 :ref:`SceneState<class_SceneState>` **get_state** **(** **)** |const|
 
-Returns the ``SceneState`` representing the scene file contents.
+Returns the :ref:`SceneState<class_SceneState>` representing the scene file contents.
 
 .. rst-class:: classref-item-separator
 

+ 1 - 1
classes/class_packetpeer.rst

@@ -81,7 +81,7 @@ Property Descriptions
 
 Maximum buffer size allowed when encoding :ref:`Variant<class_Variant>`\ s. Raise this value to support heavier memory allocations.
 
-The :ref:`put_var<class_PacketPeer_method_put_var>` method allocates memory on the stack, and the buffer used will grow automatically to the closest power of two to match the size of the :ref:`Variant<class_Variant>`. If the :ref:`Variant<class_Variant>` is bigger than ``encode_buffer_max_size``, the method will error out with :ref:`@GlobalScope.ERR_OUT_OF_MEMORY<class_@GlobalScope_constant_ERR_OUT_OF_MEMORY>`.
+The :ref:`put_var<class_PacketPeer_method_put_var>` method allocates memory on the stack, and the buffer used will grow automatically to the closest power of two to match the size of the :ref:`Variant<class_Variant>`. If the :ref:`Variant<class_Variant>` is bigger than :ref:`encode_buffer_max_size<class_PacketPeer_property_encode_buffer_max_size>`, the method will error out with :ref:`@GlobalScope.ERR_OUT_OF_MEMORY<class_@GlobalScope_constant_ERR_OUT_OF_MEMORY>`.
 
 .. rst-class:: classref-section-separator
 

+ 3 - 3
classes/class_particleprocessmaterial.rst

@@ -1006,7 +1006,7 @@ Unit vector specifying the particles' emission direction.
 - void **set_emission_box_extents** **(** :ref:`Vector3<class_Vector3>` value **)**
 - :ref:`Vector3<class_Vector3>` **get_emission_box_extents** **(** **)**
 
-The box's extents if ``emission_shape`` is set to :ref:`EMISSION_SHAPE_BOX<class_ParticleProcessMaterial_constant_EMISSION_SHAPE_BOX>`.
+The box's extents if :ref:`emission_shape<class_ParticleProcessMaterial_property_emission_shape>` is set to :ref:`EMISSION_SHAPE_BOX<class_ParticleProcessMaterial_constant_EMISSION_SHAPE_BOX>`.
 
 .. rst-class:: classref-item-separator
 
@@ -1059,7 +1059,7 @@ Particle velocity and rotation will be set by sampling this texture at the same
 - void **set_emission_point_count** **(** :ref:`int<class_int>` value **)**
 - :ref:`int<class_int>` **get_emission_point_count** **(** **)**
 
-The number of emission points if ``emission_shape`` is set to :ref:`EMISSION_SHAPE_POINTS<class_ParticleProcessMaterial_constant_EMISSION_SHAPE_POINTS>` or :ref:`EMISSION_SHAPE_DIRECTED_POINTS<class_ParticleProcessMaterial_constant_EMISSION_SHAPE_DIRECTED_POINTS>`.
+The number of emission points if :ref:`emission_shape<class_ParticleProcessMaterial_property_emission_shape>` is set to :ref:`EMISSION_SHAPE_POINTS<class_ParticleProcessMaterial_constant_EMISSION_SHAPE_POINTS>` or :ref:`EMISSION_SHAPE_DIRECTED_POINTS<class_ParticleProcessMaterial_constant_EMISSION_SHAPE_DIRECTED_POINTS>`.
 
 .. rst-class:: classref-item-separator
 
@@ -1178,7 +1178,7 @@ Particles will be emitted inside this region. Use :ref:`EmissionShape<enum_Parti
 - void **set_emission_sphere_radius** **(** :ref:`float<class_float>` value **)**
 - :ref:`float<class_float>` **get_emission_sphere_radius** **(** **)**
 
-The sphere's radius if ``emission_shape`` is set to :ref:`EMISSION_SHAPE_SPHERE<class_ParticleProcessMaterial_constant_EMISSION_SHAPE_SPHERE>`.
+The sphere's radius if :ref:`emission_shape<class_ParticleProcessMaterial_property_emission_shape>` is set to :ref:`EMISSION_SHAPE_SPHERE<class_ParticleProcessMaterial_constant_EMISSION_SHAPE_SPHERE>`.
 
 .. rst-class:: classref-item-separator
 

+ 8 - 8
classes/class_physicsserver2d.rst

@@ -1263,7 +1263,7 @@ Returns the local transform matrix of the shape with the given index in the area
 
 :ref:`RID<class_RID>` **area_get_space** **(** :ref:`RID<class_RID>` area **)** |const|
 
-Returns the :ref:`RID<class_RID>` of the space assigned to the area. Returns ``RID()`` if no space is assigned.
+Returns the :ref:`RID<class_RID>` of the space assigned to the area. Returns an empty :ref:`RID<class_RID>` if no space is assigned.
 
 .. rst-class:: classref-item-separator
 
@@ -1839,7 +1839,7 @@ Returns the local transform matrix of the shape with the given index in the area
 
 :ref:`RID<class_RID>` **body_get_space** **(** :ref:`RID<class_RID>` body **)** |const|
 
-Returns the :ref:`RID<class_RID>` of the space assigned to the body. Returns ``RID()`` if no space is assigned.
+Returns the :ref:`RID<class_RID>` of the space assigned to the body. Returns an empty :ref:`RID<class_RID>` if no space is assigned.
 
 .. rst-class:: classref-item-separator
 
@@ -2353,7 +2353,7 @@ Makes the joint a groove joint.
 
 void **joint_make_pin** **(** :ref:`RID<class_RID>` joint, :ref:`Vector2<class_Vector2>` anchor, :ref:`RID<class_RID>` body_a, :ref:`RID<class_RID>` body_b=RID() **)**
 
-Makes the joint a pin joint. If ``body_b`` is ``RID()``, then ``body_a`` is pinned to the point ``anchor`` (given in global coordinates); otherwise, ``body_a`` is pinned to ``body_b`` at the point ``anchor`` (given in global coordinates). To set the parameters which are specific to the pin joint, see :ref:`pin_joint_set_param<class_PhysicsServer2D_method_pin_joint_set_param>`.
+Makes the joint a pin joint. If ``body_b`` is an empty :ref:`RID<class_RID>`, then ``body_a`` is pinned to the point ``anchor`` (given in global coordinates); otherwise, ``body_a`` is pinned to ``body_b`` at the point ``anchor`` (given in global coordinates). To set the parameters which are specific to the pin joint, see :ref:`pin_joint_set_param<class_PhysicsServer2D_method_pin_joint_set_param>`.
 
 .. rst-class:: classref-item-separator
 
@@ -2499,19 +2499,19 @@ void **shape_set_data** **(** :ref:`RID<class_RID>` shape, :ref:`Variant<class_V
 
 Sets the shape data that defines the configuration of the shape. The ``data`` to be passed depends on the shape's type (see :ref:`shape_get_type<class_PhysicsServer2D_method_shape_get_type>`):
 
-- :ref:`SHAPE_WORLD_BOUNDARY<class_PhysicsServer2D_constant_SHAPE_WORLD_BOUNDARY>`: an array of length two containing a :ref:`Vector2<class_Vector2>` ``normal`` direction and a ``float`` distance ``d``,
+- :ref:`SHAPE_WORLD_BOUNDARY<class_PhysicsServer2D_constant_SHAPE_WORLD_BOUNDARY>`: an array of length two containing a :ref:`Vector2<class_Vector2>` ``normal`` direction and a :ref:`float<class_float>` distance ``d``,
 
-- :ref:`SHAPE_SEPARATION_RAY<class_PhysicsServer2D_constant_SHAPE_SEPARATION_RAY>`: a dictionary containing the key ``length`` with a ``float`` value and the key ``slide_on_slope`` with a ``bool`` value,
+- :ref:`SHAPE_SEPARATION_RAY<class_PhysicsServer2D_constant_SHAPE_SEPARATION_RAY>`: a dictionary containing the key ``length`` with a :ref:`float<class_float>` value and the key ``slide_on_slope`` with a :ref:`bool<class_bool>` value,
 
 - :ref:`SHAPE_SEGMENT<class_PhysicsServer2D_constant_SHAPE_SEGMENT>`: a :ref:`Rect2<class_Rect2>` ``rect`` containing the first point of the segment in ``rect.position`` and the second point of the segment in ``rect.size``,
 
-- :ref:`SHAPE_CIRCLE<class_PhysicsServer2D_constant_SHAPE_CIRCLE>`: a ``float`` ``radius``,
+- :ref:`SHAPE_CIRCLE<class_PhysicsServer2D_constant_SHAPE_CIRCLE>`: a :ref:`float<class_float>` ``radius``,
 
 - :ref:`SHAPE_RECTANGLE<class_PhysicsServer2D_constant_SHAPE_RECTANGLE>`: a :ref:`Vector2<class_Vector2>` ``half_extents``,
 
-- :ref:`SHAPE_CAPSULE<class_PhysicsServer2D_constant_SHAPE_CAPSULE>`: an array of length two (or a :ref:`Vector2<class_Vector2>`) containing a ``float`` ``height`` and a ``float`` ``radius``,
+- :ref:`SHAPE_CAPSULE<class_PhysicsServer2D_constant_SHAPE_CAPSULE>`: an array of length two (or a :ref:`Vector2<class_Vector2>`) containing a :ref:`float<class_float>` ``height`` and a :ref:`float<class_float>` ``radius``,
 
-- :ref:`SHAPE_CONVEX_POLYGON<class_PhysicsServer2D_constant_SHAPE_CONVEX_POLYGON>`: either a :ref:`PackedVector2Array<class_PackedVector2Array>` of points defining a convex polygon in counterclockwise order (the clockwise outward normal of each segment formed by consecutive points is calculated internally), or a :ref:`PackedFloat32Array<class_PackedFloat32Array>` of length divisible by four so that every 4-tuple of ``float``\ s contains the coordinates of a point followed by the coordinates of the clockwise outward normal vector to the segment between the current point and the next point,
+- :ref:`SHAPE_CONVEX_POLYGON<class_PhysicsServer2D_constant_SHAPE_CONVEX_POLYGON>`: either a :ref:`PackedVector2Array<class_PackedVector2Array>` of points defining a convex polygon in counterclockwise order (the clockwise outward normal of each segment formed by consecutive points is calculated internally), or a :ref:`PackedFloat32Array<class_PackedFloat32Array>` of length divisible by four so that every 4-tuple of :ref:`float<class_float>`\ s contains the coordinates of a point followed by the coordinates of the clockwise outward normal vector to the segment between the current point and the next point,
 
 - :ref:`SHAPE_CONCAVE_POLYGON<class_PhysicsServer2D_constant_SHAPE_CONCAVE_POLYGON>`: a :ref:`PackedVector2Array<class_PackedVector2Array>` of length divisible by two (each pair of points forms one segment).
 

+ 3 - 5
classes/class_physicsserver3d.rst

@@ -2537,13 +2537,11 @@ Continuous collision detection tries to predict where a moving body will collide
 
 void **body_set_force_integration_callback** **(** :ref:`RID<class_RID>` body, :ref:`Callable<class_Callable>` callable, :ref:`Variant<class_Variant>` userdata=null **)**
 
-Sets the function used to calculate physics for an object, if that object allows it (see :ref:`body_set_omit_force_integration<class_PhysicsServer3D_method_body_set_omit_force_integration>`).
+Sets the function used to calculate physics for an object, if that object allows it (see :ref:`body_set_omit_force_integration<class_PhysicsServer3D_method_body_set_omit_force_integration>`). The force integration function takes 2 arguments:
 
-The force integration function takes 2 arguments:
+- ``state`` — :ref:`PhysicsDirectBodyState3D<class_PhysicsDirectBodyState3D>` used to retrieve and modify the body's state.
 
-\ ``state:`` :ref:`PhysicsDirectBodyState3D<class_PhysicsDirectBodyState3D>` used to retrieve and modify the body's state.
-
-\ ``userdata:`` Optional user data, if it was passed when calling ``body_set_force_integration_callback``.
+- ``userdata`` — optional user data passed to :ref:`body_set_force_integration_callback<class_PhysicsServer3D_method_body_set_force_integration_callback>`.
 
 .. rst-class:: classref-item-separator
 

+ 6 - 6
classes/class_polygon2d.rst

@@ -138,7 +138,7 @@ Internal list of :ref:`Bone2D<class_Bone2D>` nodes used by the assigned :ref:`sk
 - void **set_color** **(** :ref:`Color<class_Color>` value **)**
 - :ref:`Color<class_Color>` **get_color** **(** **)**
 
-The polygon's fill color. If ``texture`` is defined, it will be multiplied by this color. It will also be the default color for vertices not set in ``vertex_colors``.
+The polygon's fill color. If :ref:`texture<class_Polygon2D_property_texture>` is set, it will be multiplied by this color. It will also be the default color for vertices not set in :ref:`vertex_colors<class_Polygon2D_property_vertex_colors>`.
 
 .. rst-class:: classref-item-separator
 
@@ -276,7 +276,7 @@ Path to a :ref:`Skeleton2D<class_Skeleton2D>` node used for skeleton-based defor
 - void **set_texture** **(** :ref:`Texture2D<class_Texture2D>` value **)**
 - :ref:`Texture2D<class_Texture2D>` **get_texture** **(** **)**
 
-The polygon's fill texture. Use ``uv`` to set texture coordinates.
+The polygon's fill texture. Use :ref:`uv<class_Polygon2D_property_uv>` to set texture coordinates.
 
 .. rst-class:: classref-item-separator
 
@@ -293,7 +293,7 @@ The polygon's fill texture. Use ``uv`` to set texture coordinates.
 - void **set_texture_offset** **(** :ref:`Vector2<class_Vector2>` value **)**
 - :ref:`Vector2<class_Vector2>` **get_texture_offset** **(** **)**
 
-Amount to offset the polygon's ``texture``. If ``(0, 0)`` the texture's origin (its top-left corner) will be placed at the polygon's ``position``.
+Amount to offset the polygon's :ref:`texture<class_Polygon2D_property_texture>`. If set to ``Vector2(0, 0)``, the texture's origin (its top-left corner) will be placed at the polygon's position.
 
 .. rst-class:: classref-item-separator
 
@@ -327,7 +327,7 @@ The texture's rotation in radians.
 - void **set_texture_scale** **(** :ref:`Vector2<class_Vector2>` value **)**
 - :ref:`Vector2<class_Vector2>` **get_texture_scale** **(** **)**
 
-Amount to multiply the ``uv`` coordinates when using a ``texture``. Larger values make the texture smaller, and vice versa.
+Amount to multiply the :ref:`uv<class_Polygon2D_property_uv>` coordinates when using :ref:`texture<class_Polygon2D_property_texture>`. Larger values make the texture smaller, and vice versa.
 
 .. rst-class:: classref-item-separator
 
@@ -344,7 +344,7 @@ Amount to multiply the ``uv`` coordinates when using a ``texture``. Larger value
 - void **set_uv** **(** :ref:`PackedVector2Array<class_PackedVector2Array>` value **)**
 - :ref:`PackedVector2Array<class_PackedVector2Array>` **get_uv** **(** **)**
 
-Texture coordinates for each vertex of the polygon. There should be one ``uv`` per polygon vertex. If there are fewer, undefined vertices will use ``(0, 0)``.
+Texture coordinates for each vertex of the polygon. There should be one UV value per polygon vertex. If there are fewer, undefined vertices will use ``Vector2(0, 0)``.
 
 .. rst-class:: classref-item-separator
 
@@ -361,7 +361,7 @@ Texture coordinates for each vertex of the polygon. There should be one ``uv`` p
 - void **set_vertex_colors** **(** :ref:`PackedColorArray<class_PackedColorArray>` value **)**
 - :ref:`PackedColorArray<class_PackedColorArray>` **get_vertex_colors** **(** **)**
 
-Color for each vertex. Colors are interpolated between vertices, resulting in smooth gradients. There should be one per polygon vertex. If there are fewer, undefined vertices will use ``color``.
+Color for each vertex. Colors are interpolated between vertices, resulting in smooth gradients. There should be one per polygon vertex. If there are fewer, undefined vertices will use :ref:`color<class_Polygon2D_property_color>`.
 
 .. rst-class:: classref-section-separator
 

+ 59 - 1
classes/class_projectsettings.rst

@@ -1311,6 +1311,10 @@ Properties
    +---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+
    | :ref:`String<class_String>`                       | :ref:`rendering/gl_compatibility/driver.windows<class_ProjectSettings_property_rendering/gl_compatibility/driver.windows>`                                                                                 | ``"opengl3"``                                                                                    |
    +---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`                           | :ref:`rendering/gl_compatibility/fallback_to_angle<class_ProjectSettings_property_rendering/gl_compatibility/fallback_to_angle>`                                                                           | ``true``                                                                                         |
+   +---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+
+   | :ref:`Array<class_Array>`                         | :ref:`rendering/gl_compatibility/force_angle_on_devices<class_ProjectSettings_property_rendering/gl_compatibility/force_angle_on_devices>`                                                                 | ``[]``                                                                                           |
+   +---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+
    | :ref:`int<class_int>`                             | :ref:`rendering/gl_compatibility/item_buffer_size<class_ProjectSettings_property_rendering/gl_compatibility/item_buffer_size>`                                                                             | ``16384``                                                                                        |
    +---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+
    | :ref:`bool<class_bool>`                           | :ref:`rendering/gl_compatibility/nvidia_disable_threaded_optimization<class_ProjectSettings_property_rendering/gl_compatibility/nvidia_disable_threaded_optimization>`                                     | ``true``                                                                                         |
@@ -1521,6 +1525,10 @@ Properties
    +---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+
    | :ref:`int<class_int>`                             | :ref:`xr/openxr/environment_blend_mode<class_ProjectSettings_property_xr/openxr/environment_blend_mode>`                                                                                                   | ``"0"``                                                                                          |
    +---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`                           | :ref:`xr/openxr/extensions/eye_gaze_interaction<class_ProjectSettings_property_xr/openxr/extensions/eye_gaze_interaction>`                                                                                 | ``false``                                                                                        |
+   +---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`                           | :ref:`xr/openxr/extensions/hand_tracking<class_ProjectSettings_property_xr/openxr/extensions/hand_tracking>`                                                                                               | ``true``                                                                                         |
+   +---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+
    | :ref:`int<class_int>`                             | :ref:`xr/openxr/form_factor<class_ProjectSettings_property_xr/openxr/form_factor>`                                                                                                                         | ``"0"``                                                                                          |
    +---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+
    | :ref:`bool<class_bool>`                           | :ref:`xr/openxr/foveation_dynamic<class_ProjectSettings_property_xr/openxr/foveation_dynamic>`                                                                                                             | ``false``                                                                                        |
@@ -9656,6 +9664,32 @@ Windows override for :ref:`rendering/gl_compatibility/driver<class_ProjectSettin
 
 ----
 
+.. _class_ProjectSettings_property_rendering/gl_compatibility/fallback_to_angle:
+
+.. rst-class:: classref-property
+
+:ref:`bool<class_bool>` **rendering/gl_compatibility/fallback_to_angle** = ``true``
+
+If ``true``, the compatibility renderer will fall back to ANGLE if native OpenGL is not supported or the device is listed in :ref:`rendering/gl_compatibility/force_angle_on_devices<class_ProjectSettings_property_rendering/gl_compatibility/force_angle_on_devices>`.
+
+.. rst-class:: classref-item-separator
+
+----
+
+.. _class_ProjectSettings_property_rendering/gl_compatibility/force_angle_on_devices:
+
+.. rst-class:: classref-property
+
+:ref:`Array<class_Array>` **rendering/gl_compatibility/force_angle_on_devices** = ``[]``
+
+An :ref:`Array<class_Array>` of devices which should always use the ANGLE renderer.
+
+Each entry is a :ref:`Dictionary<class_Dictionary>` with the following keys: ``vendor`` and ``name``. ``name`` can be set to ``*`` to add all devices with the specified ``vendor``.
+
+.. rst-class:: classref-item-separator
+
+----
+
 .. _class_ProjectSettings_property_rendering/gl_compatibility/item_buffer_size:
 
 .. rst-class:: classref-property
@@ -11039,6 +11073,30 @@ Specify how OpenXR should blend in the environment. This is specific to certain
 
 ----
 
+.. _class_ProjectSettings_property_xr/openxr/extensions/eye_gaze_interaction:
+
+.. rst-class:: classref-property
+
+:ref:`bool<class_bool>` **xr/openxr/extensions/eye_gaze_interaction** = ``false``
+
+Specify whether to enable eye tracking for this project. Depending on the platform, additional export configuration may be needed.
+
+.. rst-class:: classref-item-separator
+
+----
+
+.. _class_ProjectSettings_property_xr/openxr/extensions/hand_tracking:
+
+.. rst-class:: classref-property
+
+:ref:`bool<class_bool>` **xr/openxr/extensions/hand_tracking** = ``true``
+
+If true we enable the hand tracking extension if available.
+
+.. rst-class:: classref-item-separator
+
+----
+
 .. _class_ProjectSettings_property_xr/openxr/form_factor:
 
 .. rst-class:: classref-property
@@ -11057,7 +11115,7 @@ Specify whether OpenXR should be configured for an HMD or a hand held device.
 
 :ref:`bool<class_bool>` **xr/openxr/foveation_dynamic** = ``false``
 
-If true and foveation is supported, will automatically adjust foveation level based on framerate up to the level set on ``xr/openxr/foveation_level``.
+If true and foveation is supported, will automatically adjust foveation level based on framerate up to the level set on :ref:`xr/openxr/foveation_level<class_ProjectSettings_property_xr/openxr/foveation_level>`.
 
 .. rst-class:: classref-item-separator
 

+ 1 - 1
classes/class_quaternion.rst

@@ -550,7 +550,7 @@ Performs a spherical cubic interpolation between quaternions ``pre_a``, this vec
 
 Performs a spherical cubic interpolation between quaternions ``pre_a``, this vector, ``b``, and ``post_b``, by the given amount ``weight``.
 
-It can perform smoother interpolation than ``spherical_cubic_interpolate()`` by the time values.
+It can perform smoother interpolation than :ref:`spherical_cubic_interpolate<class_Quaternion_method_spherical_cubic_interpolate>` by the time values.
 
 .. rst-class:: classref-section-separator
 

+ 73 - 11
classes/class_renderingserver.rst

@@ -569,6 +569,8 @@ Methods
    +----------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | :ref:`int<class_int>`                                                            | :ref:`mesh_surface_get_format_attribute_stride<class_RenderingServer_method_mesh_surface_get_format_attribute_stride>` **(** |bitfield|\<:ref:`ArrayFormat<enum_RenderingServer_ArrayFormat>`\> format, :ref:`int<class_int>` vertex_count **)** |const|                                                                                                                                                                                                                                                                                                                                                                                                                           |
    +----------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`int<class_int>`                                                            | :ref:`mesh_surface_get_format_normal_tangent_stride<class_RenderingServer_method_mesh_surface_get_format_normal_tangent_stride>` **(** |bitfield|\<:ref:`ArrayFormat<enum_RenderingServer_ArrayFormat>`\> format, :ref:`int<class_int>` vertex_count **)** |const|                                                                                                                                                                                                                                                                                                                                                                                                                 |
+   +----------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | :ref:`int<class_int>`                                                            | :ref:`mesh_surface_get_format_offset<class_RenderingServer_method_mesh_surface_get_format_offset>` **(** |bitfield|\<:ref:`ArrayFormat<enum_RenderingServer_ArrayFormat>`\> format, :ref:`int<class_int>` vertex_count, :ref:`int<class_int>` array_index **)** |const|                                                                                                                                                                                                                                                                                                                                                                                                            |
    +----------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | :ref:`int<class_int>`                                                            | :ref:`mesh_surface_get_format_skin_stride<class_RenderingServer_method_mesh_surface_get_format_skin_stride>` **(** |bitfield|\<:ref:`ArrayFormat<enum_RenderingServer_ArrayFormat>`\> format, :ref:`int<class_int>` vertex_count **)** |const|                                                                                                                                                                                                                                                                                                                                                                                                                                     |
@@ -1596,7 +1598,63 @@ Flag used to mark that the array uses 8 bone weights instead of 4.
 
 :ref:`ArrayFormat<enum_RenderingServer_ArrayFormat>` **ARRAY_FLAG_USES_EMPTY_VERTEX_ARRAY** = ``268435456``
 
+Flag used to mark that the mesh does not have a vertex array and instead will infer vertex positions in the shader using indices and other information.
+
+.. _class_RenderingServer_constant_ARRAY_FLAG_COMPRESS_ATTRIBUTES:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`ArrayFormat<enum_RenderingServer_ArrayFormat>` **ARRAY_FLAG_COMPRESS_ATTRIBUTES** = ``536870912``
+
+Flag used to mark that a mesh is using compressed attributes (vertices, normals, tangents, uvs). When this form of compression is enabled, vertex positions will be packed into into an RGBA16UNORM attribute and scaled in the vertex shader. The normal and tangent will be packed into a RG16UNORM representing an axis, and an 16 bit float stored in the A-channel of the vertex. UVs will use 16-bit normalized floats instead of full 32 bit signed floats. When using this compression mode you must either use vertices, normals, and tangents or only vertices. You cannot use normals without tangents. Importers will automatically enable this compression if they can.
+
+.. _class_RenderingServer_constant_ARRAY_FLAG_FORMAT_VERSION_BASE:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`ArrayFormat<enum_RenderingServer_ArrayFormat>` **ARRAY_FLAG_FORMAT_VERSION_BASE** = ``35``
+
+Flag used to mark the start of the bits used to store the mesh version.
+
+.. _class_RenderingServer_constant_ARRAY_FLAG_FORMAT_VERSION_SHIFT:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`ArrayFormat<enum_RenderingServer_ArrayFormat>` **ARRAY_FLAG_FORMAT_VERSION_SHIFT** = ``35``
+
+Flag used to shift a mesh format int to bring the version into the lowest digits.
+
+.. _class_RenderingServer_constant_ARRAY_FLAG_FORMAT_VERSION_1:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`ArrayFormat<enum_RenderingServer_ArrayFormat>` **ARRAY_FLAG_FORMAT_VERSION_1** = ``0``
+
+Flag used to record the format used by prior mesh versions before the introduction of a version.
+
+.. _class_RenderingServer_constant_ARRAY_FLAG_FORMAT_VERSION_2:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`ArrayFormat<enum_RenderingServer_ArrayFormat>` **ARRAY_FLAG_FORMAT_VERSION_2** = ``34359738368``
+
+Flag used to record the second iteration of the mesh version flag. The primary difference between this and :ref:`ARRAY_FLAG_FORMAT_VERSION_1<class_RenderingServer_constant_ARRAY_FLAG_FORMAT_VERSION_1>` is that this version supports :ref:`ARRAY_FLAG_COMPRESS_ATTRIBUTES<class_RenderingServer_constant_ARRAY_FLAG_COMPRESS_ATTRIBUTES>` and in this version vertex positions are de-interleaved from normals and tangents.
+
+.. _class_RenderingServer_constant_ARRAY_FLAG_FORMAT_CURRENT_VERSION:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`ArrayFormat<enum_RenderingServer_ArrayFormat>` **ARRAY_FLAG_FORMAT_CURRENT_VERSION** = ``34359738368``
+
+Flag used to record the current version that the engine expects. Currently this is the same as :ref:`ARRAY_FLAG_FORMAT_VERSION_2<class_RenderingServer_constant_ARRAY_FLAG_FORMAT_VERSION_2>`.
+
+.. _class_RenderingServer_constant_ARRAY_FLAG_FORMAT_VERSION_MASK:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`ArrayFormat<enum_RenderingServer_ArrayFormat>` **ARRAY_FLAG_FORMAT_VERSION_MASK** = ``255``
+
+Flag used to isolate the bits used for mesh version after using :ref:`ARRAY_FLAG_FORMAT_VERSION_SHIFT<class_RenderingServer_constant_ARRAY_FLAG_FORMAT_VERSION_SHIFT>` to shift them into place.
 
 .. rst-class:: classref-item-separator
 
@@ -8544,9 +8602,19 @@ Returns a mesh's surface's arrays for blend shapes.
 
 :ref:`int<class_int>` **mesh_surface_get_format_attribute_stride** **(** |bitfield|\<:ref:`ArrayFormat<enum_RenderingServer_ArrayFormat>`\> format, :ref:`int<class_int>` vertex_count **)** |const|
 
-.. container:: contribute
+Returns the stride of the attribute buffer for a mesh with given ``format``.
 
-	There is currently no description for this method. Please help us by :ref:`contributing one <doc_updating_the_class_reference>`!
+.. rst-class:: classref-item-separator
+
+----
+
+.. _class_RenderingServer_method_mesh_surface_get_format_normal_tangent_stride:
+
+.. rst-class:: classref-method
+
+:ref:`int<class_int>` **mesh_surface_get_format_normal_tangent_stride** **(** |bitfield|\<:ref:`ArrayFormat<enum_RenderingServer_ArrayFormat>`\> format, :ref:`int<class_int>` vertex_count **)** |const|
+
+Returns the stride of the combined normals and tangents for a mesh with given ``format``. Note importantly that, while normals and tangents are in the vertex buffer with vertices, they are only interleaved with each other and so have a different stride than vertex positions.
 
 .. rst-class:: classref-item-separator
 
@@ -8558,9 +8626,7 @@ Returns a mesh's surface's arrays for blend shapes.
 
 :ref:`int<class_int>` **mesh_surface_get_format_offset** **(** |bitfield|\<:ref:`ArrayFormat<enum_RenderingServer_ArrayFormat>`\> format, :ref:`int<class_int>` vertex_count, :ref:`int<class_int>` array_index **)** |const|
 
-.. container:: contribute
-
-	There is currently no description for this method. Please help us by :ref:`contributing one <doc_updating_the_class_reference>`!
+Returns the offset of a given attribute by ``array_index`` in the start of its respective buffer.
 
 .. rst-class:: classref-item-separator
 
@@ -8572,9 +8638,7 @@ Returns a mesh's surface's arrays for blend shapes.
 
 :ref:`int<class_int>` **mesh_surface_get_format_skin_stride** **(** |bitfield|\<:ref:`ArrayFormat<enum_RenderingServer_ArrayFormat>`\> format, :ref:`int<class_int>` vertex_count **)** |const|
 
-.. container:: contribute
-
-	There is currently no description for this method. Please help us by :ref:`contributing one <doc_updating_the_class_reference>`!
+Returns the stride of the skin buffer for a mesh with given ``format``.
 
 .. rst-class:: classref-item-separator
 
@@ -8586,9 +8650,7 @@ Returns a mesh's surface's arrays for blend shapes.
 
 :ref:`int<class_int>` **mesh_surface_get_format_vertex_stride** **(** |bitfield|\<:ref:`ArrayFormat<enum_RenderingServer_ArrayFormat>`\> format, :ref:`int<class_int>` vertex_count **)** |const|
 
-.. container:: contribute
-
-	There is currently no description for this method. Please help us by :ref:`contributing one <doc_updating_the_class_reference>`!
+Returns the stride of the vertex positions for a mesh with given ``format``. Note importantly that vertex positions are stored consecutively and are not interleaved with the other attributes in the vertex buffer (normals and tangents).
 
 .. rst-class:: classref-item-separator
 

+ 23 - 9
classes/class_resourceimporterobj.rst

@@ -38,15 +38,17 @@ Properties
 .. table::
    :widths: auto
 
-   +-------------------------------+--------------------------------------------------------------------------------+----------------------+
-   | :ref:`bool<class_bool>`       | :ref:`generate_tangents<class_ResourceImporterOBJ_property_generate_tangents>` | ``true``             |
-   +-------------------------------+--------------------------------------------------------------------------------+----------------------+
-   | :ref:`Vector3<class_Vector3>` | :ref:`offset_mesh<class_ResourceImporterOBJ_property_offset_mesh>`             | ``Vector3(0, 0, 0)`` |
-   +-------------------------------+--------------------------------------------------------------------------------+----------------------+
-   | :ref:`bool<class_bool>`       | :ref:`optimize_mesh<class_ResourceImporterOBJ_property_optimize_mesh>`         | ``true``             |
-   +-------------------------------+--------------------------------------------------------------------------------+----------------------+
-   | :ref:`Vector3<class_Vector3>` | :ref:`scale_mesh<class_ResourceImporterOBJ_property_scale_mesh>`               | ``Vector3(1, 1, 1)`` |
-   +-------------------------------+--------------------------------------------------------------------------------+----------------------+
+   +-------------------------------+----------------------------------------------------------------------------------------------------------+----------------------+
+   | :ref:`bool<class_bool>`       | :ref:`force_disable_mesh_compression<class_ResourceImporterOBJ_property_force_disable_mesh_compression>` | ``false``            |
+   +-------------------------------+----------------------------------------------------------------------------------------------------------+----------------------+
+   | :ref:`bool<class_bool>`       | :ref:`generate_tangents<class_ResourceImporterOBJ_property_generate_tangents>`                           | ``true``             |
+   +-------------------------------+----------------------------------------------------------------------------------------------------------+----------------------+
+   | :ref:`Vector3<class_Vector3>` | :ref:`offset_mesh<class_ResourceImporterOBJ_property_offset_mesh>`                                       | ``Vector3(0, 0, 0)`` |
+   +-------------------------------+----------------------------------------------------------------------------------------------------------+----------------------+
+   | :ref:`bool<class_bool>`       | :ref:`optimize_mesh<class_ResourceImporterOBJ_property_optimize_mesh>`                                   | ``true``             |
+   +-------------------------------+----------------------------------------------------------------------------------------------------------+----------------------+
+   | :ref:`Vector3<class_Vector3>` | :ref:`scale_mesh<class_ResourceImporterOBJ_property_scale_mesh>`                                         | ``Vector3(1, 1, 1)`` |
+   +-------------------------------+----------------------------------------------------------------------------------------------------------+----------------------+
 
 .. rst-class:: classref-section-separator
 
@@ -57,6 +59,18 @@ Properties
 Property Descriptions
 ---------------------
 
+.. _class_ResourceImporterOBJ_property_force_disable_mesh_compression:
+
+.. rst-class:: classref-property
+
+:ref:`bool<class_bool>` **force_disable_mesh_compression** = ``false``
+
+If ``true``, mesh compression will not be used. Consider enabling if you notice blocky artifacts in your mesh normals or UVs, or if you have meshes that are larger than a few thousand meters in each direction.
+
+.. rst-class:: classref-item-separator
+
+----
+
 .. _class_ResourceImporterOBJ_property_generate_tangents:
 
 .. rst-class:: classref-property

+ 14 - 0
classes/class_resourceimporterscene.rst

@@ -57,6 +57,8 @@ Properties
    +-------------------------------------+------------------------------------------------------------------------------------------------------------------+-----------+
    | :ref:`bool<class_bool>`             | :ref:`meshes/ensure_tangents<class_ResourceImporterScene_property_meshes/ensure_tangents>`                       | ``true``  |
    +-------------------------------------+------------------------------------------------------------------------------------------------------------------+-----------+
+   | :ref:`bool<class_bool>`             | :ref:`meshes/force_disable_compression<class_ResourceImporterScene_property_meshes/force_disable_compression>`   | ``false`` |
+   +-------------------------------------+------------------------------------------------------------------------------------------------------------------+-----------+
    | :ref:`bool<class_bool>`             | :ref:`meshes/generate_lods<class_ResourceImporterScene_property_meshes/generate_lods>`                           | ``true``  |
    +-------------------------------------+------------------------------------------------------------------------------------------------------------------+-----------+
    | :ref:`int<class_int>`               | :ref:`meshes/light_baking<class_ResourceImporterScene_property_meshes/light_baking>`                             | ``1``     |
@@ -181,6 +183,18 @@ If you don't need material features that require tangents, disabling this can re
 
 ----
 
+.. _class_ResourceImporterScene_property_meshes/force_disable_compression:
+
+.. rst-class:: classref-property
+
+:ref:`bool<class_bool>` **meshes/force_disable_compression** = ``false``
+
+If ``true``, mesh compression will not be used. Consider enabling if you notice blocky artifacts in your mesh normals or UVs, or if you have meshes that are larger than a few thousand meters in each direction.
+
+.. rst-class:: classref-item-separator
+
+----
+
 .. _class_ResourceImporterScene_property_meshes/generate_lods:
 
 .. rst-class:: classref-property

+ 2 - 2
classes/class_richtextlabel.rst

@@ -854,7 +854,7 @@ The number of spaces associated with a single tab length. Does not affect ``\t``
 
 The label's text in BBCode format. Is not representative of manual modifications to the internal tag stack. Erases changes made by other methods when edited.
 
-\ **Note:** If :ref:`bbcode_enabled<class_RichTextLabel_property_bbcode_enabled>` is ``true``, it is unadvised to use the ``+=`` operator with ``text`` (e.g. ``text += "some string"``) as it replaces the whole text and can cause slowdowns. It will also erase all BBCode that was added to stack using ``push_*`` methods. Use :ref:`append_text<class_RichTextLabel_method_append_text>` for adding text instead, unless you absolutely need to close a tag that was opened in an earlier method call.
+\ **Note:** If :ref:`bbcode_enabled<class_RichTextLabel_property_bbcode_enabled>` is ``true``, it is unadvised to use the ``+=`` operator with :ref:`text<class_RichTextLabel_property_text>` (e.g. ``text += "some string"``) as it replaces the whole text and can cause slowdowns. It will also erase all BBCode that was added to stack using ``push_*`` methods. Use :ref:`append_text<class_RichTextLabel_method_append_text>` for adding text instead, unless you absolutely need to close a tag that was opened in an earlier method call.
 
 .. rst-class:: classref-item-separator
 
@@ -2198,7 +2198,7 @@ The default text font size.
 
 :ref:`StyleBox<class_StyleBox>` **focus**
 
-The background used when the **RichTextLabel** is focused. The ``focus`` :ref:`StyleBox<class_StyleBox>` is displayed *over* the base :ref:`StyleBox<class_StyleBox>`, so a partially transparent :ref:`StyleBox<class_StyleBox>` should be used to ensure the base :ref:`StyleBox<class_StyleBox>` remains visible. A :ref:`StyleBox<class_StyleBox>` that represents an outline or an underline works well for this purpose. To disable the focus visual effect, assign a :ref:`StyleBoxEmpty<class_StyleBoxEmpty>` resource. Note that disabling the focus visual effect will harm keyboard/controller navigation usability, so this is not recommended for accessibility reasons.
+The background used when the **RichTextLabel** is focused. The :ref:`focus<class_RichTextLabel_theme_style_focus>` :ref:`StyleBox<class_StyleBox>` is displayed *over* the base :ref:`StyleBox<class_StyleBox>`, so a partially transparent :ref:`StyleBox<class_StyleBox>` should be used to ensure the base :ref:`StyleBox<class_StyleBox>` remains visible. A :ref:`StyleBox<class_StyleBox>` that represents an outline or an underline works well for this purpose. To disable the focus visual effect, assign a :ref:`StyleBoxEmpty<class_StyleBoxEmpty>` resource. Note that disabling the focus visual effect will harm keyboard/controller navigation usability, so this is not recommended for accessibility reasons.
 
 .. rst-class:: classref-item-separator
 

+ 1 - 1
classes/class_rigidbody3d.rst

@@ -584,7 +584,7 @@ This is multiplied by the global 3D gravity setting found in **Project > Project
 
 The body's moment of inertia. This is like mass, but for rotation: it determines how much torque it takes to rotate the body on each axis. The moment of inertia is usually computed automatically from the mass and the shapes, but this property allows you to set a custom value.
 
-If set to ``Vector3.ZERO``, inertia is automatically computed (default value).
+If set to :ref:`Vector3.ZERO<class_Vector3_constant_ZERO>`, inertia is automatically computed (default value).
 
 \ **Note:** This value does not change when inertia is automatically computed. Use :ref:`PhysicsServer3D<class_PhysicsServer3D>` to get the computed inertia.
 

+ 16 - 0
classes/class_scriptextension.rst

@@ -69,6 +69,8 @@ Methods
    +---------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | :ref:`bool<class_bool>`                     | :ref:`_has_source_code<class_ScriptExtension_method__has_source_code>` **(** **)** |virtual| |const|                                                                    |
    +---------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`                     | :ref:`_has_static_method<class_ScriptExtension_method__has_static_method>` **(** :ref:`StringName<class_StringName>` method **)** |virtual| |const|                     |
+   +---------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | :ref:`bool<class_bool>`                     | :ref:`_inherits_script<class_ScriptExtension_method__inherits_script>` **(** :ref:`Script<class_Script>` script **)** |virtual| |const|                                 |
    +---------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | void*                                       | :ref:`_instance_create<class_ScriptExtension_method__instance_create>` **(** :ref:`Object<class_Object>` for_object **)** |virtual| |const|                             |
@@ -411,6 +413,20 @@ Method Descriptions
 
 ----
 
+.. _class_ScriptExtension_method__has_static_method:
+
+.. rst-class:: classref-method
+
+:ref:`bool<class_bool>` **_has_static_method** **(** :ref:`StringName<class_StringName>` method **)** |virtual| |const|
+
+.. container:: contribute
+
+	There is currently no description for this method. Please help us by :ref:`contributing one <doc_updating_the_class_reference>`!
+
+.. rst-class:: classref-item-separator
+
+----
+
 .. _class_ScriptExtension_method__inherits_script:
 
 .. rst-class:: classref-method

+ 1 - 1
classes/class_separationrayshape2d.rst

@@ -19,7 +19,7 @@ A 2D ray shape used for physics collision that tries to separate itself from any
 Description
 -----------
 
-A 2D ray shape, intended for use in physics. Usually used to provide a shape for a :ref:`CollisionShape2D<class_CollisionShape2D>`. When a **SeparationRayShape2D** collides with an object, it tries to separate itself from it by moving its endpoint to the collision point. It can for example be used for spears falling from the sky.
+A 2D ray shape, intended for use in physics. Usually used to provide a shape for a :ref:`CollisionShape2D<class_CollisionShape2D>`. When a **SeparationRayShape2D** collides with an object, it tries to separate itself from it by moving its endpoint to the collision point. For example, a **SeparationRayShape2D** next to a character can allow it to instantly move up when touching stairs.
 
 .. rst-class:: classref-reftable-group
 

+ 1 - 1
classes/class_separationrayshape3d.rst

@@ -19,7 +19,7 @@ A 3D ray shape used for physics collision that tries to separate itself from any
 Description
 -----------
 
-A 3D ray shape, intended for use in physics. Usually used to provide a shape for a :ref:`CollisionShape3D<class_CollisionShape3D>`. When a **SeparationRayShape3D** collides with an object, it tries to separate itself from it by moving its endpoint to the collision point. It can for example be used for spears falling from the sky.
+A 3D ray shape, intended for use in physics. Usually used to provide a shape for a :ref:`CollisionShape3D<class_CollisionShape3D>`. When a **SeparationRayShape3D** collides with an object, it tries to separate itself from it by moving its endpoint to the collision point. For example, a **SeparationRayShape3D** next to a character can allow it to instantly move up when touching stairs.
 
 .. rst-class:: classref-reftable-group
 

+ 4 - 4
classes/class_slider.rst

@@ -202,7 +202,7 @@ Boolean constant. If ``1``, the grabber texture size will be ignored and it will
 
 :ref:`int<class_int>` **grabber_offset** = ``0``
 
-Vertical/horizontal offset of the grabber.
+Vertical or horizontal offset of the grabber.
 
 .. rst-class:: classref-item-separator
 
@@ -262,7 +262,7 @@ The texture for the ticks, visible when :ref:`tick_count<class_Slider_property_t
 
 :ref:`StyleBox<class_StyleBox>` **grabber_area**
 
-The background of the area to the left/bottom of the grabber.
+The background of the area to the left or bottom of the grabber.
 
 .. rst-class:: classref-item-separator
 
@@ -274,7 +274,7 @@ The background of the area to the left/bottom of the grabber.
 
 :ref:`StyleBox<class_StyleBox>` **grabber_area_highlight**
 
-The background of the area to the left/bottom of the grabber that displays when it's being hovered or focused.
+The background of the area to the left or bottom of the grabber that displays when it's being hovered or focused.
 
 .. rst-class:: classref-item-separator
 
@@ -286,7 +286,7 @@ The background of the area to the left/bottom of the grabber that displays when
 
 :ref:`StyleBox<class_StyleBox>` **slider**
 
-The background for the whole slider. Determines the height/width of the ``grabber_area``.
+The background for the whole slider. Affects the height or width of the :ref:`grabber_area<class_Slider_theme_style_grabber_area>`.
 
 .. |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 - 3
classes/class_spinbox.rst

@@ -143,7 +143,7 @@ Changes the alignment of the underlying :ref:`LineEdit<class_LineEdit>`.
 - void **set_custom_arrow_step** **(** :ref:`float<class_float>` value **)**
 - :ref:`float<class_float>` **get_custom_arrow_step** **(** **)**
 
-If not ``0``, ``value`` will always be rounded to a multiple of ``custom_arrow_step`` when interacting with the arrow buttons of the **SpinBox**.
+If not ``0``, :ref:`Range.value<class_Range_property_value>` will always be rounded to a multiple of :ref:`custom_arrow_step<class_SpinBox_property_custom_arrow_step>` when interacting with the arrow buttons of the **SpinBox**.
 
 .. rst-class:: classref-item-separator
 
@@ -177,7 +177,7 @@ If ``true``, the **SpinBox** will be editable. Otherwise, it will be read only.
 - void **set_prefix** **(** :ref:`String<class_String>` value **)**
 - :ref:`String<class_String>` **get_prefix** **(** **)**
 
-Adds the specified ``prefix`` string before the numerical value of the **SpinBox**.
+Adds the specified prefix string before the numerical value of the **SpinBox**.
 
 .. rst-class:: classref-item-separator
 
@@ -211,7 +211,7 @@ If ``true``, the **SpinBox** will select the whole text when the :ref:`LineEdit<
 - void **set_suffix** **(** :ref:`String<class_String>` value **)**
 - :ref:`String<class_String>` **get_suffix** **(** **)**
 
-Adds the specified ``suffix`` string after the numerical value of the **SpinBox**.
+Adds the specified suffix string after the numerical value of the **SpinBox**.
 
 .. rst-class:: classref-item-separator
 

+ 29 - 0
classes/class_subviewportcontainer.rst

@@ -41,6 +41,18 @@ Properties
    | :ref:`int<class_int>`                    | :ref:`stretch_shrink<class_SubViewportContainer_property_stretch_shrink>` | ``1``                                                               |
    +------------------------------------------+---------------------------------------------------------------------------+---------------------------------------------------------------------+
 
+.. rst-class:: classref-reftable-group
+
+Methods
+-------
+
+.. table::
+   :widths: auto
+
+   +-------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>` | :ref:`_propagate_input_event<class_SubViewportContainer_method__propagate_input_event>` **(** :ref:`InputEvent<class_InputEvent>` event **)** |virtual| |const| |
+   +-------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
 .. rst-class:: classref-section-separator
 
 ----
@@ -86,6 +98,23 @@ For example, a 1280×720 sub-viewport with :ref:`stretch_shrink<class_SubViewpor
 
 \ **Note:** :ref:`stretch<class_SubViewportContainer_property_stretch>` must be ``true`` for this property to work.
 
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
+
+Method Descriptions
+-------------------
+
+.. _class_SubViewportContainer_method__propagate_input_event:
+
+.. rst-class:: classref-method
+
+:ref:`bool<class_bool>` **_propagate_input_event** **(** :ref:`InputEvent<class_InputEvent>` event **)** |virtual| |const|
+
+Virtual method to be implemented by the user. If it returns ``true``, the ``event`` is propagated to :ref:`SubViewport<class_SubViewport>` children. Propagation doesn't happen if it returns ``false``. If the function is not implemented, all events are propagated to SubViewports.
+
 .. |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.)`

+ 2 - 2
classes/class_textedit.rst

@@ -1476,7 +1476,7 @@ Allow scrolling past the last line into "virtual" space.
 - void **set_smooth_scroll_enabled** **(** :ref:`bool<class_bool>` value **)**
 - :ref:`bool<class_bool>` **is_smooth_scroll_enabled** **(** **)**
 
-Scroll smoothly over the text rather then jumping to the next location.
+Scroll smoothly over the text rather than jumping to the next location.
 
 .. rst-class:: classref-item-separator
 
@@ -3699,7 +3699,7 @@ Sets a custom :ref:`Texture2D<class_Texture2D>` for tab text characters.
 
 :ref:`StyleBox<class_StyleBox>` **focus**
 
-Sets the :ref:`StyleBox<class_StyleBox>` when in focus. The ``focus`` :ref:`StyleBox<class_StyleBox>` is displayed *over* the base :ref:`StyleBox<class_StyleBox>`, so a partially transparent :ref:`StyleBox<class_StyleBox>` should be used to ensure the base :ref:`StyleBox<class_StyleBox>` remains visible. A :ref:`StyleBox<class_StyleBox>` that represents an outline or an underline works well for this purpose. To disable the focus visual effect, assign a :ref:`StyleBoxEmpty<class_StyleBoxEmpty>` resource. Note that disabling the focus visual effect will harm keyboard/controller navigation usability, so this is not recommended for accessibility reasons.
+Sets the :ref:`StyleBox<class_StyleBox>` when in focus. The :ref:`focus<class_TextEdit_theme_style_focus>` :ref:`StyleBox<class_StyleBox>` is displayed *over* the base :ref:`StyleBox<class_StyleBox>`, so a partially transparent :ref:`StyleBox<class_StyleBox>` should be used to ensure the base :ref:`StyleBox<class_StyleBox>` remains visible. A :ref:`StyleBox<class_StyleBox>` that represents an outline or an underline works well for this purpose. To disable the focus visual effect, assign a :ref:`StyleBoxEmpty<class_StyleBoxEmpty>` resource. Note that disabling the focus visual effect will harm keyboard/controller navigation usability, so this is not recommended for accessibility reasons.
 
 .. rst-class:: classref-item-separator
 

+ 17 - 5
classes/class_textserver.rst

@@ -34,6 +34,8 @@ Methods
    +-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | :ref:`RID<class_RID>`                                           | :ref:`create_font<class_TextServer_method_create_font>` **(** **)**                                                                                                                                                                                                                                                                                                    |
    +-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`RID<class_RID>`                                           | :ref:`create_font_linked_variation<class_TextServer_method_create_font_linked_variation>` **(** :ref:`RID<class_RID>` font_rid **)**                                                                                                                                                                                                                                   |
+   +-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | :ref:`RID<class_RID>`                                           | :ref:`create_shaped_text<class_TextServer_method_create_shaped_text>` **(** :ref:`Direction<enum_TextServer_Direction>` direction=0, :ref:`Orientation<enum_TextServer_Orientation>` orientation=0 **)**                                                                                                                                                               |
    +-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | void                                                            | :ref:`draw_hex_code_box<class_TextServer_method_draw_hex_code_box>` **(** :ref:`RID<class_RID>` canvas, :ref:`int<class_int>` size, :ref:`Vector2<class_Vector2>` pos, :ref:`int<class_int>` index, :ref:`Color<class_Color>` color **)** |const|                                                                                                                      |
@@ -1454,9 +1456,7 @@ BiDi override for email.
 
 :ref:`StructuredTextParser<enum_TextServer_StructuredTextParser>` **STRUCTURED_TEXT_LIST** = ``4``
 
-BiDi override for lists.
-
-Structured text options: list separator ``String``.
+BiDi override for lists. Structured text options: list separator :ref:`String<class_String>`.
 
 .. _class_TextServer_constant_STRUCTURED_TEXT_GDSCRIPT:
 
@@ -1495,6 +1495,18 @@ Creates a new, empty font cache entry resource. To free the resulting resource,
 
 ----
 
+.. _class_TextServer_method_create_font_linked_variation:
+
+.. rst-class:: classref-method
+
+:ref:`RID<class_RID>` **create_font_linked_variation** **(** :ref:`RID<class_RID>` font_rid **)**
+
+Creates a new variation existing font which is reusing the same glyph cache and font data. To free the resulting resource, use the :ref:`free_rid<class_TextServer_method_free_rid>` method.
+
+.. rst-class:: classref-item-separator
+
+----
+
 .. _class_TextServer_method_create_shaped_text:
 
 .. rst-class:: classref-method
@@ -1747,7 +1759,7 @@ Returns glyph advance (offset of the next glyph).
 
 :ref:`Dictionary<class_Dictionary>` **font_get_glyph_contours** **(** :ref:`RID<class_RID>` font, :ref:`int<class_int>` size, :ref:`int<class_int>` index **)** |const|
 
-Returns outline contours of the glyph as a ``Dictionary`` with the following contents:
+Returns outline contours of the glyph as a :ref:`Dictionary<class_Dictionary>` with the following contents:
 
 \ ``points``         - :ref:`PackedVector3Array<class_PackedVector3Array>`, containing outline points. ``x`` and ``y`` are point coordinates. ``z`` is the type of the point, using the :ref:`ContourPointTag<enum_TextServer_ContourPointTag>` values.
 
@@ -2033,7 +2045,7 @@ Returns list of script support overrides.
 
 :ref:`Vector2i[]<class_Vector2i>` **font_get_size_cache_list** **(** :ref:`RID<class_RID>` font_rid **)** |const|
 
-Returns list of the font sizes in the cache. Each size is ``Vector2i`` with font size and outline size.
+Returns list of the font sizes in the cache. Each size is :ref:`Vector2i<class_Vector2i>` with font size and outline size.
 
 .. rst-class:: classref-item-separator
 

+ 16 - 0
classes/class_textserverextension.rst

@@ -36,6 +36,8 @@ Methods
    +-----------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | :ref:`RID<class_RID>`                                           | :ref:`_create_font<class_TextServerExtension_method__create_font>` **(** **)** |virtual|                                                                                                                                                                                                                                                                                   |
    +-----------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`RID<class_RID>`                                           | :ref:`_create_font_linked_variation<class_TextServerExtension_method__create_font_linked_variation>` **(** :ref:`RID<class_RID>` font_rid **)** |virtual|                                                                                                                                                                                                                  |
+   +-----------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | :ref:`RID<class_RID>`                                           | :ref:`_create_shaped_text<class_TextServerExtension_method__create_shaped_text>` **(** :ref:`Direction<enum_TextServer_Direction>` direction, :ref:`Orientation<enum_TextServer_Orientation>` orientation **)** |virtual|                                                                                                                                                  |
    +-----------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | void                                                            | :ref:`_draw_hex_code_box<class_TextServerExtension_method__draw_hex_code_box>` **(** :ref:`RID<class_RID>` canvas, :ref:`int<class_int>` size, :ref:`Vector2<class_Vector2>` pos, :ref:`int<class_int>` index, :ref:`Color<class_Color>` color **)** |virtual| |const|                                                                                                     |
@@ -476,6 +478,20 @@ void **_cleanup** **(** **)** |virtual|
 
 ----
 
+.. _class_TextServerExtension_method__create_font_linked_variation:
+
+.. rst-class:: classref-method
+
+:ref:`RID<class_RID>` **_create_font_linked_variation** **(** :ref:`RID<class_RID>` font_rid **)** |virtual|
+
+.. container:: contribute
+
+	There is currently no description for this method. Please help us by :ref:`contributing one <doc_updating_the_class_reference>`!
+
+.. rst-class:: classref-item-separator
+
+----
+
 .. _class_TextServerExtension_method__create_shaped_text:
 
 .. rst-class:: classref-method

+ 3 - 3
classes/class_textureprogressbar.rst

@@ -415,7 +415,7 @@ The offset of :ref:`texture_progress<class_TextureProgressBar_property_texture_p
 - void **set_tint_over** **(** :ref:`Color<class_Color>` value **)**
 - :ref:`Color<class_Color>` **get_tint_over** **(** **)**
 
-Multiplies the color of the bar's ``texture_over`` texture. The effect is similar to :ref:`CanvasItem.modulate<class_CanvasItem_property_modulate>`, except it only affects this specific texture instead of the entire node.
+Multiplies the color of the bar's :ref:`texture_over<class_TextureProgressBar_property_texture_over>` texture. The effect is similar to :ref:`CanvasItem.modulate<class_CanvasItem_property_modulate>`, except it only affects this specific texture instead of the entire node.
 
 .. rst-class:: classref-item-separator
 
@@ -432,7 +432,7 @@ Multiplies the color of the bar's ``texture_over`` texture. The effect is simila
 - void **set_tint_progress** **(** :ref:`Color<class_Color>` value **)**
 - :ref:`Color<class_Color>` **get_tint_progress** **(** **)**
 
-Multiplies the color of the bar's ``texture_progress`` texture.
+Multiplies the color of the bar's :ref:`texture_progress<class_TextureProgressBar_property_texture_progress>` texture.
 
 .. rst-class:: classref-item-separator
 
@@ -449,7 +449,7 @@ Multiplies the color of the bar's ``texture_progress`` texture.
 - void **set_tint_under** **(** :ref:`Color<class_Color>` value **)**
 - :ref:`Color<class_Color>` **get_tint_under** **(** **)**
 
-Multiplies the color of the bar's ``texture_under`` texture.
+Multiplies the color of the bar's :ref:`texture_under<class_TextureProgressBar_property_texture_under>` texture.
 
 .. rst-class:: classref-section-separator
 

+ 1 - 1
classes/class_tileset.rst

@@ -886,7 +886,7 @@ Returns the navigation layers count.
 
 :ref:`int<class_int>` **get_next_source_id** **(** **)** |const|
 
-Returns a new unused source ID. This generated ID is the same that a call to ``add_source`` would return.
+Returns a new unused source ID. This generated ID is the same that a call to :ref:`add_source<class_TileSet_method_add_source>` would return.
 
 .. rst-class:: classref-item-separator
 

+ 1 - 1
classes/class_tilesetatlassource.rst

@@ -345,7 +345,7 @@ Creates a new tile at coordinates ``atlas_coords`` with the given ``size``.
 
 :ref:`Vector2i<class_Vector2i>` **get_atlas_grid_size** **(** **)** |const|
 
-Returns the atlas grid size, which depends on how many tiles can fit in the texture. It thus depends on the Texture's size, the atlas ``margins`` the tiles' ``texture_region_size``.
+Returns the atlas grid size, which depends on how many tiles can fit in the texture. It thus depends on the :ref:`texture<class_TileSetAtlasSource_property_texture>`'s size, the atlas :ref:`margins<class_TileSetAtlasSource_property_margins>`, and the tiles' :ref:`texture_region_size<class_TileSetAtlasSource_property_texture_region_size>`.
 
 .. rst-class:: classref-item-separator
 

+ 1 - 1
classes/class_tlsoptions.rst

@@ -72,7 +72,7 @@ Method Descriptions
 
 Creates a TLS client configuration which validates certificates and their common names (fully qualified domain names).
 
-You can specify a custom ``trusted_chain`` of certification authorities (the default CA list will be used if ``null``), and optionally provide a ``common_name_override`` if you expect the certificate to have a common name other then the server FQDN.
+You can specify a custom ``trusted_chain`` of certification authorities (the default CA list will be used if ``null``), and optionally provide a ``common_name_override`` if you expect the certificate to have a common name other than the server FQDN.
 
 \ **Note:** On the Web platform, TLS verification is always enforced against the CA list of the web browser. This is considered a security feature.
 

+ 1 - 1
classes/class_transform2d.rst

@@ -438,7 +438,7 @@ Returns ``true`` if the transform's basis is conformal, meaning it preserves ang
 
 :ref:`bool<class_bool>` **is_equal_approx** **(** :ref:`Transform2D<class_Transform2D>` xform **)** |const|
 
-Returns ``true`` if this transform and ``xform`` are approximately equal, by calling ``is_equal_approx`` on each component.
+Returns ``true`` if this transform and ``xform`` are approximately equal, by running :ref:`@GlobalScope.is_equal_approx<class_@GlobalScope_method_is_equal_approx>` on each component.
 
 .. rst-class:: classref-item-separator
 

+ 1 - 1
classes/class_transform3d.rst

@@ -318,7 +318,7 @@ Returns the inverse of the transform, under the assumption that the transformati
 
 :ref:`bool<class_bool>` **is_equal_approx** **(** :ref:`Transform3D<class_Transform3D>` xform **)** |const|
 
-Returns ``true`` if this transform and ``xform`` are approximately equal, by calling ``is_equal_approx`` on each component.
+Returns ``true`` if this transform and ``xform`` are approximately equal, by running :ref:`@GlobalScope.is_equal_approx<class_@GlobalScope_method_is_equal_approx>` on each component.
 
 .. rst-class:: classref-item-separator
 

+ 1 - 1
classes/class_tree.rst

@@ -477,7 +477,7 @@ Emitted when an item is selected.
 
 **multi_selected** **(** :ref:`TreeItem<class_TreeItem>` item, :ref:`int<class_int>` column, :ref:`bool<class_bool>` selected **)**
 
-Emitted instead of ``item_selected`` if ``select_mode`` is :ref:`SELECT_MULTI<class_Tree_constant_SELECT_MULTI>`.
+Emitted instead of :ref:`item_selected<class_Tree_signal_item_selected>` if :ref:`select_mode<class_Tree_property_select_mode>` is set to :ref:`SELECT_MULTI<class_Tree_constant_SELECT_MULTI>`.
 
 .. rst-class:: classref-item-separator
 

+ 1 - 1
classes/class_variant.rst

@@ -49,7 +49,7 @@ Godot tracks all scripting API variables within Variants. Without even realizing
 
 - GDScript automatically wrap values in them. It keeps all data in plain Variants by default and then optionally enforces custom static typing rules on variable types.
 
-- C# is statically typed, but uses its own implementation of the ``Variant`` type in place of Godot's Variant class when it needs to represent a dynamic value. A ``Variant`` can be assigned any compatible type implicitly but converting requires an explicit cast.
+- C# is statically typed, but uses its own implementation of the Variant type in place of Godot's **Variant** class when it needs to represent a dynamic value. C# Variant can be assigned any compatible type implicitly but converting requires an explicit cast.
 
 The global :ref:`@GlobalScope.typeof<class_@GlobalScope_method_typeof>` function returns the enumerated value of the Variant type stored in the current variable (see :ref:`Variant.Type<enum_@GlobalScope_Variant.Type>`).
 

+ 1 - 1
classes/class_vector2.rst

@@ -548,7 +548,7 @@ Performs a cubic interpolation between this vector and ``b`` using ``pre_a`` and
 
 Performs a cubic interpolation between this vector and ``b`` using ``pre_a`` and ``post_b`` as handles, and returns the result at position ``weight``. ``weight`` is on the range of 0.0 to 1.0, representing the amount of interpolation.
 
-It can perform smoother interpolation than ``cubic_interpolate()`` by the time values.
+It can perform smoother interpolation than :ref:`cubic_interpolate<class_Vector2_method_cubic_interpolate>` by the time values.
 
 .. rst-class:: classref-item-separator
 

+ 1 - 1
classes/class_vector3.rst

@@ -586,7 +586,7 @@ Performs a cubic interpolation between this vector and ``b`` using ``pre_a`` and
 
 Performs a cubic interpolation between this vector and ``b`` using ``pre_a`` and ``post_b`` as handles, and returns the result at position ``weight``. ``weight`` is on the range of 0.0 to 1.0, representing the amount of interpolation.
 
-It can perform smoother interpolation than ``cubic_interpolate()`` by the time values.
+It can perform smoother interpolation than :ref:`cubic_interpolate<class_Vector3_method_cubic_interpolate>` by the time values.
 
 .. rst-class:: classref-item-separator
 

+ 1 - 1
classes/class_vector4.rst

@@ -399,7 +399,7 @@ Performs a cubic interpolation between this vector and ``b`` using ``pre_a`` and
 
 Performs a cubic interpolation between this vector and ``b`` using ``pre_a`` and ``post_b`` as handles, and returns the result at position ``weight``. ``weight`` is on the range of 0.0 to 1.0, representing the amount of interpolation.
 
-It can perform smoother interpolation than ``cubic_interpolate()`` by the time values.
+It can perform smoother interpolation than :ref:`cubic_interpolate<class_Vector4_method_cubic_interpolate>` by the time values.
 
 .. rst-class:: classref-item-separator
 

+ 1 - 1
classes/class_visualshadernodeswitch.rst

@@ -19,7 +19,7 @@ A selector function for use within the visual shader graph.
 Description
 -----------
 
-Returns an associated value of the ``op_type`` type if the provided boolean value is ``true`` or ``false``.
+Returns an associated value of the :ref:`op_type<class_VisualShaderNodeSwitch_property_op_type>` type if the provided boolean value is ``true`` or ``false``.
 
 .. rst-class:: classref-reftable-group
 

+ 36 - 5
classes/class_window.rst

@@ -58,6 +58,8 @@ Properties
    +-----------------------------------------------------------------+-----------------------------------------------------------------------------------+--------------------------+
    | :ref:`WindowInitialPosition<enum_Window_WindowInitialPosition>` | :ref:`initial_position<class_Window_property_initial_position>`                   | ``0``                    |
    +-----------------------------------------------------------------+-----------------------------------------------------------------------------------+--------------------------+
+   | :ref:`bool<class_bool>`                                         | :ref:`keep_title_visible<class_Window_property_keep_title_visible>`               | ``false``                |
+   +-----------------------------------------------------------------+-----------------------------------------------------------------------------------+--------------------------+
    | :ref:`Vector2i<class_Vector2i>`                                 | :ref:`max_size<class_Window_property_max_size>`                                   | ``Vector2i(0, 0)``       |
    +-----------------------------------------------------------------+-----------------------------------------------------------------------------------+--------------------------+
    | :ref:`Vector2i<class_Vector2i>`                                 | :ref:`min_size<class_Window_property_min_size>`                                   | ``Vector2i(0, 0)``       |
@@ -505,9 +507,15 @@ Maximized window mode, i.e. **Window** will occupy whole screen area except task
 
 :ref:`Mode<enum_Window_Mode>` **MODE_FULLSCREEN** = ``3``
 
-Full screen window mode. Note that this is not *exclusive* full screen. On Windows and Linux, a borderless window is used to emulate full screen. On macOS, a new desktop is used to display the running project.
+Full screen mode with full multi-window support.
+
+Full screen window covers the entire display area of a screen and has no decorations. The display's video mode is not changed.
+
+\ **On Windows:** Multi-window full-screen mode has a 1px border of the :ref:`ProjectSettings.rendering/environment/defaults/default_clear_color<class_ProjectSettings_property_rendering/environment/defaults/default_clear_color>` color.
 
-Regardless of the platform, enabling full screen will change the window size to match the monitor's size. Therefore, make sure your project supports :doc:`multiple resolutions <../tutorials/rendering/multiple_resolutions>` when enabling full screen mode.
+\ **On macOS:** A new desktop is used to display the running project.
+
+\ **Note:** Regardless of the platform, enabling full screen will change the window size to match the monitor's size. Therefore, make sure your project supports :doc:`multiple resolutions <../tutorials/rendering/multiple_resolutions>` when enabling full screen mode.
 
 .. _class_Window_constant_MODE_EXCLUSIVE_FULLSCREEN:
 
@@ -515,11 +523,17 @@ Regardless of the platform, enabling full screen will change the window size to
 
 :ref:`Mode<enum_Window_Mode>` **MODE_EXCLUSIVE_FULLSCREEN** = ``4``
 
-Exclusive full screen window mode. This mode is implemented on Windows only. On other platforms, it is equivalent to :ref:`MODE_FULLSCREEN<class_Window_constant_MODE_FULLSCREEN>`.
+A single window full screen mode. This mode has less overhead, but only one window can be open on a given screen at a time (opening a child window or application switching will trigger a full screen transition).
+
+Full screen window covers the entire display area of a screen and has no border or decorations. The display's video mode is not changed.
 
-Only one window in exclusive full screen mode can be visible on a given screen at a time. If multiple windows are in exclusive full screen mode for the same screen, the last one being set to this mode takes precedence.
+\ **On Windows:** Depending on video driver, full screen transition might cause screens to go black for a moment.
 
-Regardless of the platform, enabling full screen will change the window size to match the monitor's size. Therefore, make sure your project supports :doc:`multiple resolutions <../tutorials/rendering/multiple_resolutions>` when enabling full screen mode.
+\ **On macOS:** A new desktop is used to display the running project. Exclusive full screen mode prevents Dock and Menu from showing up when the mouse pointer is hovering the edge of the screen.
+
+\ **On Linux (X11):** Exclusive full screen mode bypasses compositor.
+
+\ **Note:** Regardless of the platform, enabling full screen will change the window size to match the monitor's size. Therefore, make sure your project supports :doc:`multiple resolutions <../tutorials/rendering/multiple_resolutions>` when enabling full screen mode.
 
 .. rst-class:: classref-item-separator
 
@@ -1075,6 +1089,23 @@ Specifies the initial type of position for the **Window**. See :ref:`WindowIniti
 
 ----
 
+.. _class_Window_property_keep_title_visible:
+
+.. rst-class:: classref-property
+
+:ref:`bool<class_bool>` **keep_title_visible** = ``false``
+
+.. rst-class:: classref-property-setget
+
+- void **set_keep_title_visible** **(** :ref:`bool<class_bool>` value **)**
+- :ref:`bool<class_bool>` **get_keep_title_visible** **(** **)**
+
+If ``true``, the **Window** width is expanded to keep the title bar text fully visible.
+
+.. rst-class:: classref-item-separator
+
+----
+
 .. _class_Window_property_max_size:
 
 .. rst-class:: classref-property

+ 1 - 1
classes/class_worldboundaryshape2d.rst

@@ -74,7 +74,7 @@ In the scalar equation of the line ``ax + by = d``, this is ``d``, while the ``(
 - void **set_normal** **(** :ref:`Vector2<class_Vector2>` value **)**
 - :ref:`Vector2<class_Vector2>` **get_normal** **(** **)**
 
-The line's normal, typically a unit vector. Its direction indicates the non-colliding half-plane. Can be of any length but zero. Defaults to ``Vector2.UP``.
+The line's normal, typically a unit vector. Its direction indicates the non-colliding half-plane. Can be of any length but zero. Defaults to :ref:`Vector2.UP<class_Vector2_constant_UP>`.
 
 .. |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.)`

+ 1 - 1
classes/class_xrpositionaltracker.rst

@@ -347,7 +347,7 @@ Returns ``true`` if the tracker is available and is currently tracking the bound
 
 void **invalidate_pose** **(** :ref:`StringName<class_StringName>` name **)**
 
-Marks this pose as invalid, we don't clear the last reported state but it allows users to decide if trackers need to be hidden if we loose tracking or just remain at their last known position.
+Marks this pose as invalid, we don't clear the last reported state but it allows users to decide if trackers need to be hidden if we lose tracking or just remain at their last known position.
 
 .. rst-class:: classref-item-separator