Browse Source

classref: Sync with current master branch (fc1c25d29)

Rémi Verschelde 2 years ago
parent
commit
263e4d6224
100 changed files with 2439 additions and 1565 deletions
  1. 47 52
      classes/[email protected]
  2. 244 182
      classes/[email protected]
  3. 12 0
      classes/class_aabb.rst
  4. 22 6
      classes/class_animation.rst
  5. 10 2
      classes/class_animationplayer.rst
  6. 11 11
      classes/class_area3d.rst
  7. 37 2
      classes/class_array.rst
  8. 1 1
      classes/class_astar2d.rst
  9. 1 1
      classes/class_astar3d.rst
  10. 1 1
      classes/class_audiostreamgeneratorplayback.rst
  11. 82 64
      classes/class_basebutton.rst
  12. 28 14
      classes/class_basematerial3d.rst
  13. 12 24
      classes/class_basis.rst
  14. 1 1
      classes/class_bitmap.rst
  15. 5 0
      classes/class_bonemap.rst
  16. 2 2
      classes/class_button.rst
  17. 3 1
      classes/class_callbacktweener.rst
  18. 39 39
      classes/class_camera2d.rst
  19. 46 36
      classes/class_cameraattributes.rst
  20. 93 33
      classes/class_canvasitem.rst
  21. 2 0
      classes/class_canvaslayer.rst
  22. 23 0
      classes/class_canvastexture.rst
  23. 1 1
      classes/class_characterbody2d.rst
  24. 1 1
      classes/class_characterbody3d.rst
  25. 1 1
      classes/class_checkbox.rst
  26. 1 1
      classes/class_checkbutton.rst
  27. 1 1
      classes/class_classdb.rst
  28. 4 4
      classes/class_codeedit.rst
  29. 12 32
      classes/class_color.rst
  30. 119 27
      classes/class_colorpicker.rst
  31. 7 7
      classes/class_configfile.rst
  32. 2 2
      classes/class_confirmationdialog.rst
  33. 2 2
      classes/class_container.rst
  34. 110 94
      classes/class_control.rst
  35. 69 1
      classes/class_cpuparticles2d.rst
  36. 7 3
      classes/class_cpuparticles3d.rst
  37. 4 2
      classes/class_csgshape3d.rst
  38. 1 1
      classes/class_curve.rst
  39. 53 35
      classes/class_curve2d.rst
  40. 2 0
      classes/class_cylindershape3d.rst
  41. 6 0
      classes/class_dictionary.rst
  42. 6 6
      classes/class_diraccess.rst
  43. 254 113
      classes/class_displayserver.rst
  44. 1 1
      classes/class_editorcommandpalette.rst
  45. 9 5
      classes/class_editorfeatureprofile.rst
  46. 6 1
      classes/class_editorfiledialog.rst
  47. 1 1
      classes/class_editorinspector.rst
  48. 1 1
      classes/class_editorinspectorplugin.rst
  49. 23 1
      classes/class_editorinterface.rst
  50. 16 4
      classes/class_editorplugin.rst
  51. 2 0
      classes/class_editorproperty.rst
  52. 2 0
      classes/class_editorscript.rst
  53. 28 12
      classes/class_editorsettings.rst
  54. 19 11
      classes/class_editorspinslider.rst
  55. 17 0
      classes/class_editorundoredomanager.rst
  56. 5 33
      classes/class_enetmultiplayerpeer.rst
  57. 22 22
      classes/class_enetpacketpeer.rst
  58. 12 0
      classes/class_engine.rst
  59. 2 0
      classes/class_environment.rst
  60. 2 2
      classes/class_expression.rst
  61. 24 4
      classes/class_float.rst
  62. 40 3
      classes/class_flowcontainer.rst
  63. 2 0
      classes/class_fogmaterial.rst
  64. 3 5
      classes/class_fontfile.rst
  65. 0 2
      classes/class_fontvariation.rst
  66. 1 1
      classes/class_gdscript.rst
  67. 113 89
      classes/class_geometryinstance3d.rst
  68. 30 0
      classes/class_gltfnode.rst
  69. 97 73
      classes/class_gltfstate.rst
  70. 4 2
      classes/class_gpuparticles2d.rst
  71. 1 1
      classes/class_gpuparticles3d.rst
  72. 0 2
      classes/class_httprequest.rst
  73. 154 140
      classes/class_image.rst
  74. 0 2
      classes/class_importermesh.rst
  75. 3 3
      classes/class_input.rst
  76. 4 4
      classes/class_inputeventmidi.rst
  77. 25 7
      classes/class_inputeventscreentouch.rst
  78. 21 13
      classes/class_int.rst
  79. 1 1
      classes/class_javascriptobject.rst
  80. 1 1
      classes/class_json.rst
  81. 61 57
      classes/class_label3d.rst
  82. 4 0
      classes/class_light3d.rst
  83. 18 0
      classes/class_lineedit.rst
  84. 17 13
      classes/class_linkbutton.rst
  85. 24 0
      classes/class_marker3d.rst
  86. 0 16
      classes/class_menubar.rst
  87. 11 9
      classes/class_mesh.rst
  88. 1 1
      classes/class_mobilevrinterface.rst
  89. 2 2
      classes/class_moviewriter.rst
  90. 1 1
      classes/class_multimesh.rst
  91. 75 49
      classes/class_multiplayerpeer.rst
  92. 20 0
      classes/class_multiplayerpeerextension.rst
  93. 1 9
      classes/class_multiplayerspawner.rst
  94. 0 6
      classes/class_multiplayersynchronizer.rst
  95. 45 47
      classes/class_navigationagent2d.rst
  96. 48 50
      classes/class_navigationagent3d.rst
  97. 6 6
      classes/class_node.rst
  98. 4 32
      classes/class_node3d.rst
  99. 1 1
      classes/class_nodepath.rst
  100. 23 13
      classes/class_object.rst

+ 47 - 52
classes/[email protected]

@@ -76,11 +76,11 @@ Constants
 
 - **INF** = **inf** --- Positive floating-point infinity. This is the result of floating-point division when the divisor is ``0.0``. For negative infinity, use ``-INF``. Dividing by ``-0.0`` will result in negative infinity if the numerator is positive, so dividing by ``0.0`` is not the same as dividing by ``-0.0`` (despite ``0.0 == -0.0`` returning ``true``).
 
-\ **Note:** Numeric infinity is only a concept with floating-point numbers, and has no equivalent for integers. Dividing an integer number by ``0`` will not result in :ref:`INF<class_@GDScript_constant_INF>` and will result in a run-time error instead.
+\ **Warning:** Numeric infinity is only a concept with floating-point numbers, and has no equivalent for integers. Dividing an integer number by ``0`` will not result in :ref:`INF<class_@GDScript_constant_INF>` and will result in a run-time error instead.
 
 - **NAN** = **nan** --- "Not a Number", an invalid floating-point value. :ref:`NAN<class_@GDScript_constant_NAN>` has special properties, including that it is not equal to itself (``NAN == NAN`` returns ``false``). It is output by some invalid operations, such as dividing floating-point ``0.0`` by ``0.0``.
 
-\ **Note:** "Not a Number" is only a concept with floating-point numbers, and has no equivalent for integers. Dividing an integer ``0`` by ``0`` will not result in :ref:`NAN<class_@GDScript_constant_NAN>` and will result in a run-time error instead.
+\ **Warning:** "Not a Number" is only a concept with floating-point numbers, and has no equivalent for integers. Dividing an integer ``0`` by ``0`` will not result in :ref:`NAN<class_@GDScript_constant_NAN>` and will result in a run-time error instead.
 
 Annotations
 -----------
@@ -120,7 +120,7 @@ See also :ref:`@GlobalScope.PROPERTY_USAGE_CATEGORY<class_@GlobalScope_constant_
 
 - **@export_color_no_alpha** **(** **)**
 
-Export a :ref:`Color<class_Color>` property without an alpha (fixed as ``1.0``).
+Export a :ref:`Color<class_Color>` property without transparency (its alpha fixed as ``1.0``).
 
 See also :ref:`@GlobalScope.PROPERTY_HINT_COLOR_NO_ALPHA<class_@GlobalScope_constant_PROPERTY_HINT_COLOR_NO_ALPHA>`.
 
@@ -156,7 +156,7 @@ See also :ref:`@GlobalScope.PROPERTY_HINT_ENUM<class_@GlobalScope_constant_PROPE
 
     @export_enum("Rebecca", "Mary", "Leah") var character_name: String
     @export_enum("Warrior", "Magician", "Thief") var character_class: int
-    @export_enum("Walking:30", "Running:60", "Riding:200") var character_speed: int
+    @export_enum("Slow:30", "Average:60", "Very Fast:200") var character_speed: int
 
 ----
 
@@ -330,7 +330,7 @@ Define a new group for the following exported properties. This helps to organize
 
 If no ``prefix`` is provided, the every following property is added to the group. The group ends when then next group or category is defined. You can also force end a group by using this annotation with empty strings for parameters, ``@export_group("", "")``.
 
-Groups cannot be nested, use :ref:`@export_subgroup<class_@GDScript_annotation_@export_subgroup>` to add subgroups to your groups.
+Groups cannot be nested, use :ref:`@export_subgroup<class_@GDScript_annotation_@export_subgroup>` to add subgroups within groups.
 
 See also :ref:`@GlobalScope.PROPERTY_USAGE_GROUP<class_@GlobalScope_constant_PROPERTY_USAGE_GROUP>`.
 
@@ -359,7 +359,7 @@ See also :ref:`@GlobalScope.PROPERTY_HINT_MULTILINE_TEXT<class_@GlobalScope_cons
 
 ::
 
-    @export_multiline var character_bio
+    @export_multiline var character_biography
 
 ----
 
@@ -444,13 +444,13 @@ See also :ref:`@GlobalScope.PROPERTY_USAGE_SUBGROUP<class_@GlobalScope_constant_
 
 - **@icon** **(** :ref:`String<class_String>` icon_path **)**
 
-Add a custom icon to the current script. The icon is displayed in the Scene dock for every node that the script is attached to. For named classes the icon is also displayed in various editor dialogs.
+Add a custom icon to the current script. After loading an icon at ``icon_path``, the icon is displayed in the Scene dock for every node that the script is attached to. For named classes, the icon is also displayed in various editor dialogs.
 
 ::
 
     @icon("res://path/to/class/icon.svg")
 
-\ **Note:** Only the script can have a custom icon. Inner classes are not supported yet.
+\ **Note:** Only the script can have a custom icon. Inner classes are not supported.
 
 ----
 
@@ -495,7 +495,7 @@ Mark the current script as a tool script, allowing it to be loaded and executed
 
 - **@warning_ignore** **(** :ref:`String<class_String>` warning, ... **)** |vararg|
 
-Mark the following statement to ignore the specified warning. See :doc:`GDScript warning system <../tutorials/scripting/gdscript/warning_system>`.
+Mark the following statement to ignore the specified ``warning``. See :doc:`GDScript warning system <../tutorials/scripting/gdscript/warning_system>`.
 
 ::
 
@@ -512,19 +512,13 @@ Method Descriptions
 
 - :ref:`Color<class_Color>` **Color8** **(** :ref:`int<class_int>` r8, :ref:`int<class_int>` g8, :ref:`int<class_int>` b8, :ref:`int<class_int>` a8=255 **)**
 
-Returns a color constructed from integer red, green, blue, and alpha channels. Each channel should have 8 bits of information ranging from 0 to 255.
-
-\ ``r8`` red channel
-
-\ ``g8`` green channel
-
-\ ``b8`` blue channel
-
-\ ``a8`` alpha channel
+Returns a :ref:`Color<class_Color>` constructed from red (``r8``), green (``g8``), blue (``b8``), and optionally alpha (``a8``) integer channels, each divided by ``255.0`` for their final value.
 
 ::
 
-    red = Color8(255, 0, 0)
+    var red = Color8(255, 0, 0)             # Same as Color(1, 0, 0)
+    var dark_blue = Color8(0, 0, 51)        # Same as Color(0, 0, 0.2).
+    var my_color = Color8(306, 255, 0, 102) # Same as Color(1.2, 1, 0, 0.4).
 
 ----
 
@@ -534,9 +528,9 @@ Returns a color constructed from integer red, green, blue, and alpha channels. E
 
 Asserts that the ``condition`` is ``true``. If the ``condition`` is ``false``, an error is generated. When running from the editor, the running project will also be paused until you resume it. This can be used as a stronger form of :ref:`@GlobalScope.push_error<class_@GlobalScope_method_push_error>` for reporting errors to project developers or add-on users.
 
-\ **Note:** For performance reasons, the code inside :ref:`assert<class_@GDScript_method_assert>` is only executed in debug builds or when running the project from the editor. Don't include code that has side effects in an :ref:`assert<class_@GDScript_method_assert>` call. Otherwise, the project will behave differently when exported in release mode.
+An optional ``message`` can be shown in addition to the generic "Assertion failed" message. You can use this to provide additional details about why the assertion failed.
 
-The optional ``message`` argument, if given, is shown in addition to the generic "Assertion failed" message. It must be a static string, so format strings can't be used. You can use this to provide additional details about why the assertion failed.
+\ **Warning:** For performance reasons, the code inside :ref:`assert<class_@GDScript_method_assert>` is only executed in debug builds or when running the project from the editor. Don't include code that has side effects in an :ref:`assert<class_@GDScript_method_assert>` call. Otherwise, the project will behave differently when exported in release mode.
 
 ::
 
@@ -553,7 +547,7 @@ The optional ``message`` argument, if given, is shown in addition to the generic
 
 - :ref:`String<class_String>` **char** **(** :ref:`int<class_int>` char **)**
 
-Returns a character as a String of the given Unicode code point (which is compatible with ASCII code).
+Returns a single character (as a :ref:`String<class_String>`) of the given Unicode code point (which is compatible with ASCII code).
 
 ::
 
@@ -567,16 +561,16 @@ Returns a character as a String of the given Unicode code point (which is compat
 
 - :ref:`Variant<class_Variant>` **convert** **(** :ref:`Variant<class_Variant>` what, :ref:`int<class_int>` type **)**
 
-Converts from a type to another in the best way possible. The ``type`` parameter uses the :ref:`Variant.Type<enum_@GlobalScope_Variant.Type>` values.
+Converts ``what`` to ``type`` in the best way possible. The ``type`` uses the :ref:`Variant.Type<enum_@GlobalScope_Variant.Type>` values.
 
 ::
 
-    a = Vector2(1, 0)
-    # Prints 1
-    print(a.length())
-    a = convert(a, TYPE_STRING)
-    # Prints 6 as "(1, 0)" is 6 characters
-    print(a.length())
+    var a = [4, 2.5, 1.2]
+    print(a is Array) # Prints true
+    
+    var b = convert(a, TYPE_PACKED_BYTE_ARRAY)
+    print(b)          # Prints [4, 2, 1]
+    print(b is Array) # Prints false
 
 ----
 
@@ -584,7 +578,7 @@ Converts from a type to another in the best way possible. The ``type`` parameter
 
 - :ref:`Object<class_Object>` **dict_to_inst** **(** :ref:`Dictionary<class_Dictionary>` dictionary **)**
 
-Converts a ``dictionary`` (previously created with :ref:`inst_to_dict<class_@GDScript_method_inst_to_dict>`) back to an Object instance. Useful for deserializing.
+Converts a ``dictionary`` (created with :ref:`inst_to_dict<class_@GDScript_method_inst_to_dict>`) back to an Object instance. Can be useful for deserializing.
 
 ----
 
@@ -605,15 +599,15 @@ Returns an array of dictionaries representing the current call stack. See also :
     func bar():
         print(get_stack())
 
-would print
+Starting from ``_ready()``, ``bar()`` would print:
 
 ::
 
     [{function:bar, line:12, source:res://script.gd}, {function:foo, line:9, source:res://script.gd}, {function:_ready, line:6, source:res://script.gd}]
 
-\ **Note:** :ref:`get_stack<class_@GDScript_method_get_stack>` only works if the running instance is connected to a debugging server (i.e. an editor instance). :ref:`get_stack<class_@GDScript_method_get_stack>` will not work in projects exported in release mode, or in projects exported in debug mode if not connected to a debugging server.
+\ **Note:** This function only works if the running instance is connected to a debugging server (i.e. an editor instance). :ref:`get_stack<class_@GDScript_method_get_stack>` will not work in projects exported in release mode, or in projects exported in debug mode if not connected to a debugging server.
 
-\ **Note:** Not supported for calling from threads. Instead, this will return an empty array.
+\ **Note:** Calling this function from a :ref:`Thread<class_Thread>` is not supported. Doing so will return an empty array.
 
 ----
 
@@ -621,7 +615,7 @@ would print
 
 - :ref:`Dictionary<class_Dictionary>` **inst_to_dict** **(** :ref:`Object<class_Object>` instance **)**
 
-Returns the passed ``instance`` converted to a Dictionary (useful for serializing).
+Returns the passed ``instance`` converted to a Dictionary. Can be useful for serializing.
 
 ::
 
@@ -644,14 +638,15 @@ Prints out:
 
 - :ref:`int<class_int>` **len** **(** :ref:`Variant<class_Variant>` var **)**
 
-Returns length of Variant ``var``. Length is the character count of String, element count of Array, size of Dictionary, etc.
-
-\ **Note:** Generates a fatal error if Variant can not provide a length.
+Returns the length of the given Variant ``var``. The length can be the character count of a :ref:`String<class_String>`, the element count of any array type or the size of a :ref:`Dictionary<class_Dictionary>`. For every other Variant type, a run-time error is generated and execution is stopped.
 
 ::
 
     a = [1, 2, 3, 4]
     len(a) # Returns 4
+    
+    b = "Hello!"
+    len(b) # Returns 6
 
 ----
 
@@ -659,20 +654,20 @@ Returns length of Variant ``var``. Length is the character count of String, elem
 
 - :ref:`Resource<class_Resource>` **load** **(** :ref:`String<class_String>` path **)**
 
-Loads a resource from the filesystem located at ``path``. The resource is loaded on the method call (unless it's referenced already elsewhere, e.g. in another script or in the scene), which might cause slight delay, especially when loading scenes. To avoid unnecessary delays when loading something multiple times, either store the resource in a variable or use :ref:`preload<class_@GDScript_method_preload>`.
+Returns a :ref:`Resource<class_Resource>` from the filesystem located at the absolute ``path``. Unless it's already referenced elsewhere (such as in another script or in the scene), the resource is loaded from disk on function call, which might cause a slight delay, especially when loading large scenes. To avoid unnecessary delays when loading something multiple times, either store the resource in a variable or use :ref:`preload<class_@GDScript_method_preload>`.
 
 \ **Note:** Resource paths can be obtained by right-clicking on a resource in the FileSystem dock and choosing "Copy Path" or by dragging the file from the FileSystem dock into the script.
 
 ::
 
-    # Load a scene called main located in the root of the project directory and cache it in a variable.
+    # Load a scene called "main" located in the root of the project directory and cache it in a variable.
     var main = load("res://main.tscn") # main will contain a PackedScene resource.
 
-\ **Important:** The path must be absolute, a local path will just return ``null``.
+\ **Important:** The path must be absolute. A relative path will always return ``null``.
 
-This method is a simplified version of :ref:`ResourceLoader.load<class_ResourceLoader_method_load>`, which can be used for more advanced scenarios.
+This function is a simplified version of :ref:`ResourceLoader.load<class_ResourceLoader_method_load>`, which can be used for more advanced scenarios.
 
-\ **Note:** You have to import the files into the engine first to load them using :ref:`load<class_@GDScript_method_load>`. If you want to load :ref:`Image<class_Image>`\ s at run-time, you may use :ref:`Image.load<class_Image_method_load>`. If you want to import audio files, you can use the snippet described in :ref:`AudioStreamMP3.data<class_AudioStreamMP3_property_data>`.
+\ **Note:** Files have to be imported into the engine first to load them using this function. If you want to load :ref:`Image<class_Image>`\ s at run-time, you may use :ref:`Image.load<class_Image_method_load>`. If you want to import audio files, you can use the snippet described in :ref:`AudioStreamMP3.data<class_AudioStreamMP3_property_data>`.
 
 ----
 
@@ -680,13 +675,13 @@ This method is a simplified version of :ref:`ResourceLoader.load<class_ResourceL
 
 - :ref:`Resource<class_Resource>` **preload** **(** :ref:`String<class_String>` path **)**
 
-Returns a :ref:`Resource<class_Resource>` from the filesystem located at ``path``. The resource is loaded during script parsing, i.e. is loaded with the script and :ref:`preload<class_@GDScript_method_preload>` effectively acts as a reference to that resource. Note that the method requires a constant path. If you want to load a resource from a dynamic/variable path, use :ref:`load<class_@GDScript_method_load>`.
+Returns a :ref:`Resource<class_Resource>` from the filesystem located at ``path``. During run-time, the resource is loaded when the script is being parsed. This function effectively acts as a reference to that resource. Note that this function requires ``path`` to be a constant :ref:`String<class_String>`. If you want to load a resource from a dynamic/variable path, use :ref:`load<class_@GDScript_method_load>`.
 
 \ **Note:** Resource paths can be obtained by right clicking on a resource in the Assets Panel and choosing "Copy Path" or by dragging the file from the FileSystem dock into the script.
 
 ::
 
-    # Instance a scene.
+    # Create instance of a scene.
     var diamond = preload("res://diamond.tscn").instantiate()
 
 ----
@@ -697,14 +692,14 @@ Returns a :ref:`Resource<class_Resource>` from the filesystem located at ``path`
 
 Like :ref:`@GlobalScope.print<class_@GlobalScope_method_print>`, but includes the current stack frame when running with the debugger turned on.
 
-Output in the console would look something like this:
+The output in the console may look like the following:
 
 ::
 
     Test print
-       At: res://test.gd:15:_process()
+    At: res://test.gd:15:_process()
 
-\ **Note:** Not supported for calling from threads. Instead of the stack frame, this will print the thread ID.
+\ **Note:** Calling this function from a :ref:`Thread<class_Thread>` is not supported. Doing so will instead print the thread ID.
 
 ----
 
@@ -714,15 +709,15 @@ Output in the console would look something like this:
 
 Prints a stack trace at the current code location. See also :ref:`get_stack<class_@GDScript_method_get_stack>`.
 
-Output in the console would look something like this:
+The output in the console may look like the following:
 
 ::
 
     Frame 0 - res://test.gd:16 in function '_process'
 
-\ **Note:** :ref:`print_stack<class_@GDScript_method_print_stack>` only works if the running instance is connected to a debugging server (i.e. an editor instance). :ref:`print_stack<class_@GDScript_method_print_stack>` will not work in projects exported in release mode, or in projects exported in debug mode if not connected to a debugging server.
+\ **Note:** This function only works if the running instance is connected to a debugging server (i.e. an editor instance). :ref:`print_stack<class_@GDScript_method_print_stack>` will not work in projects exported in release mode, or in projects exported in debug mode if not connected to a debugging server.
 
-\ **Note:** Not supported for calling from threads. Instead of the stack trace, this will print the thread ID.
+\ **Note:** Calling this function from a :ref:`Thread<class_Thread>` is not supported. Doing so will instead print the thread ID.
 
 ----
 
@@ -788,7 +783,7 @@ Output:
 
 - :ref:`String<class_String>` **str** **(** ... **)** |vararg|
 
-Converts one or more arguments to string in the best way possible.
+Converts one or more arguments to a :ref:`String<class_String>` in the best way possible.
 
 ::
 
@@ -803,7 +798,7 @@ Converts one or more arguments to string in the best way possible.
 
 - :ref:`bool<class_bool>` **type_exists** **(** :ref:`StringName<class_StringName>` type **)**
 
-Returns whether the given :ref:`Object<class_Object>`-derived class exists in :ref:`ClassDB<class_ClassDB>`. Note that :ref:`Variant<class_Variant>` data types are not registered in :ref:`ClassDB<class_ClassDB>`.
+Returns ``true`` if the given :ref:`Object<class_Object>`-derived class exists in :ref:`ClassDB<class_ClassDB>`. Note that :ref:`Variant<class_Variant>` data types are not registered in :ref:`ClassDB<class_ClassDB>`.
 
 ::
 

File diff suppressed because it is too large
+ 244 - 182
classes/[email protected]


+ 12 - 0
classes/class_aabb.rst

@@ -104,6 +104,8 @@ Methods
 +-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`bool<class_bool>`       | :ref:`is_equal_approx<class_AABB_method_is_equal_approx>` **(** :ref:`AABB<class_AABB>` aabb **)** |const|                                               |
 +-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`       | :ref:`is_finite<class_AABB_method_is_finite>` **(** **)** |const|                                                                                        |
++-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`AABB<class_AABB>`       | :ref:`merge<class_AABB_method_merge>` **(** :ref:`AABB<class_AABB>` with **)** |const|                                                                   |
 +-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+
 
@@ -368,6 +370,8 @@ Returns ``true`` if the ``AABB`` is on both sides of a plane.
 
 - :ref:`Variant<class_Variant>` **intersects_ray** **(** :ref:`Vector3<class_Vector3>` from, :ref:`Vector3<class_Vector3>` dir **)** |const|
 
+Returns ``true`` if the given ray intersects with this ``AABB``. Ray length is infinite.
+
 ----
 
 .. _class_AABB_method_intersects_segment:
@@ -386,6 +390,14 @@ Returns ``true`` if this ``AABB`` and ``aabb`` are approximately equal, by calli
 
 ----
 
+.. _class_AABB_method_is_finite:
+
+- :ref:`bool<class_bool>` **is_finite** **(** **)** |const|
+
+Returns ``true`` if this ``AABB`` is finite, by calling :ref:`@GlobalScope.is_finite<class_@GlobalScope_method_is_finite>` on each component.
+
+----
+
 .. _class_AABB_method_merge:
 
 - :ref:`AABB<class_AABB>` **merge** **(** :ref:`AABB<class_AABB>` with **)** |const|

+ 22 - 6
classes/class_animation.rst

@@ -46,6 +46,8 @@ An Animation resource contains data used to animate everything in the engine. An
 
 Animations are just data containers, and must be added to nodes such as an :ref:`AnimationPlayer<class_AnimationPlayer>` to be played back. Animation tracks have different types, each with its own set of dedicated methods. Check :ref:`TrackType<enum_Animation_TrackType>` to see available types.
 
+\ **Note:** For 3D position/rotation/scale, using the dedicated :ref:`TYPE_POSITION_3D<class_Animation_constant_TYPE_POSITION_3D>`, :ref:`TYPE_ROTATION_3D<class_Animation_constant_TYPE_ROTATION_3D>` and :ref:`TYPE_SCALE_3D<class_Animation_constant_TYPE_SCALE_3D>` track types instead of :ref:`TYPE_VALUE<class_Animation_constant_TYPE_VALUE>` is recommended for performance reasons.
+
 Tutorials
 ---------
 
@@ -227,15 +229,15 @@ Enumerations
 
 enum **TrackType**:
 
-- **TYPE_VALUE** = **0** --- Value tracks set values in node properties, but only those which can be Interpolated.
+- **TYPE_VALUE** = **0** --- Value tracks set values in node properties, but only those which can be interpolated. For 3D position/rotation/scale, using the dedicated :ref:`TYPE_POSITION_3D<class_Animation_constant_TYPE_POSITION_3D>`, :ref:`TYPE_ROTATION_3D<class_Animation_constant_TYPE_ROTATION_3D>` and :ref:`TYPE_SCALE_3D<class_Animation_constant_TYPE_SCALE_3D>` track types instead of :ref:`TYPE_VALUE<class_Animation_constant_TYPE_VALUE>` is recommended for performance reasons.
 
-- **TYPE_POSITION_3D** = **1**
+- **TYPE_POSITION_3D** = **1** --- 3D position track (values are stored in :ref:`Vector3<class_Vector3>`\ s).
 
-- **TYPE_ROTATION_3D** = **2**
+- **TYPE_ROTATION_3D** = **2** --- 3D rotation track (values are stored in :ref:`Quaternion<class_Quaternion>`\ s).
 
-- **TYPE_SCALE_3D** = **3**
+- **TYPE_SCALE_3D** = **3** --- 3D scale track (values are stored in :ref:`Vector3<class_Vector3>`\ s).
 
-- **TYPE_BLEND_SHAPE** = **4**
+- **TYPE_BLEND_SHAPE** = **4** --- Blend shape track.
 
 - **TYPE_METHOD** = **5** --- Method tracks call functions with given arguments per key.
 
@@ -265,7 +267,7 @@ enum **InterpolationType**:
 
 - **INTERPOLATION_LINEAR** = **1** --- Linear interpolation.
 
-- **INTERPOLATION_CUBIC** = **2** --- Cubic interpolation.
+- **INTERPOLATION_CUBIC** = **2** --- Cubic interpolation. This looks smoother than linear interpolation, but is more expensive to interpolate. Stick to :ref:`INTERPOLATION_LINEAR<class_Animation_constant_INTERPOLATION_LINEAR>` for complex 3D animations imported from external software, even if it requires using a higher animation framerate in return.
 
 - **INTERPOLATION_LINEAR_ANGLE** = **3** --- Linear interpolation with shortest path rotation.
 
@@ -533,6 +535,8 @@ Sets the value of the key identified by ``key_idx`` to the given value. The ``tr
 
 - :ref:`int<class_int>` **blend_shape_track_insert_key** **(** :ref:`int<class_int>` track_idx, :ref:`float<class_float>` time, :ref:`float<class_float>` amount **)**
 
+Inserts a key in a given blend shape track. Returns the key index.
+
 ----
 
 .. _class_Animation_method_clear:
@@ -547,6 +551,10 @@ Clear the animation (clear all tracks and reset all).
 
 - void **compress** **(** :ref:`int<class_int>` page_size=8192, :ref:`int<class_int>` fps=120, :ref:`float<class_float>` split_tolerance=4.0 **)**
 
+Compress the animation and all its tracks in-place. This will make :ref:`track_is_compressed<class_Animation_method_track_is_compressed>` return ``true`` once called on this ``Animation``. Compressed tracks require less memory to be played, and are designed to be used for complex 3D animations (such as cutscenes) imported from external 3D software. Compression is lossy, but the difference is usually not noticeable in real world conditions.
+
+\ **Note:** Compressed tracks have various limitations (such as not being editable from the editor), so only use compressed animations if you actually need them.
+
 ----
 
 .. _class_Animation_method_copy_track:
@@ -601,6 +609,8 @@ Returns the arguments values to be called on a method track for a given key in a
 
 - :ref:`int<class_int>` **position_track_insert_key** **(** :ref:`int<class_int>` track_idx, :ref:`float<class_float>` time, :ref:`Vector3<class_Vector3>` position **)**
 
+Inserts a key in a given 3D position track. Returns the key index.
+
 ----
 
 .. _class_Animation_method_remove_track:
@@ -615,12 +625,16 @@ Removes a track by specifying the track index.
 
 - :ref:`int<class_int>` **rotation_track_insert_key** **(** :ref:`int<class_int>` track_idx, :ref:`float<class_float>` time, :ref:`Quaternion<class_Quaternion>` rotation **)**
 
+Inserts a key in a given 3D rotation track. Returns the key index.
+
 ----
 
 .. _class_Animation_method_scale_track_insert_key:
 
 - :ref:`int<class_int>` **scale_track_insert_key** **(** :ref:`int<class_int>` track_idx, :ref:`float<class_float>` time, :ref:`Vector3<class_Vector3>` scale **)**
 
+Inserts a key in a given 3D scale track. Returns the key index.
+
 ----
 
 .. _class_Animation_method_track_find_key:
@@ -707,6 +721,8 @@ Inserts a generic key in a given track. Returns the key index.
 
 - :ref:`bool<class_bool>` **track_is_compressed** **(** :ref:`int<class_int>` track_idx **)** |const|
 
+Returns ``true`` if the track is compressed, ``false`` otherwise. See also :ref:`compress<class_Animation_method_compress>`.
+
 ----
 
 .. _class_Animation_method_track_is_enabled:

+ 10 - 2
classes/class_animationplayer.rst

@@ -145,6 +145,14 @@ Notifies when an animation finished playing.
 
 ----
 
+.. _class_AnimationPlayer_signal_animation_libraries_updated:
+
+- **animation_libraries_updated** **(** **)**
+
+Notifies when the animation libraries have changed.
+
+----
+
 .. _class_AnimationPlayer_signal_animation_list_changed:
 
 - **animation_list_changed** **(** **)**
@@ -247,7 +255,7 @@ The key of the animation to play when the scene loads.
 
 The key of the currently playing animation. If no animation is playing, the property's value is an empty string. Changing this value does not restart the animation. See :ref:`play<class_AnimationPlayer_method_play>` for more information on playing animations.
 
-\ **Note:** while this property appears in the inspector, it's not meant to be edited, and it's not saved in the scene. This property is mainly used to get the currently playing animation, and internally for animation playback tracks. For more information, see :ref:`Animation<class_Animation>`.
+\ **Note:** While this property appears in the Inspector, it's not meant to be edited, and it's not saved in the scene. This property is mainly used to get the currently playing animation, and internally for animation playback tracks. For more information, see :ref:`Animation<class_Animation>`.
 
 ----
 
@@ -367,7 +375,7 @@ The process notification in which to update animations.
 | *Getter*  | get_speed_scale()      |
 +-----------+------------------------+
 
-The speed scaling ratio. For instance, if this value is 1, then the animation plays at normal speed. If it's 0.5, then it plays at half speed. If it's 2, then it plays at double speed.
+The speed scaling ratio. For example, if this value is 1, then the animation plays at normal speed. If it's 0.5, then it plays at half speed. If it's 2, then it plays at double speed.
 
 ----
 

+ 11 - 11
classes/class_area3d.rst

@@ -66,7 +66,7 @@ Properties
 +-------------------------------------------------+-----------------------------------------------------------------------------------------+-----------------------+
 | :ref:`float<class_float>`                       | :ref:`reverb_bus_amount<class_Area3D_property_reverb_bus_amount>`                       | ``0.0``               |
 +-------------------------------------------------+-----------------------------------------------------------------------------------------+-----------------------+
-| :ref:`bool<class_bool>`                         | :ref:`reverb_bus_enable<class_Area3D_property_reverb_bus_enable>`                       | ``false``             |
+| :ref:`bool<class_bool>`                         | :ref:`reverb_bus_enabled<class_Area3D_property_reverb_bus_enabled>`                     | ``false``             |
 +-------------------------------------------------+-----------------------------------------------------------------------------------------+-----------------------+
 | :ref:`StringName<class_StringName>`             | :ref:`reverb_bus_name<class_Area3D_property_reverb_bus_name>`                           | ``&"Master"``         |
 +-------------------------------------------------+-----------------------------------------------------------------------------------------+-----------------------+
@@ -491,9 +491,9 @@ The degree to which this area applies reverb to its associated audio. Ranges fro
 
 ----
 
-.. _class_Area3D_property_reverb_bus_enable:
+.. _class_Area3D_property_reverb_bus_enabled:
 
-- :ref:`bool<class_bool>` **reverb_bus_enable**
+- :ref:`bool<class_bool>` **reverb_bus_enabled**
 
 +-----------+---------------------------+
 | *Default* | ``false``                 |
@@ -511,15 +511,15 @@ If ``true``, the area applies reverb to its associated audio.
 
 - :ref:`StringName<class_StringName>` **reverb_bus_name**
 
-+-----------+-----------------------+
-| *Default* | ``&"Master"``         |
-+-----------+-----------------------+
-| *Setter*  | set_reverb_bus(value) |
-+-----------+-----------------------+
-| *Getter*  | get_reverb_bus()      |
-+-----------+-----------------------+
++-----------+----------------------------+
+| *Default* | ``&"Master"``              |
++-----------+----------------------------+
+| *Setter*  | set_reverb_bus_name(value) |
++-----------+----------------------------+
+| *Getter*  | get_reverb_bus_name()      |
++-----------+----------------------------+
 
-The reverb bus name to use for this area's associated audio.
+The name of the reverb bus to use for this area's associated audio.
 
 ----
 

+ 37 - 2
classes/class_array.rst

@@ -157,6 +157,8 @@ Methods
 +-------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`Variant<class_Variant>`       | :ref:`min<class_Array_method_min>` **(** **)** |const|                                                                                                                                         |
 +-------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Variant<class_Variant>`       | :ref:`pick_random<class_Array_method_pick_random>` **(** **)** |const|                                                                                                                         |
++-------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`Variant<class_Variant>`       | :ref:`pop_at<class_Array_method_pop_at>` **(** :ref:`int<class_int>` position **)**                                                                                                            |
 +-------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`Variant<class_Variant>`       | :ref:`pop_back<class_Array_method_pop_back>` **(** **)**                                                                                                                                       |
@@ -228,6 +230,8 @@ Constructs an empty ``Array``.
 
 - :ref:`Array<class_Array>` **Array** **(** :ref:`Array<class_Array>` base, :ref:`int<class_int>` type, :ref:`StringName<class_StringName>` class_name, :ref:`Variant<class_Variant>` script **)**
 
+Creates a typed array from the ``base`` array. The base array can't be already typed. See :ref:`set_typed<class_Array_method_set_typed>` for more details.
+
 ----
 
 - :ref:`Array<class_Array>` **Array** **(** :ref:`Array<class_Array>` from **)**
@@ -463,6 +467,8 @@ Assigns the given value to all elements in the array. This can typically be used
 
 
 
+\ **Note:** If ``value`` is of a reference type (:ref:`Object<class_Object>`-derived, ``Array``, :ref:`Dictionary<class_Dictionary>`, etc.) then the array is filled with the references to the same object, i.e. no duplicates are created.
+
 ----
 
 .. _class_Array_method_filter:
@@ -516,18 +522,24 @@ Returns the first element of the array. Prints an error and returns ``null`` if
 
 - :ref:`int<class_int>` **get_typed_builtin** **(** **)** |const|
 
+Returns the :ref:`Variant.Type<enum_@GlobalScope_Variant.Type>` constant for a typed array. If the ``Array`` is not typed, returns :ref:`@GlobalScope.TYPE_NIL<class_@GlobalScope_constant_TYPE_NIL>`.
+
 ----
 
 .. _class_Array_method_get_typed_class_name:
 
 - :ref:`StringName<class_StringName>` **get_typed_class_name** **(** **)** |const|
 
+Returns a class name of a typed ``Array`` of type :ref:`@GlobalScope.TYPE_OBJECT<class_@GlobalScope_constant_TYPE_OBJECT>`.
+
 ----
 
 .. _class_Array_method_get_typed_script:
 
 - :ref:`Variant<class_Variant>` **get_typed_script** **(** **)** |const|
 
+Returns the script associated with a typed array tied to a class name.
+
 ----
 
 .. _class_Array_method_has:
@@ -557,8 +569,6 @@ Returns ``true`` if the array contains the given value.
 
 
 
-
-
 \ **Note:** This is equivalent to using the ``in`` operator as follows:
 
 
@@ -617,12 +627,16 @@ Returns ``true`` if the array is empty.
 
 - :ref:`bool<class_bool>` **is_read_only** **(** **)** |const|
 
+Returns ``true`` if the array is read-only. See :ref:`set_read_only<class_Array_method_set_read_only>`. Arrays are automatically read-only if declared with ``const`` keyword.
+
 ----
 
 .. _class_Array_method_is_typed:
 
 - :ref:`bool<class_bool>` **is_typed** **(** **)** |const|
 
+Returns ``true`` if the array is typed. Typed arrays can only store elements of their associated type and provide type safety for the ``[]`` operator. Methods of typed array still return :ref:`Variant<class_Variant>`.
+
 ----
 
 .. _class_Array_method_map:
@@ -662,6 +676,19 @@ Returns the minimum value contained in the array if all elements are of comparab
 
 ----
 
+.. _class_Array_method_pick_random:
+
+- :ref:`Variant<class_Variant>` **pick_random** **(** **)** |const|
+
+Returns a random value from the target array.
+
+::
+
+    var array: Array\ :ref:`int<class_int>` = [1, 2, 3, 4]
+    print(array.pick_random())  # Prints either of the four numbers.
+
+----
+
 .. _class_Array_method_pop_at:
 
 - :ref:`Variant<class_Variant>` **pop_at** **(** :ref:`int<class_int>` position **)**
@@ -769,12 +796,18 @@ Searches the array in reverse order. Optionally, a start search index can be pas
 
 - void **set_read_only** **(** :ref:`bool<class_bool>` enable **)**
 
+Makes the ``Array`` read-only, i.e. disabled modifying of the array's elements. Does not apply to nested content, e.g. content of nested arrays.
+
 ----
 
 .. _class_Array_method_set_typed:
 
 - void **set_typed** **(** :ref:`int<class_int>` type, :ref:`StringName<class_StringName>` class_name, :ref:`Variant<class_Variant>` script **)**
 
+Makes the ``Array`` typed. The ``type`` should be one of the :ref:`Variant.Type<enum_@GlobalScope_Variant.Type>` constants. ``class_name`` is optional and can only be provided for :ref:`@GlobalScope.TYPE_OBJECT<class_@GlobalScope_constant_TYPE_OBJECT>`. ``script`` can only be provided if ``class_name`` is not empty.
+
+The method fails if an array is already typed.
+
 ----
 
 .. _class_Array_method_shuffle:
@@ -885,6 +918,8 @@ Sorts the array using a custom method. The custom method receives two arguments
 
 - :ref:`bool<class_bool>` **typed_assign** **(** :ref:`Array<class_Array>` array **)**
 
+Assigns a different ``Array`` to this array reference. It the array is typed, the new array's type must be compatible and its elements will be automatically converted.
+
 Operator Descriptions
 ---------------------
 

+ 1 - 1
classes/class_astar2d.rst

@@ -385,7 +385,7 @@ Removes the point associated with the given ``id`` from the points pool.
 
 - void **reserve_space** **(** :ref:`int<class_int>` num_nodes **)**
 
-Reserves space internally for ``num_nodes`` points, useful if you're adding a known large number of points at once, for a grid for instance. New capacity must be greater or equals to old capacity.
+Reserves space internally for ``num_nodes`` points, useful if you're adding a known large number of points at once, such as points on a grid. New capacity must be greater or equals to old capacity.
 
 ----
 

+ 1 - 1
classes/class_astar3d.rst

@@ -421,7 +421,7 @@ Removes the point associated with the given ``id`` from the points pool.
 
 - void **reserve_space** **(** :ref:`int<class_int>` num_nodes **)**
 
-Reserves space internally for ``num_nodes`` points, useful if you're adding a known large number of points at once, for a grid for instance. New capacity must be greater or equals to old capacity.
+Reserves space internally for ``num_nodes`` points. Useful if you're adding a known large number of points at once, such as points on a grid. New capacity must be greater or equals to old capacity.
 
 ----
 

+ 1 - 1
classes/class_audiostreamgeneratorplayback.rst

@@ -66,7 +66,7 @@ Clears the audio sample data buffer.
 
 - :ref:`int<class_int>` **get_frames_available** **(** **)** |const|
 
-Returns the number of audio data frames left to play. If this returned number reaches ``0``, the audio will stop playing until frames are added again. Therefore, make sure your script can always generate and push new audio frames fast enough to avoid audio cracking.
+Returns the number of frames that can be pushed to the audio sample data buffer without overflowing it. If the result is ``0``, the buffer is full.
 
 ----
 

+ 82 - 64
classes/class_basebutton.rst

@@ -24,27 +24,29 @@ BaseButton is the abstract base class for buttons, so it shouldn't be used direc
 Properties
 ----------
 
-+---------------------------------------------------+-----------------------------------------------------------------------------+
-| :ref:`ActionMode<enum_BaseButton_ActionMode>`     | :ref:`action_mode<class_BaseButton_property_action_mode>`                   |
-+---------------------------------------------------+-----------------------------------------------------------------------------+
-| :ref:`ButtonGroup<class_ButtonGroup>`             | :ref:`button_group<class_BaseButton_property_button_group>`                 |
-+---------------------------------------------------+-----------------------------------------------------------------------------+
-| :ref:`MouseButton<enum_@GlobalScope_MouseButton>` | :ref:`button_mask<class_BaseButton_property_button_mask>`                   |
-+---------------------------------------------------+-----------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                           | :ref:`button_pressed<class_BaseButton_property_button_pressed>`             |
-+---------------------------------------------------+-----------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                           | :ref:`disabled<class_BaseButton_property_disabled>`                         |
-+---------------------------------------------------+-----------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                           | :ref:`keep_pressed_outside<class_BaseButton_property_keep_pressed_outside>` |
-+---------------------------------------------------+-----------------------------------------------------------------------------+
-| :ref:`Shortcut<class_Shortcut>`                   | :ref:`shortcut<class_BaseButton_property_shortcut>`                         |
-+---------------------------------------------------+-----------------------------------------------------------------------------+
-| :ref:`Node<class_Node>`                           | :ref:`shortcut_context<class_BaseButton_property_shortcut_context>`         |
-+---------------------------------------------------+-----------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                           | :ref:`shortcut_in_tooltip<class_BaseButton_property_shortcut_in_tooltip>`   |
-+---------------------------------------------------+-----------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                           | :ref:`toggle_mode<class_BaseButton_property_toggle_mode>`                   |
-+---------------------------------------------------+-----------------------------------------------------------------------------+
++---------------------------------------------------+-----------------------------------------------------------------------------+---------------------------------------------------------------------+
+| :ref:`ActionMode<enum_BaseButton_ActionMode>`     | :ref:`action_mode<class_BaseButton_property_action_mode>`                   | ``1``                                                               |
++---------------------------------------------------+-----------------------------------------------------------------------------+---------------------------------------------------------------------+
+| :ref:`ButtonGroup<class_ButtonGroup>`             | :ref:`button_group<class_BaseButton_property_button_group>`                 |                                                                     |
++---------------------------------------------------+-----------------------------------------------------------------------------+---------------------------------------------------------------------+
+| :ref:`MouseButton<enum_@GlobalScope_MouseButton>` | :ref:`button_mask<class_BaseButton_property_button_mask>`                   | ``1``                                                               |
++---------------------------------------------------+-----------------------------------------------------------------------------+---------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                           | :ref:`button_pressed<class_BaseButton_property_button_pressed>`             | ``false``                                                           |
++---------------------------------------------------+-----------------------------------------------------------------------------+---------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                           | :ref:`disabled<class_BaseButton_property_disabled>`                         | ``false``                                                           |
++---------------------------------------------------+-----------------------------------------------------------------------------+---------------------------------------------------------------------+
+| :ref:`FocusMode<enum_Control_FocusMode>`          | focus_mode                                                                  | ``2`` (overrides :ref:`Control<class_Control_property_focus_mode>`) |
++---------------------------------------------------+-----------------------------------------------------------------------------+---------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                           | :ref:`keep_pressed_outside<class_BaseButton_property_keep_pressed_outside>` | ``false``                                                           |
++---------------------------------------------------+-----------------------------------------------------------------------------+---------------------------------------------------------------------+
+| :ref:`Shortcut<class_Shortcut>`                   | :ref:`shortcut<class_BaseButton_property_shortcut>`                         |                                                                     |
++---------------------------------------------------+-----------------------------------------------------------------------------+---------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                           | :ref:`shortcut_feedback<class_BaseButton_property_shortcut_feedback>`       | ``true``                                                            |
++---------------------------------------------------+-----------------------------------------------------------------------------+---------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                           | :ref:`shortcut_in_tooltip<class_BaseButton_property_shortcut_in_tooltip>`   | ``true``                                                            |
++---------------------------------------------------+-----------------------------------------------------------------------------+---------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                           | :ref:`toggle_mode<class_BaseButton_property_toggle_mode>`                   | ``false``                                                           |
++---------------------------------------------------+-----------------------------------------------------------------------------+---------------------------------------------------------------------+
 
 Methods
 -------
@@ -144,11 +146,13 @@ Property Descriptions
 
 - :ref:`ActionMode<enum_BaseButton_ActionMode>` **action_mode**
 
-+----------+------------------------+
-| *Setter* | set_action_mode(value) |
-+----------+------------------------+
-| *Getter* | get_action_mode()      |
-+----------+------------------------+
++-----------+------------------------+
+| *Default* | ``1``                  |
++-----------+------------------------+
+| *Setter*  | set_action_mode(value) |
++-----------+------------------------+
+| *Getter*  | get_action_mode()      |
++-----------+------------------------+
 
 Determines when the button is considered clicked, one of the :ref:`ActionMode<enum_BaseButton_ActionMode>` constants.
 
@@ -172,11 +176,13 @@ The :ref:`ButtonGroup<class_ButtonGroup>` associated with the button. Not to be
 
 - :ref:`MouseButton<enum_@GlobalScope_MouseButton>` **button_mask**
 
-+----------+------------------------+
-| *Setter* | set_button_mask(value) |
-+----------+------------------------+
-| *Getter* | get_button_mask()      |
-+----------+------------------------+
++-----------+------------------------+
+| *Default* | ``1``                  |
++-----------+------------------------+
+| *Setter*  | set_button_mask(value) |
++-----------+------------------------+
+| *Getter*  | get_button_mask()      |
++-----------+------------------------+
 
 Binary mask to choose which mouse buttons this button will respond to.
 
@@ -188,11 +194,13 @@ To allow both left-click and right-click, use ``MOUSE_BUTTON_MASK_LEFT | MOUSE_B
 
 - :ref:`bool<class_bool>` **button_pressed**
 
-+----------+--------------------+
-| *Setter* | set_pressed(value) |
-+----------+--------------------+
-| *Getter* | is_pressed()       |
-+----------+--------------------+
++-----------+--------------------+
+| *Default* | ``false``          |
++-----------+--------------------+
+| *Setter*  | set_pressed(value) |
++-----------+--------------------+
+| *Getter*  | is_pressed()       |
++-----------+--------------------+
 
 If ``true``, the button's state is pressed. Means the button is pressed down or toggled (if :ref:`toggle_mode<class_BaseButton_property_toggle_mode>` is active). Only works if :ref:`toggle_mode<class_BaseButton_property_toggle_mode>` is ``true``.
 
@@ -204,11 +212,13 @@ If ``true``, the button's state is pressed. Means the button is pressed down or
 
 - :ref:`bool<class_bool>` **disabled**
 
-+----------+---------------------+
-| *Setter* | set_disabled(value) |
-+----------+---------------------+
-| *Getter* | is_disabled()       |
-+----------+---------------------+
++-----------+---------------------+
+| *Default* | ``false``           |
++-----------+---------------------+
+| *Setter*  | set_disabled(value) |
++-----------+---------------------+
+| *Getter*  | is_disabled()       |
++-----------+---------------------+
 
 If ``true``, the button is in disabled state and can't be clicked or toggled.
 
@@ -218,11 +228,13 @@ If ``true``, the button is in disabled state and can't be clicked or toggled.
 
 - :ref:`bool<class_bool>` **keep_pressed_outside**
 
-+----------+---------------------------------+
-| *Setter* | set_keep_pressed_outside(value) |
-+----------+---------------------------------+
-| *Getter* | is_keep_pressed_outside()       |
-+----------+---------------------------------+
++-----------+---------------------------------+
+| *Default* | ``false``                       |
++-----------+---------------------------------+
+| *Setter*  | set_keep_pressed_outside(value) |
++-----------+---------------------------------+
+| *Getter*  | is_keep_pressed_outside()       |
++-----------+---------------------------------+
 
 If ``true``, the button stays pressed when moving the cursor outside the button while pressing it.
 
@@ -244,17 +256,19 @@ If ``true``, the button stays pressed when moving the cursor outside the button
 
 ----
 
-.. _class_BaseButton_property_shortcut_context:
+.. _class_BaseButton_property_shortcut_feedback:
 
-- :ref:`Node<class_Node>` **shortcut_context**
+- :ref:`bool<class_bool>` **shortcut_feedback**
 
-+----------+-----------------------------+
-| *Setter* | set_shortcut_context(value) |
-+----------+-----------------------------+
-| *Getter* | get_shortcut_context()      |
-+----------+-----------------------------+
++-----------+------------------------------+
+| *Default* | ``true``                     |
++-----------+------------------------------+
+| *Setter*  | set_shortcut_feedback(value) |
++-----------+------------------------------+
+| *Getter*  | is_shortcut_feedback()       |
++-----------+------------------------------+
 
-The :ref:`Node<class_Node>` which must be a parent of the focused GUI :ref:`Control<class_Control>` for the shortcut to be activated. If ``null``, the shortcut can be activated when any control is focused (a global shortcut). This allows shortcuts to be accepted only when the user has a certain area of the GUI focused.
+If ``true``, the button will appear pressed when its shortcut is activated. If ``false`` and :ref:`toggle_mode<class_BaseButton_property_toggle_mode>` is ``false``, the shortcut will activate the button without appearing to press the button.
 
 ----
 
@@ -262,11 +276,13 @@ The :ref:`Node<class_Node>` which must be a parent of the focused GUI :ref:`Cont
 
 - :ref:`bool<class_bool>` **shortcut_in_tooltip**
 
-+----------+----------------------------------+
-| *Setter* | set_shortcut_in_tooltip(value)   |
-+----------+----------------------------------+
-| *Getter* | is_shortcut_in_tooltip_enabled() |
-+----------+----------------------------------+
++-----------+----------------------------------+
+| *Default* | ``true``                         |
++-----------+----------------------------------+
+| *Setter*  | set_shortcut_in_tooltip(value)   |
++-----------+----------------------------------+
+| *Getter*  | is_shortcut_in_tooltip_enabled() |
++-----------+----------------------------------+
 
 If ``true``, the button will add information about its shortcut in the tooltip.
 
@@ -276,11 +292,13 @@ If ``true``, the button will add information about its shortcut in the tooltip.
 
 - :ref:`bool<class_bool>` **toggle_mode**
 
-+----------+------------------------+
-| *Setter* | set_toggle_mode(value) |
-+----------+------------------------+
-| *Getter* | is_toggle_mode()       |
-+----------+------------------------+
++-----------+------------------------+
+| *Default* | ``false``              |
++-----------+------------------------+
+| *Setter*  | set_toggle_mode(value) |
++-----------+------------------------+
+| *Getter*  | is_toggle_mode()       |
++-----------+------------------------+
 
 If ``true``, the button is in toggle mode. Makes the button flip state between pressed and unpressed each time its area is clicked.
 

+ 28 - 14
classes/class_basematerial3d.rst

@@ -180,7 +180,7 @@ Properties
 +-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
 | :ref:`float<class_float>`                                       | :ref:`proximity_fade_distance<class_BaseMaterial3D_property_proximity_fade_distance>`                             | ``1.0``               |
 +-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
-| :ref:`bool<class_bool>`                                         | :ref:`proximity_fade_enable<class_BaseMaterial3D_property_proximity_fade_enable>`                                 | ``false``             |
+| :ref:`bool<class_bool>`                                         | :ref:`proximity_fade_enabled<class_BaseMaterial3D_property_proximity_fade_enabled>`                               | ``false``             |
 +-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
 | :ref:`bool<class_bool>`                                         | :ref:`refraction_enabled<class_BaseMaterial3D_property_refraction_enabled>`                                       | ``false``             |
 +-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
@@ -687,7 +687,7 @@ enum **Flags**:
 
 - **FLAG_SUBSURFACE_MODE_SKIN** = **18** --- Enables the skin mode for subsurface scattering which is used to improve the look of subsurface scattering when used for human skin.
 
-- **FLAG_PARTICLE_TRAILS_MODE** = **19**
+- **FLAG_PARTICLE_TRAILS_MODE** = **19** --- Enables parts of the shader required for :ref:`GPUParticles3D<class_GPUParticles3D>` trails to function. This also requires using a mesh with appropriate skinning, such as :ref:`RibbonTrailMesh<class_RibbonTrailMesh>` or :ref:`TubeTrailMesh<class_TubeTrailMesh>`. Enabling this feature outside of materials used in :ref:`GPUParticles3D<class_GPUParticles3D>` meshes will break material rendering.
 
 - **FLAG_ALBEDO_TEXTURE_MSDF** = **20** --- Enables multichannel signed distance field rendering shader.
 
@@ -1104,7 +1104,7 @@ The color used by the backlight effect. Represents the light passing through an
 | *Getter*  | get_feature()      |
 +-----------+--------------------+
 
-If ``true``, the backlight effect is enabled.
+If ``true``, the backlight effect is enabled. See also :ref:`subsurf_scatter_transmittance_enabled<class_BaseMaterial3D_property_subsurf_scatter_transmittance_enabled>`.
 
 ----
 
@@ -1946,6 +1946,8 @@ Texture used to specify the normal at a given pixel. The :ref:`normal_texture<cl
 | *Getter* | get_texture()      |
 +----------+--------------------+
 
+The Occlusion/Roughness/Metallic texture to use. This is a more efficient replacement of :ref:`ao_texture<class_BaseMaterial3D_property_ao_texture>`, :ref:`roughness_texture<class_BaseMaterial3D_property_roughness_texture>` and :ref:`metallic_texture<class_BaseMaterial3D_property_metallic_texture>` in :ref:`ORMMaterial3D<class_ORMMaterial3D>`. Ambient occlusion is stored in the red channel. Roughness map is stored in the green channel. Metallic map is stored in the blue channel. The alpha channel is ignored.
+
 ----
 
 .. _class_BaseMaterial3D_property_particles_anim_h_frames:
@@ -2022,17 +2024,17 @@ Distance over which the fade effect takes place. The larger the distance the lon
 
 ----
 
-.. _class_BaseMaterial3D_property_proximity_fade_enable:
+.. _class_BaseMaterial3D_property_proximity_fade_enabled:
 
-- :ref:`bool<class_bool>` **proximity_fade_enable**
+- :ref:`bool<class_bool>` **proximity_fade_enabled**
 
-+-----------+-----------------------------+
-| *Default* | ``false``                   |
-+-----------+-----------------------------+
-| *Setter*  | set_proximity_fade(value)   |
-+-----------+-----------------------------+
-| *Getter*  | is_proximity_fade_enabled() |
-+-----------+-----------------------------+
++-----------+-----------------------------------+
+| *Default* | ``false``                         |
++-----------+-----------------------------------+
+| *Setter*  | set_proximity_fade_enabled(value) |
++-----------+-----------------------------------+
+| *Getter*  | is_proximity_fade_enabled()       |
++-----------+-----------------------------------+
 
 If ``true``, the proximity fade effect is enabled. The proximity fade effect fades out each pixel based on its distance to another object.
 
@@ -2256,7 +2258,7 @@ If ``true``, enables the "shadow to opacity" render mode where lighting modifies
 
 The method for rendering the specular blob. See :ref:`SpecularMode<enum_BaseMaterial3D_SpecularMode>`.
 
-\ **Note:** Only applies to the specular blob. Does not affect specular reflections from the Sky, SSR, or ReflectionProbes.
+\ **Note:** :ref:`specular_mode<class_BaseMaterial3D_property_specular_mode>` only applies to the specular blob. It does not affect specular reflections from the sky, screen-space reflections, :ref:`VoxelGI<class_VoxelGI>`, SDFGI or :ref:`ReflectionProbe<class_ReflectionProbe>`\ s. To disable reflections from these sources as well, set :ref:`metallic_specular<class_BaseMaterial3D_property_metallic_specular>` to ``0.0`` instead.
 
 ----
 
@@ -2288,7 +2290,7 @@ If ``true``, subsurface scattering is enabled. Emulates light that penetrates an
 | *Getter*  | get_flag()      |
 +-----------+-----------------+
 
-If ``true``, subsurface scattering will use a special mode optimized for the color and density of human skin.
+If ``true``, subsurface scattering will use a special mode optimized for the color and density of human skin, such as boosting the intensity of the red channel in subsurface scattering.
 
 ----
 
@@ -2334,6 +2336,8 @@ Texture used to control the subsurface scattering strength. Stored in the red te
 | *Getter*  | get_transmittance_boost()      |
 +-----------+--------------------------------+
 
+The intensity of the subsurface scattering transmittance effect.
+
 ----
 
 .. _class_BaseMaterial3D_property_subsurf_scatter_transmittance_color:
@@ -2348,6 +2352,8 @@ Texture used to control the subsurface scattering strength. Stored in the red te
 | *Getter*  | get_transmittance_color()      |
 +-----------+--------------------------------+
 
+The color to multiply the subsurface scattering transmittance effect with. Ignored if :ref:`subsurf_scatter_skin_mode<class_BaseMaterial3D_property_subsurf_scatter_skin_mode>` is ``true``.
+
 ----
 
 .. _class_BaseMaterial3D_property_subsurf_scatter_transmittance_depth:
@@ -2362,6 +2368,8 @@ Texture used to control the subsurface scattering strength. Stored in the red te
 | *Getter*  | get_transmittance_depth()      |
 +-----------+--------------------------------+
 
+The depth of the subsurface scattering transmittance effect.
+
 ----
 
 .. _class_BaseMaterial3D_property_subsurf_scatter_transmittance_enabled:
@@ -2376,6 +2384,8 @@ Texture used to control the subsurface scattering strength. Stored in the red te
 | *Getter*  | get_feature()      |
 +-----------+--------------------+
 
+If ``true``, enables subsurface scattering transmittance. Only effective if :ref:`subsurf_scatter_enabled<class_BaseMaterial3D_property_subsurf_scatter_enabled>` is ``true``. See also :ref:`backlight_enabled<class_BaseMaterial3D_property_backlight_enabled>`.
+
 ----
 
 .. _class_BaseMaterial3D_property_subsurf_scatter_transmittance_texture:
@@ -2388,6 +2398,8 @@ Texture used to control the subsurface scattering strength. Stored in the red te
 | *Getter* | get_texture()      |
 +----------+--------------------+
 
+The texture to use for multiplying the intensity of the subsurface scattering transmitteance intensity. See also :ref:`subsurf_scatter_texture<class_BaseMaterial3D_property_subsurf_scatter_texture>`. Ignored if :ref:`subsurf_scatter_skin_mode<class_BaseMaterial3D_property_subsurf_scatter_skin_mode>` is ``true``.
+
 ----
 
 .. _class_BaseMaterial3D_property_texture_filter:
@@ -2452,6 +2464,8 @@ If ``true``, transparency is enabled on the body. See also :ref:`blend_mode<clas
 | *Getter*  | get_flag()      |
 +-----------+-----------------+
 
+If ``true``, enables parts of the shader required for :ref:`GPUParticles3D<class_GPUParticles3D>` trails to function. This also requires using a mesh with appropriate skinning, such as :ref:`RibbonTrailMesh<class_RibbonTrailMesh>` or :ref:`TubeTrailMesh<class_TubeTrailMesh>`. Enabling this feature outside of materials used in :ref:`GPUParticles3D<class_GPUParticles3D>` meshes will break material rendering.
+
 ----
 
 .. _class_BaseMaterial3D_property_use_point_size:

+ 12 - 24
classes/class_basis.rst

@@ -86,6 +86,8 @@ Methods
 +-------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`bool<class_bool>`             | :ref:`is_equal_approx<class_Basis_method_is_equal_approx>` **(** :ref:`Basis<class_Basis>` b **)** |const|                                                    |
 +-------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`             | :ref:`is_finite<class_Basis_method_is_finite>` **(** **)** |const|                                                                                            |
++-------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`Basis<class_Basis>`           | :ref:`looking_at<class_Basis_method_looking_at>` **(** :ref:`Vector3<class_Vector3>` target, :ref:`Vector3<class_Vector3>` up=Vector3(0, 1, 0) **)** |static| |
 +-------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`Basis<class_Basis>`           | :ref:`orthonormalized<class_Basis_method_orthonormalized>` **(** **)** |const|                                                                                |
@@ -127,18 +129,6 @@ Operators
 Constants
 ---------
 
-.. _class_Basis_constant_EULER_ORDER_XYZ:
-
-.. _class_Basis_constant_EULER_ORDER_XZY:
-
-.. _class_Basis_constant_EULER_ORDER_YXZ:
-
-.. _class_Basis_constant_EULER_ORDER_YZX:
-
-.. _class_Basis_constant_EULER_ORDER_ZXY:
-
-.. _class_Basis_constant_EULER_ORDER_ZYX:
-
 .. _class_Basis_constant_IDENTITY:
 
 .. _class_Basis_constant_FLIP_X:
@@ -147,18 +137,6 @@ Constants
 
 .. _class_Basis_constant_FLIP_Z:
 
-- **EULER_ORDER_XYZ** = **0**
-
-- **EULER_ORDER_XZY** = **1**
-
-- **EULER_ORDER_YXZ** = **2**
-
-- **EULER_ORDER_YZX** = **3**
-
-- **EULER_ORDER_ZXY** = **4**
-
-- **EULER_ORDER_ZYX** = **5**
-
 - **IDENTITY** = **Basis(1, 0, 0, 0, 1, 0, 0, 0, 1)** --- 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#.
@@ -256,6 +234,8 @@ A negative determinant means the basis has a negative scale. A zero determinant
 
 - :ref:`Basis<class_Basis>` **from_euler** **(** :ref:`Vector3<class_Vector3>` euler, :ref:`int<class_int>` order=2 **)** |static|
 
+Constructs a pure rotation Basis matrix from Euler angles in the specified Euler rotation order. By default, use YXZ order (most common). See the :ref:`EulerOrder<enum_@GlobalScope_EulerOrder>` enum for possible values.
+
 ----
 
 .. _class_Basis_method_from_scale:
@@ -308,6 +288,14 @@ Returns ``true`` if this basis and ``b`` are approximately equal, by calling ``i
 
 ----
 
+.. _class_Basis_method_is_finite:
+
+- :ref:`bool<class_bool>` **is_finite** **(** **)** |const|
+
+Returns ``true`` if this basis is finite, by calling :ref:`@GlobalScope.is_finite<class_@GlobalScope_method_is_finite>` on each component.
+
+----
+
 .. _class_Basis_method_looking_at:
 
 - :ref:`Basis<class_Basis>` **looking_at** **(** :ref:`Vector3<class_Vector3>` target, :ref:`Vector3<class_Vector3>` up=Vector3(0, 1, 0) **)** |static|

+ 1 - 1
classes/class_bitmap.rst

@@ -57,7 +57,7 @@ Method Descriptions
 
 - :ref:`Image<class_Image>` **convert_to_image** **(** **)** |const|
 
-Returns an image of the same size as the bitmap and with a :ref:`Format<enum_Image_Format>` of type ``FORMAT_L8``. ``true`` bits of the bitmap are being converted into white pixels, and ``false`` bits into black.
+Returns an image of the same size as the bitmap and with a :ref:`Format<enum_Image_Format>` of type :ref:`Image.FORMAT_L8<class_Image_constant_FORMAT_L8>`. ``true`` bits of the bitmap are being converted into white pixels, and ``false`` bits into black.
 
 ----
 

+ 5 - 0
classes/class_bonemap.rst

@@ -21,6 +21,11 @@ This class contains a hashmap that uses a list of bone names in :ref:`SkeletonPr
 
 By assigning the actual :ref:`Skeleton3D<class_Skeleton3D>` bone name as the key value, it maps the :ref:`Skeleton3D<class_Skeleton3D>` to the :ref:`SkeletonProfile<class_SkeletonProfile>`.
 
+Tutorials
+---------
+
+- :doc:`Retargeting 3D Skeletons <../tutorials/assets_pipeline/retargeting_3d_skeletons>`
+
 Properties
 ----------
 

+ 2 - 2
classes/class_button.rst

@@ -31,7 +31,7 @@ Button is the standard themed button. It can contain text and an icon, and will
     func _ready():
         var button = Button.new()
         button.text = "Click me"
-        button.connect("pressed", self, "_button_pressed")
+        button.pressed.connect(self._button_pressed)
         add_child(button)
     
     func _button_pressed():
@@ -43,7 +43,7 @@ Button is the standard themed button. It can contain text and an icon, and will
     {
         var button = new Button();
         button.Text = "Click me";
-        button.Connect("pressed", this, nameof(ButtonPressed));
+        button.Pressed += ButtonPressed;
         AddChild(button);
     }
     

+ 3 - 1
classes/class_callbacktweener.rst

@@ -35,7 +35,9 @@ Method Descriptions
 
 - :ref:`CallbackTweener<class_CallbackTweener>` **set_delay** **(** :ref:`float<class_float>` delay **)**
 
-Makes the callback call delayed by given time in seconds. Example:
+Makes the callback call delayed by given time in seconds.
+
+\ **Example:**\ 
 
 ::
 

+ 39 - 39
classes/class_camera2d.rst

@@ -80,16 +80,16 @@ Properties
 +-----------------------------------------------------------------------+---------------------------------------------------------------------------------------+-------------------+
 | :ref:`Vector2<class_Vector2>`                                         | :ref:`offset<class_Camera2D_property_offset>`                                         | ``Vector2(0, 0)`` |
 +-----------------------------------------------------------------------+---------------------------------------------------------------------------------------+-------------------+
+| :ref:`bool<class_bool>`                                               | :ref:`position_smoothing_enabled<class_Camera2D_property_position_smoothing_enabled>` | ``false``         |
++-----------------------------------------------------------------------+---------------------------------------------------------------------------------------+-------------------+
+| :ref:`float<class_float>`                                             | :ref:`position_smoothing_speed<class_Camera2D_property_position_smoothing_speed>`     | ``5.0``           |
++-----------------------------------------------------------------------+---------------------------------------------------------------------------------------+-------------------+
 | :ref:`Camera2DProcessCallback<enum_Camera2D_Camera2DProcessCallback>` | :ref:`process_callback<class_Camera2D_property_process_callback>`                     | ``1``             |
 +-----------------------------------------------------------------------+---------------------------------------------------------------------------------------+-------------------+
 | :ref:`bool<class_bool>`                                               | :ref:`rotation_smoothing_enabled<class_Camera2D_property_rotation_smoothing_enabled>` | ``false``         |
 +-----------------------------------------------------------------------+---------------------------------------------------------------------------------------+-------------------+
 | :ref:`float<class_float>`                                             | :ref:`rotation_smoothing_speed<class_Camera2D_property_rotation_smoothing_speed>`     | ``5.0``           |
 +-----------------------------------------------------------------------+---------------------------------------------------------------------------------------+-------------------+
-| :ref:`bool<class_bool>`                                               | :ref:`smoothing_enabled<class_Camera2D_property_smoothing_enabled>`                   | ``false``         |
-+-----------------------------------------------------------------------+---------------------------------------------------------------------------------------+-------------------+
-| :ref:`float<class_float>`                                             | :ref:`smoothing_speed<class_Camera2D_property_smoothing_speed>`                       | ``5.0``           |
-+-----------------------------------------------------------------------+---------------------------------------------------------------------------------------+-------------------+
 | :ref:`Vector2<class_Vector2>`                                         | :ref:`zoom<class_Camera2D_property_zoom>`                                             | ``Vector2(1, 1)`` |
 +-----------------------------------------------------------------------+---------------------------------------------------------------------------------------+-------------------+
 
@@ -452,7 +452,7 @@ Right scroll limit in pixels. The camera stops moving when reaching this value,
 
 If ``true``, the camera smoothly stops when reaches its limits.
 
-This property has no effect if :ref:`smoothing_enabled<class_Camera2D_property_smoothing_enabled>` is ``false``.
+This property has no effect if :ref:`position_smoothing_enabled<class_Camera2D_property_position_smoothing_enabled>` is ``false``.
 
 \ **Note:** To immediately update the camera's position to be within limits without smoothing, even with this setting enabled, invoke :ref:`reset_smoothing<class_Camera2D_method_reset_smoothing>`.
 
@@ -490,6 +490,38 @@ The camera's relative offset. Useful for looking around or camera shake animatio
 
 ----
 
+.. _class_Camera2D_property_position_smoothing_enabled:
+
+- :ref:`bool<class_bool>` **position_smoothing_enabled**
+
++-----------+---------------------------------------+
+| *Default* | ``false``                             |
++-----------+---------------------------------------+
+| *Setter*  | set_position_smoothing_enabled(value) |
++-----------+---------------------------------------+
+| *Getter*  | is_position_smoothing_enabled()       |
++-----------+---------------------------------------+
+
+If ``true``, the camera's view smoothly moves towards its target position at :ref:`position_smoothing_speed<class_Camera2D_property_position_smoothing_speed>`.
+
+----
+
+.. _class_Camera2D_property_position_smoothing_speed:
+
+- :ref:`float<class_float>` **position_smoothing_speed**
+
++-----------+-------------------------------------+
+| *Default* | ``5.0``                             |
++-----------+-------------------------------------+
+| *Setter*  | set_position_smoothing_speed(value) |
++-----------+-------------------------------------+
+| *Getter*  | get_position_smoothing_speed()      |
++-----------+-------------------------------------+
+
+Speed in pixels per second of the camera's smoothing effect when :ref:`position_smoothing_enabled<class_Camera2D_property_position_smoothing_enabled>` is ``true``.
+
+----
+
 .. _class_Camera2D_property_process_callback:
 
 - :ref:`Camera2DProcessCallback<enum_Camera2D_Camera2DProcessCallback>` **process_callback**
@@ -540,38 +572,6 @@ The angular, asymptotic speed of the camera's rotation smoothing effect when :re
 
 ----
 
-.. _class_Camera2D_property_smoothing_enabled:
-
-- :ref:`bool<class_bool>` **smoothing_enabled**
-
-+-----------+------------------------------------+
-| *Default* | ``false``                          |
-+-----------+------------------------------------+
-| *Setter*  | set_enable_follow_smoothing(value) |
-+-----------+------------------------------------+
-| *Getter*  | is_follow_smoothing_enabled()      |
-+-----------+------------------------------------+
-
-If ``true``, the camera smoothly moves towards the target at :ref:`smoothing_speed<class_Camera2D_property_smoothing_speed>`.
-
-----
-
-.. _class_Camera2D_property_smoothing_speed:
-
-- :ref:`float<class_float>` **smoothing_speed**
-
-+-----------+-----------------------------+
-| *Default* | ``5.0``                     |
-+-----------+-----------------------------+
-| *Setter*  | set_follow_smoothing(value) |
-+-----------+-----------------------------+
-| *Getter*  | get_follow_smoothing()      |
-+-----------+-----------------------------+
-
-Speed in pixels per second of the camera's smoothing effect when :ref:`smoothing_enabled<class_Camera2D_property_smoothing_enabled>` is ``true``.
-
-----
-
 .. _class_Camera2D_property_zoom:
 
 - :ref:`Vector2<class_Vector2>` **zoom**
@@ -637,7 +637,7 @@ Returns the center of the screen from this camera's point of view, in global coo
 
 Returns this camera's target position, in global coordinates.
 
-\ **Note:** The returned value is not the same as :ref:`Node2D.global_position<class_Node2D_property_global_position>`, as it is affected by the drag properties. It is also not the same as the current position if :ref:`smoothing_enabled<class_Camera2D_property_smoothing_enabled>` is ``true`` (see :ref:`get_screen_center_position<class_Camera2D_method_get_screen_center_position>`).
+\ **Note:** The returned value is not the same as :ref:`Node2D.global_position<class_Node2D_property_global_position>`, as it is affected by the drag properties. It is also not the same as the current position if :ref:`position_smoothing_enabled<class_Camera2D_property_position_smoothing_enabled>` is ``true`` (see :ref:`get_screen_center_position<class_Camera2D_method_get_screen_center_position>`).
 
 ----
 
@@ -647,7 +647,7 @@ Returns this camera's target position, in global coordinates.
 
 Sets the camera's position immediately to its current smoothing destination.
 
-This method has no effect if :ref:`smoothing_enabled<class_Camera2D_property_smoothing_enabled>` is ``false``.
+This method has no effect if :ref:`position_smoothing_enabled<class_Camera2D_property_position_smoothing_enabled>` is ``false``.
 
 ----
 

+ 46 - 36
classes/class_cameraattributes.rst

@@ -30,17 +30,17 @@ This is a pure virtual class that is inherited by :ref:`CameraAttributesPhysical
 Properties
 ----------
 
-+---------------------------+-------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`   | :ref:`auto_exposure_enabled<class_CameraAttributes_property_auto_exposure_enabled>` |
-+---------------------------+-------------------------------------------------------------------------------------+
-| :ref:`float<class_float>` | :ref:`auto_exposure_scale<class_CameraAttributes_property_auto_exposure_scale>`     |
-+---------------------------+-------------------------------------------------------------------------------------+
-| :ref:`float<class_float>` | :ref:`auto_exposure_speed<class_CameraAttributes_property_auto_exposure_speed>`     |
-+---------------------------+-------------------------------------------------------------------------------------+
-| :ref:`float<class_float>` | :ref:`exposure_multiplier<class_CameraAttributes_property_exposure_multiplier>`     |
-+---------------------------+-------------------------------------------------------------------------------------+
-| :ref:`float<class_float>` | :ref:`exposure_sensitivity<class_CameraAttributes_property_exposure_sensitivity>`   |
-+---------------------------+-------------------------------------------------------------------------------------+
++---------------------------+-------------------------------------------------------------------------------------+-----------+
+| :ref:`bool<class_bool>`   | :ref:`auto_exposure_enabled<class_CameraAttributes_property_auto_exposure_enabled>` | ``false`` |
++---------------------------+-------------------------------------------------------------------------------------+-----------+
+| :ref:`float<class_float>` | :ref:`auto_exposure_scale<class_CameraAttributes_property_auto_exposure_scale>`     | ``0.4``   |
++---------------------------+-------------------------------------------------------------------------------------+-----------+
+| :ref:`float<class_float>` | :ref:`auto_exposure_speed<class_CameraAttributes_property_auto_exposure_speed>`     | ``0.5``   |
++---------------------------+-------------------------------------------------------------------------------------+-----------+
+| :ref:`float<class_float>` | :ref:`exposure_multiplier<class_CameraAttributes_property_exposure_multiplier>`     | ``1.0``   |
++---------------------------+-------------------------------------------------------------------------------------+-----------+
+| :ref:`float<class_float>` | :ref:`exposure_sensitivity<class_CameraAttributes_property_exposure_sensitivity>`   | ``100.0`` |
++---------------------------+-------------------------------------------------------------------------------------+-----------+
 
 Property Descriptions
 ---------------------
@@ -49,11 +49,13 @@ Property Descriptions
 
 - :ref:`bool<class_bool>` **auto_exposure_enabled**
 
-+----------+----------------------------------+
-| *Setter* | set_auto_exposure_enabled(value) |
-+----------+----------------------------------+
-| *Getter* | is_auto_exposure_enabled()       |
-+----------+----------------------------------+
++-----------+----------------------------------+
+| *Default* | ``false``                        |
++-----------+----------------------------------+
+| *Setter*  | set_auto_exposure_enabled(value) |
++-----------+----------------------------------+
+| *Getter*  | is_auto_exposure_enabled()       |
++-----------+----------------------------------+
 
 If ``true``, enables the tonemapping auto exposure mode of the scene renderer. If ``true``, the renderer will automatically determine the exposure setting to adapt to the scene's illumination and the observed light.
 
@@ -63,11 +65,13 @@ If ``true``, enables the tonemapping auto exposure mode of the scene renderer. I
 
 - :ref:`float<class_float>` **auto_exposure_scale**
 
-+----------+--------------------------------+
-| *Setter* | set_auto_exposure_scale(value) |
-+----------+--------------------------------+
-| *Getter* | get_auto_exposure_scale()      |
-+----------+--------------------------------+
++-----------+--------------------------------+
+| *Default* | ``0.4``                        |
++-----------+--------------------------------+
+| *Setter*  | set_auto_exposure_scale(value) |
++-----------+--------------------------------+
+| *Getter*  | get_auto_exposure_scale()      |
++-----------+--------------------------------+
 
 The scale of the auto exposure effect. Affects the intensity of auto exposure.
 
@@ -77,11 +81,13 @@ The scale of the auto exposure effect. Affects the intensity of auto exposure.
 
 - :ref:`float<class_float>` **auto_exposure_speed**
 
-+----------+--------------------------------+
-| *Setter* | set_auto_exposure_speed(value) |
-+----------+--------------------------------+
-| *Getter* | get_auto_exposure_speed()      |
-+----------+--------------------------------+
++-----------+--------------------------------+
+| *Default* | ``0.5``                        |
++-----------+--------------------------------+
+| *Setter*  | set_auto_exposure_speed(value) |
++-----------+--------------------------------+
+| *Getter*  | get_auto_exposure_speed()      |
++-----------+--------------------------------+
 
 The speed of the auto exposure effect. Affects the time needed for the camera to perform auto exposure.
 
@@ -91,11 +97,13 @@ The speed of the auto exposure effect. Affects the time needed for the camera to
 
 - :ref:`float<class_float>` **exposure_multiplier**
 
-+----------+--------------------------------+
-| *Setter* | set_exposure_multiplier(value) |
-+----------+--------------------------------+
-| *Getter* | get_exposure_multiplier()      |
-+----------+--------------------------------+
++-----------+--------------------------------+
+| *Default* | ``1.0``                        |
++-----------+--------------------------------+
+| *Setter*  | set_exposure_multiplier(value) |
++-----------+--------------------------------+
+| *Getter*  | get_exposure_multiplier()      |
++-----------+--------------------------------+
 
 Multiplier for the exposure amount. A higher value results in a brighter image.
 
@@ -105,11 +113,13 @@ Multiplier for the exposure amount. A higher value results in a brighter image.
 
 - :ref:`float<class_float>` **exposure_sensitivity**
 
-+----------+---------------------------------+
-| *Setter* | set_exposure_sensitivity(value) |
-+----------+---------------------------------+
-| *Getter* | get_exposure_sensitivity()      |
-+----------+---------------------------------+
++-----------+---------------------------------+
+| *Default* | ``100.0``                       |
++-----------+---------------------------------+
+| *Setter*  | set_exposure_sensitivity(value) |
++-----------+---------------------------------+
+| *Getter*  | get_exposure_sensitivity()      |
++-----------+---------------------------------+
 
 Sensitivity of camera sensors, measured in ISO. A higher sensitivity results in a brighter image. Only available when :ref:`ProjectSettings.rendering/lights_and_shadows/use_physical_light_units<class_ProjectSettings_property_rendering/lights_and_shadows/use_physical_light_units>` is enabled. When :ref:`auto_exposure_enabled<class_CameraAttributes_property_auto_exposure_enabled>` this can be used as a method of exposure compensation, doubling the value will increase the exposure value (measured in EV100) by 1 stop.
 

+ 93 - 33
classes/class_canvasitem.rst

@@ -43,29 +43,31 @@ Tutorials
 Properties
 ----------
 
-+-----------------------------------------------------+---------------------------------------------------------------------------+-----------------------+
-| :ref:`bool<class_bool>`                             | :ref:`clip_children<class_CanvasItem_property_clip_children>`             | ``false``             |
-+-----------------------------------------------------+---------------------------------------------------------------------------+-----------------------+
-| :ref:`int<class_int>`                               | :ref:`light_mask<class_CanvasItem_property_light_mask>`                   | ``1``                 |
-+-----------------------------------------------------+---------------------------------------------------------------------------+-----------------------+
-| :ref:`Material<class_Material>`                     | :ref:`material<class_CanvasItem_property_material>`                       |                       |
-+-----------------------------------------------------+---------------------------------------------------------------------------+-----------------------+
-| :ref:`Color<class_Color>`                           | :ref:`modulate<class_CanvasItem_property_modulate>`                       | ``Color(1, 1, 1, 1)`` |
-+-----------------------------------------------------+---------------------------------------------------------------------------+-----------------------+
-| :ref:`Color<class_Color>`                           | :ref:`self_modulate<class_CanvasItem_property_self_modulate>`             | ``Color(1, 1, 1, 1)`` |
-+-----------------------------------------------------+---------------------------------------------------------------------------+-----------------------+
-| :ref:`bool<class_bool>`                             | :ref:`show_behind_parent<class_CanvasItem_property_show_behind_parent>`   | ``false``             |
-+-----------------------------------------------------+---------------------------------------------------------------------------+-----------------------+
-| :ref:`TextureFilter<enum_CanvasItem_TextureFilter>` | :ref:`texture_filter<class_CanvasItem_property_texture_filter>`           | ``0``                 |
-+-----------------------------------------------------+---------------------------------------------------------------------------+-----------------------+
-| :ref:`TextureRepeat<enum_CanvasItem_TextureRepeat>` | :ref:`texture_repeat<class_CanvasItem_property_texture_repeat>`           | ``0``                 |
-+-----------------------------------------------------+---------------------------------------------------------------------------+-----------------------+
-| :ref:`bool<class_bool>`                             | :ref:`top_level<class_CanvasItem_property_top_level>`                     | ``false``             |
-+-----------------------------------------------------+---------------------------------------------------------------------------+-----------------------+
-| :ref:`bool<class_bool>`                             | :ref:`use_parent_material<class_CanvasItem_property_use_parent_material>` | ``false``             |
-+-----------------------------------------------------+---------------------------------------------------------------------------+-----------------------+
-| :ref:`bool<class_bool>`                             | :ref:`visible<class_CanvasItem_property_visible>`                         | ``true``              |
-+-----------------------------------------------------+---------------------------------------------------------------------------+-----------------------+
++-----------------------------------------------------------+---------------------------------------------------------------------------+-----------------------+
+| :ref:`ClipChildrenMode<enum_CanvasItem_ClipChildrenMode>` | :ref:`clip_children<class_CanvasItem_property_clip_children>`             | ``0``                 |
++-----------------------------------------------------------+---------------------------------------------------------------------------+-----------------------+
+| :ref:`int<class_int>`                                     | :ref:`light_mask<class_CanvasItem_property_light_mask>`                   | ``1``                 |
++-----------------------------------------------------------+---------------------------------------------------------------------------+-----------------------+
+| :ref:`Material<class_Material>`                           | :ref:`material<class_CanvasItem_property_material>`                       |                       |
++-----------------------------------------------------------+---------------------------------------------------------------------------+-----------------------+
+| :ref:`Color<class_Color>`                                 | :ref:`modulate<class_CanvasItem_property_modulate>`                       | ``Color(1, 1, 1, 1)`` |
++-----------------------------------------------------------+---------------------------------------------------------------------------+-----------------------+
+| :ref:`Color<class_Color>`                                 | :ref:`self_modulate<class_CanvasItem_property_self_modulate>`             | ``Color(1, 1, 1, 1)`` |
++-----------------------------------------------------------+---------------------------------------------------------------------------+-----------------------+
+| :ref:`bool<class_bool>`                                   | :ref:`show_behind_parent<class_CanvasItem_property_show_behind_parent>`   | ``false``             |
++-----------------------------------------------------------+---------------------------------------------------------------------------+-----------------------+
+| :ref:`TextureFilter<enum_CanvasItem_TextureFilter>`       | :ref:`texture_filter<class_CanvasItem_property_texture_filter>`           | ``0``                 |
++-----------------------------------------------------------+---------------------------------------------------------------------------+-----------------------+
+| :ref:`TextureRepeat<enum_CanvasItem_TextureRepeat>`       | :ref:`texture_repeat<class_CanvasItem_property_texture_repeat>`           | ``0``                 |
++-----------------------------------------------------------+---------------------------------------------------------------------------+-----------------------+
+| :ref:`bool<class_bool>`                                   | :ref:`top_level<class_CanvasItem_property_top_level>`                     | ``false``             |
++-----------------------------------------------------------+---------------------------------------------------------------------------+-----------------------+
+| :ref:`bool<class_bool>`                                   | :ref:`use_parent_material<class_CanvasItem_property_use_parent_material>` | ``false``             |
++-----------------------------------------------------------+---------------------------------------------------------------------------+-----------------------+
+| :ref:`int<class_int>`                                     | :ref:`visibility_layer<class_CanvasItem_property_visibility_layer>`       | ``1``                 |
++-----------------------------------------------------------+---------------------------------------------------------------------------+-----------------------+
+| :ref:`bool<class_bool>`                                   | :ref:`visible<class_CanvasItem_property_visible>`                         | ``true``              |
++-----------------------------------------------------------+---------------------------------------------------------------------------+-----------------------+
 
 Methods
 -------
@@ -157,6 +159,8 @@ Methods
 +---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`Transform2D<class_Transform2D>` | :ref:`get_viewport_transform<class_CanvasItem_method_get_viewport_transform>` **(** **)** |const|                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
 +---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`               | :ref:`get_visibility_layer_bit<class_CanvasItem_method_get_visibility_layer_bit>` **(** :ref:`int<class_int>` layer **)** |const|                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
++---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`World2D<class_World2D>`         | :ref:`get_world_2d<class_CanvasItem_method_get_world_2d>` **(** **)** |const|                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
 +---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                                  | :ref:`hide<class_CanvasItem_method_hide>` **(** **)**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
@@ -179,6 +183,8 @@ Methods
 +---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                                  | :ref:`set_notify_transform<class_CanvasItem_method_set_notify_transform>` **(** :ref:`bool<class_bool>` enable **)**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
 +---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                  | :ref:`set_visibility_layer_bit<class_CanvasItem_method_set_visibility_layer_bit>` **(** :ref:`int<class_int>` layer, :ref:`bool<class_bool>` enabled **)**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
++---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                                  | :ref:`show<class_CanvasItem_method_show>` **(** **)**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
 +---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 
@@ -286,6 +292,28 @@ enum **TextureRepeat**:
 
 - **TEXTURE_REPEAT_MAX** = **4** --- Represents the size of the :ref:`TextureRepeat<enum_CanvasItem_TextureRepeat>` enum.
 
+----
+
+.. _enum_CanvasItem_ClipChildrenMode:
+
+.. _class_CanvasItem_constant_CLIP_CHILDREN_DISABLED:
+
+.. _class_CanvasItem_constant_CLIP_CHILDREN_ONLY:
+
+.. _class_CanvasItem_constant_CLIP_CHILDREN_AND_DRAW:
+
+.. _class_CanvasItem_constant_CLIP_CHILDREN_MAX:
+
+enum **ClipChildrenMode**:
+
+- **CLIP_CHILDREN_DISABLED** = **0**
+
+- **CLIP_CHILDREN_ONLY** = **1**
+
+- **CLIP_CHILDREN_AND_DRAW** = **2**
+
+- **CLIP_CHILDREN_MAX** = **3**
+
 Constants
 ---------
 
@@ -318,15 +346,15 @@ Property Descriptions
 
 .. _class_CanvasItem_property_clip_children:
 
-- :ref:`bool<class_bool>` **clip_children**
+- :ref:`ClipChildrenMode<enum_CanvasItem_ClipChildrenMode>` **clip_children**
 
-+-----------+--------------------------+
-| *Default* | ``false``                |
-+-----------+--------------------------+
-| *Setter*  | set_clip_children(value) |
-+-----------+--------------------------+
-| *Getter*  | is_clipping_children()   |
-+-----------+--------------------------+
++-----------+-------------------------------+
+| *Default* | ``0``                         |
++-----------+-------------------------------+
+| *Setter*  | set_clip_children_mode(value) |
++-----------+-------------------------------+
+| *Getter*  | get_clip_children_mode()      |
++-----------+-------------------------------+
 
 Allows the current node to clip children nodes, essentially acting as a mask.
 
@@ -474,6 +502,22 @@ If ``true``, the parent ``CanvasItem``'s :ref:`material<class_CanvasItem_propert
 
 ----
 
+.. _class_CanvasItem_property_visibility_layer:
+
+- :ref:`int<class_int>` **visibility_layer**
+
++-----------+-----------------------------+
+| *Default* | ``1``                       |
++-----------+-----------------------------+
+| *Setter*  | set_visibility_layer(value) |
++-----------+-----------------------------+
+| *Getter*  | get_visibility_layer()      |
++-----------+-----------------------------+
+
+The rendering layer in which this ``CanvasItem`` is rendered by :ref:`Viewport<class_Viewport>` nodes. A :ref:`Viewport<class_Viewport>` will render a ``CanvasItem`` if it and all its parents share a layer with the :ref:`Viewport<class_Viewport>`'s canvas cull mask.
+
+----
+
 .. _class_CanvasItem_property_visible:
 
 - :ref:`bool<class_bool>` **visible**
@@ -571,7 +615,7 @@ After submitting all animations slices via :ref:`draw_animation_slice<class_Canv
 
 - void **draw_lcd_texture_rect_region** **(** :ref:`Texture2D<class_Texture2D>` texture, :ref:`Rect2<class_Rect2>` rect, :ref:`Rect2<class_Rect2>` src_rect, :ref:`Color<class_Color>` modulate=Color(1, 1, 1, 1) **)**
 
-Draws a textured rectangle region of the font texture with LCD sub-pixel anti-aliasing at a given position, optionally modulated by a color.
+Draws a textured rectangle region of the font texture with LCD subpixel anti-aliasing at a given position, optionally modulated by a color.
 
 Texture is drawn using the following blend operation, blend mode of the :ref:`CanvasItemMaterial<class_CanvasItemMaterial>` is ignored:
 
@@ -829,7 +873,7 @@ Returns the mouse's position in the :ref:`CanvasLayer<class_CanvasLayer>` that t
 
 - :ref:`Transform2D<class_Transform2D>` **get_global_transform** **(** **)** |const|
 
-Returns the global transform matrix of this item.
+Returns the global transform matrix of this item, i.e. the combined transform up to the topmost ``CanvasItem`` node. The topmost item is a ``CanvasItem`` that either has no parent, has non-``CanvasItem`` parent or it has :ref:`top_level<class_CanvasItem_property_top_level>` enabled.
 
 ----
 
@@ -883,6 +927,14 @@ Returns this item's transform in relation to the viewport.
 
 ----
 
+.. _class_CanvasItem_method_get_visibility_layer_bit:
+
+- :ref:`bool<class_bool>` **get_visibility_layer_bit** **(** :ref:`int<class_int>` layer **)** |const|
+
+Returns an individual bit on the rendering visibility layer.
+
+----
+
 .. _class_CanvasItem_method_get_world_2d:
 
 - :ref:`World2D<class_World2D>` **get_world_2d** **(** **)** |const|
@@ -973,6 +1025,14 @@ If ``enable`` is ``true``, this node will receive :ref:`NOTIFICATION_TRANSFORM_C
 
 ----
 
+.. _class_CanvasItem_method_set_visibility_layer_bit:
+
+- void **set_visibility_layer_bit** **(** :ref:`int<class_int>` layer, :ref:`bool<class_bool>` enabled **)**
+
+Set/clear individual bits on the rendering visibility layer. This simplifies editing this ``CanvasItem``'s visibility layer.
+
+----
+
 .. _class_CanvasItem_method_show:
 
 - void **show** **(** **)**

+ 2 - 0
classes/class_canvaslayer.rst

@@ -21,6 +21,8 @@ Description
 
 Canvas drawing layer. :ref:`CanvasItem<class_CanvasItem>` nodes that are direct or indirect children of a ``CanvasLayer`` will be drawn in that layer. The layer is a numeric index that defines the draw order. The default 2D scene renders with index 0, so a ``CanvasLayer`` with index -1 will be drawn below, and one with index 1 will be drawn above. This is very useful for HUDs (in layer 1+ or above), or backgrounds (in layer -1 or below).
 
+Embedded :ref:`Window<class_Window>`\ s are placed in layer 1024. CanvasItems in layer 1025 or above appear in front of embedded windows, CanvasItems in layer 1023 or below appear behind embedded windows.
+
 Tutorials
 ---------
 

+ 23 - 0
classes/class_canvastexture.rst

@@ -12,7 +12,14 @@ CanvasTexture
 
 **Inherits:** :ref:`Texture2D<class_Texture2D>` **<** :ref:`Texture<class_Texture>` **<** :ref:`Resource<class_Resource>` **<** :ref:`RefCounted<class_RefCounted>` **<** :ref:`Object<class_Object>`
 
+Texture with optional normal and specular maps for use in 2D rendering.
 
+Description
+-----------
+
+``CanvasTexture`` is an alternative to :ref:`ImageTexture<class_ImageTexture>` for 2D rendering. It allows using normal maps and specular maps in any node that inherits from :ref:`CanvasItem<class_CanvasItem>`. ``CanvasTexture`` also allows overriding the texture's filter and repeat mode independently of the node's properties (or the project settings).
+
+\ **Note:** ``CanvasTexture`` cannot be used in 3D rendering. For physically-based materials in 3D, use :ref:`BaseMaterial3D<class_BaseMaterial3D>` instead.
 
 Properties
 ----------
@@ -46,6 +53,8 @@ Property Descriptions
 | *Getter* | get_diffuse_texture()      |
 +----------+----------------------------+
 
+The diffuse (color) texture to use. This is the main texture you want to set in most cases.
+
 ----
 
 .. _class_CanvasTexture_property_normal_texture:
@@ -58,6 +67,10 @@ Property Descriptions
 | *Getter* | get_normal_texture()      |
 +----------+---------------------------+
 
+The normal map texture to use. Only has a visible effect if :ref:`Light2D<class_Light2D>`\ s are affecting this ``CanvasTexture``.
+
+\ **Note:** Godot expects the normal map to use X+, Y+, and Z+ coordinates. See `this page <http://wiki.polycount.com/wiki/Normal_Map_Technical_Details#Common_Swizzle_Coordinates>`__ for a comparison of normal map coordinates expected by popular engines.
+
 ----
 
 .. _class_CanvasTexture_property_specular_color:
@@ -72,6 +85,8 @@ Property Descriptions
 | *Getter*  | get_specular_color()      |
 +-----------+---------------------------+
 
+The multiplier for specular reflection colors. The :ref:`Light2D<class_Light2D>`'s color is also taken into account when determining the reflection color. Only has a visible effect if :ref:`Light2D<class_Light2D>`\ s are affecting this ``CanvasTexture``.
+
 ----
 
 .. _class_CanvasTexture_property_specular_shininess:
@@ -86,6 +101,8 @@ Property Descriptions
 | *Getter*  | get_specular_shininess()      |
 +-----------+-------------------------------+
 
+The specular exponent for :ref:`Light2D<class_Light2D>` specular reflections. Higher values result in a more glossy/"wet" look, with reflections becoming more localized and less visible overall. The default value of ``1.0`` disables specular reflections entirely. Only has a visible effect if :ref:`Light2D<class_Light2D>`\ s are affecting this ``CanvasTexture``.
+
 ----
 
 .. _class_CanvasTexture_property_specular_texture:
@@ -98,6 +115,8 @@ Property Descriptions
 | *Getter* | get_specular_texture()      |
 +----------+-----------------------------+
 
+The specular map to use for :ref:`Light2D<class_Light2D>` specular reflections. This should be a grayscale or colored texture, with brighter areas resulting in a higher :ref:`specular_shininess<class_CanvasTexture_property_specular_shininess>` value. Using a colored :ref:`specular_texture<class_CanvasTexture_property_specular_texture>` allows controlling specular shininess on a per-channel basis. Only has a visible effect if :ref:`Light2D<class_Light2D>`\ s are affecting this ``CanvasTexture``.
+
 ----
 
 .. _class_CanvasTexture_property_texture_filter:
@@ -112,6 +131,8 @@ Property Descriptions
 | *Getter*  | get_texture_filter()      |
 +-----------+---------------------------+
 
+The texture filtering mode to use when drawing this ``CanvasTexture``.
+
 ----
 
 .. _class_CanvasTexture_property_texture_repeat:
@@ -126,6 +147,8 @@ Property Descriptions
 | *Getter*  | get_texture_repeat()      |
 +-----------+---------------------------+
 
+The texture repeat mode to use when drawing this ``CanvasTexture``.
+
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`

+ 1 - 1
classes/class_characterbody2d.rst

@@ -208,7 +208,7 @@ Maximum angle (in radians) where a slope is still considered a floor (or a ceili
 
 Sets a snapping distance. When set to a value different from ``0.0``, the body is kept attached to slopes when calling :ref:`move_and_slide<class_CharacterBody2D_method_move_and_slide>`. The snapping vector is determined by the given distance along the opposite direction of the :ref:`up_direction<class_CharacterBody2D_property_up_direction>`.
 
-As long as the snapping vector is in contact with the ground and the body moves against `up_direction`, the body will remain attached to the surface. Snapping is not applied if the body moves along `up_direction`, so it will be able to detach from the ground when jumping.
+As long as the snapping vector is in contact with the ground and the body moves against :ref:`up_direction<class_CharacterBody2D_property_up_direction>`, the body will remain attached to the surface. Snapping is not applied if the body moves along :ref:`up_direction<class_CharacterBody2D_property_up_direction>`, so it will be able to detach from the ground when jumping.
 
 ----
 

+ 1 - 1
classes/class_characterbody3d.rst

@@ -210,7 +210,7 @@ Maximum angle (in radians) where a slope is still considered a floor (or a ceili
 
 Sets a snapping distance. When set to a value different from ``0.0``, the body is kept attached to slopes when calling :ref:`move_and_slide<class_CharacterBody3D_method_move_and_slide>`. The snapping vector is determined by the given distance along the opposite direction of the :ref:`up_direction<class_CharacterBody3D_property_up_direction>`.
 
-As long as the snapping vector is in contact with the ground and the body moves against `up_direction`, the body will remain attached to the surface. Snapping is not applied if the body moves along `up_direction`, so it will be able to detach from the ground when jumping.
+As long as the snapping vector is in contact with the ground and the body moves against :ref:`up_direction<class_CharacterBody3D_property_up_direction>`, the body will remain attached to the surface. Snapping is not applied if the body moves along :ref:`up_direction<class_CharacterBody3D_property_up_direction>`, so it will be able to detach from the ground when jumping.
 
 ----
 

+ 1 - 1
classes/class_checkbox.rst

@@ -17,7 +17,7 @@ Binary choice user interface widget. See also :ref:`CheckButton<class_CheckButto
 Description
 -----------
 
-A checkbox allows the user to make a binary choice (choosing only one of two possible options). It's similar to :ref:`CheckButton<class_CheckButton>` in functionality, but it has a different appearance. To follow established UX patterns, it's recommended to use CheckBox when toggling it has **no** immediate effect on something. For instance, it should be used when toggling it will only do something once a confirmation button is pressed.
+A checkbox allows the user to make a binary choice (choosing only one of two possible options). It's similar to :ref:`CheckButton<class_CheckButton>` in functionality, but it has a different appearance. To follow established UX patterns, it's recommended to use CheckBox when toggling it has **no** immediate effect on something. For example, it could be used when toggling it will only do something once a confirmation button is pressed.
 
 See also :ref:`BaseButton<class_BaseButton>` which contains common properties and methods associated with this node.
 

+ 1 - 1
classes/class_checkbutton.rst

@@ -17,7 +17,7 @@ Checkable button. See also :ref:`CheckBox<class_CheckBox>`.
 Description
 -----------
 
-CheckButton is a toggle button displayed as a check field. It's similar to :ref:`CheckBox<class_CheckBox>` in functionality, but it has a different appearance. To follow established UX patterns, it's recommended to use CheckButton when toggling it has an **immediate** effect on something. For instance, it should be used if toggling it enables/disables a setting without requiring the user to press a confirmation button.
+CheckButton is a toggle button displayed as a check field. It's similar to :ref:`CheckBox<class_CheckBox>` in functionality, but it has a different appearance. To follow established UX patterns, it's recommended to use CheckButton when toggling it has an **immediate** effect on something. For example, it could be used if toggling it enables/disables a setting without requiring the user to press a confirmation button.
 
 See also :ref:`BaseButton<class_BaseButton>` which contains common properties and methods associated with this node.
 

+ 1 - 1
classes/class_classdb.rst

@@ -77,7 +77,7 @@ Method Descriptions
 
 - :ref:`bool<class_bool>` **can_instantiate** **(** :ref:`StringName<class_StringName>` class **)** |const|
 
-Returns ``true`` if you can instance objects from the specified ``class``, ``false`` in other case.
+Returns ``true`` if objects can be instantiated from the specified ``class``, otherwise returns ``false``.
 
 ----
 

+ 4 - 4
classes/class_codeedit.rst

@@ -17,7 +17,7 @@ Multiline text control intended for editing code.
 Description
 -----------
 
-CodeEdit is a specialised :ref:`TextEdit<class_TextEdit>` designed for editing plain text code files. It contains a bunch of features commonly found in code editors such as line numbers, line folding, code completion, indent management and string / comment management.
+CodeEdit is a specialized :ref:`TextEdit<class_TextEdit>` designed for editing plain text code files. It contains a bunch of features commonly found in code editors such as line numbers, line folding, code completion, indent management and string / comment management.
 
 \ **Note:** By default ``CodeEdit`` always use left-to-right text direction to correctly display source code.
 
@@ -235,7 +235,7 @@ Theme Properties
 +-----------------------------------+----------------------------------------------------------------------------------------------------+-------------------------------------+
 | :ref:`Color<class_Color>`         | :ref:`font_readonly_color<class_CodeEdit_theme_color_font_readonly_color>`                         | ``Color(0.875, 0.875, 0.875, 0.5)`` |
 +-----------------------------------+----------------------------------------------------------------------------------------------------+-------------------------------------+
-| :ref:`Color<class_Color>`         | :ref:`font_selected_color<class_CodeEdit_theme_color_font_selected_color>`                         | ``Color(0, 0, 0, 1)``               |
+| :ref:`Color<class_Color>`         | :ref:`font_selected_color<class_CodeEdit_theme_color_font_selected_color>`                         | ``Color(0, 0, 0, 0)``               |
 +-----------------------------------+----------------------------------------------------------------------------------------------------+-------------------------------------+
 | :ref:`Color<class_Color>`         | :ref:`line_length_guideline_color<class_CodeEdit_theme_color_line_length_guideline_color>`         | ``Color(0.3, 0.5, 0.8, 0.1)``       |
 +-----------------------------------+----------------------------------------------------------------------------------------------------+-------------------------------------+
@@ -1426,10 +1426,10 @@ Sets the font :ref:`Color<class_Color>` when :ref:`TextEdit.editable<class_TextE
 - :ref:`Color<class_Color>` **font_selected_color**
 
 +-----------+-----------------------+
-| *Default* | ``Color(0, 0, 0, 1)`` |
+| *Default* | ``Color(0, 0, 0, 0)`` |
 +-----------+-----------------------+
 
-Sets the :ref:`Color<class_Color>` of the selected text. :ref:`TextEdit.override_selected_font_color<class_TextEdit_property_override_selected_font_color>` has to be enabled.
+Sets the :ref:`Color<class_Color>` of the selected text. If equal to ``Color(0, 0, 0, 0)``, it will be ignored.
 
 ----
 

+ 12 - 32
classes/class_color.rst

@@ -90,8 +90,6 @@ Methods
 +-----------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`Color<class_Color>`   | :ref:`darkened<class_Color_method_darkened>` **(** :ref:`float<class_float>` amount **)** |const|                                                                                                  |
 +-----------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`       | :ref:`find_named_color<class_Color_method_find_named_color>` **(** :ref:`String<class_String>` name **)** |static|                                                                                 |
-+-----------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`Color<class_Color>`   | :ref:`from_hsv<class_Color_method_from_hsv>` **(** :ref:`float<class_float>` h, :ref:`float<class_float>` s, :ref:`float<class_float>` v, :ref:`float<class_float>` alpha=1.0 **)** |static|       |
 +-----------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`Color<class_Color>`   | :ref:`from_ok_hsl<class_Color_method_from_ok_hsl>` **(** :ref:`float<class_float>` h, :ref:`float<class_float>` s, :ref:`float<class_float>` l, :ref:`float<class_float>` alpha=1.0 **)** |static| |
@@ -102,12 +100,6 @@ Methods
 +-----------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`float<class_float>`   | :ref:`get_luminance<class_Color_method_get_luminance>` **(** **)** |const|                                                                                                                         |
 +-----------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Color<class_Color>`   | :ref:`get_named_color<class_Color_method_get_named_color>` **(** :ref:`int<class_int>` idx **)** |static|                                                                                          |
-+-----------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`       | :ref:`get_named_color_count<class_Color_method_get_named_color_count>` **(** **)** |static|                                                                                                        |
-+-----------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_String>` | :ref:`get_named_color_name<class_Color_method_get_named_color_name>` **(** :ref:`int<class_int>` idx **)** |static|                                                                                |
-+-----------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`Color<class_Color>`   | :ref:`hex<class_Color_method_hex>` **(** :ref:`int<class_int>` hex **)** |static|                                                                                                                  |
 +-----------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`Color<class_Color>`   | :ref:`hex64<class_Color_method_hex64>` **(** :ref:`int<class_int>` hex **)** |static|                                                                                                              |
@@ -1035,12 +1027,6 @@ Returns a new color resulting from making this color darker by the specified per
 
 
 
-----
-
-.. _class_Color_method_find_named_color:
-
-- :ref:`int<class_int>` **find_named_color** **(** :ref:`String<class_String>` name **)** |static|
-
 ----
 
 .. _class_Color_method_from_hsv:
@@ -1089,12 +1075,16 @@ Constructs a color from an `OK HSL profile <https://bottosson.github.io/posts/co
 
 - :ref:`Color<class_Color>` **from_rgbe9995** **(** :ref:`int<class_int>` rgbe **)** |static|
 
+Encodes a ``Color`` from a RGBE9995 format integer. See :ref:`Image.FORMAT_RGBE9995<class_Image_constant_FORMAT_RGBE9995>`.
+
 ----
 
 .. _class_Color_method_from_string:
 
 - :ref:`Color<class_Color>` **from_string** **(** :ref:`String<class_String>` str, :ref:`Color<class_Color>` default **)** |static|
 
+Creates a ``Color`` from string, which can be either a HTML color code or a named color. Fallbacks to ``default`` if the string does not denote any valid color.
+
 ----
 
 .. _class_Color_method_get_luminance:
@@ -1105,31 +1095,19 @@ Returns the luminance of the color in the ``[0.0, 1.0]`` range.
 
 This is useful when determining light or dark color. Colors with a luminance smaller than 0.5 can be generally considered dark.
 
-\ **Note:** :ref:`get_luminance<class_Color_method_get_luminance>` relies on the colour being in the linear color space to return an accurate relative luminance value. If the color is in the sRGB color space, use :ref:`srgb_to_linear<class_Color_method_srgb_to_linear>` to convert it to the linear color space first.
-
-----
-
-.. _class_Color_method_get_named_color:
-
-- :ref:`Color<class_Color>` **get_named_color** **(** :ref:`int<class_int>` idx **)** |static|
-
-----
-
-.. _class_Color_method_get_named_color_count:
-
-- :ref:`int<class_int>` **get_named_color_count** **(** **)** |static|
+\ **Note:** :ref:`get_luminance<class_Color_method_get_luminance>` relies on the color being in the linear color space to return an accurate relative luminance value. If the color is in the sRGB color space, use :ref:`srgb_to_linear<class_Color_method_srgb_to_linear>` to convert it to the linear color space first.
 
 ----
 
-.. _class_Color_method_get_named_color_name:
+.. _class_Color_method_hex:
 
-- :ref:`String<class_String>` **get_named_color_name** **(** :ref:`int<class_int>` idx **)** |static|
+- :ref:`Color<class_Color>` **hex** **(** :ref:`int<class_int>` hex **)** |static|
 
-----
+Returns the ``Color`` associated with the provided integer number, with 8 bits per channel in ARGB order. The integer should be 32-bit. Best used with hexadecimal notation.
 
-.. _class_Color_method_hex:
+::
 
-- :ref:`Color<class_Color>` **hex** **(** :ref:`int<class_int>` hex **)** |static|
+    modulate = Color.hex(0xffff0000) # red
 
 ----
 
@@ -1137,6 +1115,8 @@ This is useful when determining light or dark color. Colors with a luminance sma
 
 - :ref:`Color<class_Color>` **hex64** **(** :ref:`int<class_int>` hex **)** |static|
 
+Same as :ref:`hex<class_Color_method_hex>`, but takes 64-bit integer and the color uses 16 bits per channel.
+
 ----
 
 .. _class_Color_method_html:

+ 119 - 27
classes/class_colorpicker.rst

@@ -29,23 +29,31 @@ Tutorials
 Properties
 ----------
 
-+----------------------------------------------------------+--------------------------------------------------------------------+--------------------------------------------------------------------------------+
-| :ref:`Color<class_Color>`                                | :ref:`color<class_ColorPicker_property_color>`                     | ``Color(1, 1, 1, 1)``                                                          |
-+----------------------------------------------------------+--------------------------------------------------------------------+--------------------------------------------------------------------------------+
-| :ref:`ColorModeType<enum_ColorPicker_ColorModeType>`     | :ref:`color_mode<class_ColorPicker_property_color_mode>`           | ``0``                                                                          |
-+----------------------------------------------------------+--------------------------------------------------------------------+--------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                                  | :ref:`deferred_mode<class_ColorPicker_property_deferred_mode>`     | ``false``                                                                      |
-+----------------------------------------------------------+--------------------------------------------------------------------+--------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                                  | :ref:`edit_alpha<class_ColorPicker_property_edit_alpha>`           | ``true``                                                                       |
-+----------------------------------------------------------+--------------------------------------------------------------------+--------------------------------------------------------------------------------+
-| :ref:`PickerShapeType<enum_ColorPicker_PickerShapeType>` | :ref:`picker_shape<class_ColorPicker_property_picker_shape>`       | ``0``                                                                          |
-+----------------------------------------------------------+--------------------------------------------------------------------+--------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                                  | :ref:`presets_enabled<class_ColorPicker_property_presets_enabled>` | ``true``                                                                       |
-+----------------------------------------------------------+--------------------------------------------------------------------+--------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                                  | :ref:`presets_visible<class_ColorPicker_property_presets_visible>` | ``true``                                                                       |
-+----------------------------------------------------------+--------------------------------------------------------------------+--------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                                  | vertical                                                           | ``true`` (overrides :ref:`BoxContainer<class_BoxContainer_property_vertical>`) |
-+----------------------------------------------------------+--------------------------------------------------------------------+--------------------------------------------------------------------------------+
++----------------------------------------------------------+----------------------------------------------------------------------------+--------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                                  | :ref:`can_add_swatches<class_ColorPicker_property_can_add_swatches>`       | ``true``                                                                       |
++----------------------------------------------------------+----------------------------------------------------------------------------+--------------------------------------------------------------------------------+
+| :ref:`Color<class_Color>`                                | :ref:`color<class_ColorPicker_property_color>`                             | ``Color(1, 1, 1, 1)``                                                          |
++----------------------------------------------------------+----------------------------------------------------------------------------+--------------------------------------------------------------------------------+
+| :ref:`ColorModeType<enum_ColorPicker_ColorModeType>`     | :ref:`color_mode<class_ColorPicker_property_color_mode>`                   | ``0``                                                                          |
++----------------------------------------------------------+----------------------------------------------------------------------------+--------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                                  | :ref:`color_modes_visible<class_ColorPicker_property_color_modes_visible>` | ``true``                                                                       |
++----------------------------------------------------------+----------------------------------------------------------------------------+--------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                                  | :ref:`deferred_mode<class_ColorPicker_property_deferred_mode>`             | ``false``                                                                      |
++----------------------------------------------------------+----------------------------------------------------------------------------+--------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                                  | :ref:`edit_alpha<class_ColorPicker_property_edit_alpha>`                   | ``true``                                                                       |
++----------------------------------------------------------+----------------------------------------------------------------------------+--------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                                  | :ref:`hex_visible<class_ColorPicker_property_hex_visible>`                 | ``true``                                                                       |
++----------------------------------------------------------+----------------------------------------------------------------------------+--------------------------------------------------------------------------------+
+| :ref:`PickerShapeType<enum_ColorPicker_PickerShapeType>` | :ref:`picker_shape<class_ColorPicker_property_picker_shape>`               | ``0``                                                                          |
++----------------------------------------------------------+----------------------------------------------------------------------------+--------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                                  | :ref:`presets_visible<class_ColorPicker_property_presets_visible>`         | ``true``                                                                       |
++----------------------------------------------------------+----------------------------------------------------------------------------+--------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                                  | :ref:`sampler_visible<class_ColorPicker_property_sampler_visible>`         | ``true``                                                                       |
++----------------------------------------------------------+----------------------------------------------------------------------------+--------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                                  | :ref:`sliders_visible<class_ColorPicker_property_sliders_visible>`         | ``true``                                                                       |
++----------------------------------------------------------+----------------------------------------------------------------------------+--------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                                  | vertical                                                                   | ``true`` (overrides :ref:`BoxContainer<class_BoxContainer_property_vertical>`) |
++----------------------------------------------------------+----------------------------------------------------------------------------+--------------------------------------------------------------------------------+
 
 Methods
 -------
@@ -84,6 +92,8 @@ Theme Properties
 +-----------------------------------+--------------------------------------------------------------------------------+---------+
 | :ref:`Texture2D<class_Texture2D>` | :ref:`color_hue<class_ColorPicker_theme_icon_color_hue>`                       |         |
 +-----------------------------------+--------------------------------------------------------------------------------+---------+
+| :ref:`Texture2D<class_Texture2D>` | :ref:`color_okhsl_hue<class_ColorPicker_theme_icon_color_okhsl_hue>`           |         |
++-----------------------------------+--------------------------------------------------------------------------------+---------+
 | :ref:`Texture2D<class_Texture2D>` | :ref:`expanded_arrow<class_ColorPicker_theme_icon_expanded_arrow>`             |         |
 +-----------------------------------+--------------------------------------------------------------------------------+---------+
 | :ref:`Texture2D<class_Texture2D>` | :ref:`folded_arrow<class_ColorPicker_theme_icon_folded_arrow>`                 |         |
@@ -167,6 +177,8 @@ OKHSL is a new color space similar to HSL but that better match perception by le
 
 .. _class_ColorPicker_constant_SHAPE_OKHSL_CIRCLE:
 
+.. _class_ColorPicker_constant_SHAPE_NONE:
+
 enum **PickerShapeType**:
 
 - **SHAPE_HSV_RECTANGLE** = **0** --- HSV Color Model rectangle color space.
@@ -177,9 +189,27 @@ enum **PickerShapeType**:
 
 - **SHAPE_OKHSL_CIRCLE** = **3** --- HSL OK Color Model circle color space.
 
+- **SHAPE_NONE** = **4** --- The color space shape and the shape select button are hidden. Can't be selected from the shapes popup.
+
 Property Descriptions
 ---------------------
 
+.. _class_ColorPicker_property_can_add_swatches:
+
+- :ref:`bool<class_bool>` **can_add_swatches**
+
++-----------+-----------------------------+
+| *Default* | ``true``                    |
++-----------+-----------------------------+
+| *Setter*  | set_can_add_swatches(value) |
++-----------+-----------------------------+
+| *Getter*  | are_swatches_enabled()      |
++-----------+-----------------------------+
+
+If ``true``, it's possible to add presets under Swatches. If ``false``, the button to add presets is disabled.
+
+----
+
 .. _class_ColorPicker_property_color:
 
 - :ref:`Color<class_Color>` **color**
@@ -212,6 +242,22 @@ The currently selected color mode. See :ref:`ColorModeType<enum_ColorPicker_Colo
 
 ----
 
+.. _class_ColorPicker_property_color_modes_visible:
+
+- :ref:`bool<class_bool>` **color_modes_visible**
+
++-----------+--------------------------+
+| *Default* | ``true``                 |
++-----------+--------------------------+
+| *Setter*  | set_modes_visible(value) |
++-----------+--------------------------+
+| *Getter*  | are_modes_visible()      |
++-----------+--------------------------+
+
+If ``true``, the color mode buttons are visible.
+
+----
+
 .. _class_ColorPicker_property_deferred_mode:
 
 - :ref:`bool<class_bool>` **deferred_mode**
@@ -244,6 +290,22 @@ If ``true``, shows an alpha channel slider (opacity).
 
 ----
 
+.. _class_ColorPicker_property_hex_visible:
+
+- :ref:`bool<class_bool>` **hex_visible**
+
++-----------+------------------------+
+| *Default* | ``true``               |
++-----------+------------------------+
+| *Setter*  | set_hex_visible(value) |
++-----------+------------------------+
+| *Getter*  | is_hex_visible()       |
++-----------+------------------------+
+
+If ``true``, the hex color code input field is visible.
+
+----
+
 .. _class_ColorPicker_property_picker_shape:
 
 - :ref:`PickerShapeType<enum_ColorPicker_PickerShapeType>` **picker_shape**
@@ -260,35 +322,51 @@ The shape of the color space view. See :ref:`PickerShapeType<enum_ColorPicker_Pi
 
 ----
 
-.. _class_ColorPicker_property_presets_enabled:
+.. _class_ColorPicker_property_presets_visible:
+
+- :ref:`bool<class_bool>` **presets_visible**
+
++-----------+----------------------------+
+| *Default* | ``true``                   |
++-----------+----------------------------+
+| *Setter*  | set_presets_visible(value) |
++-----------+----------------------------+
+| *Getter*  | are_presets_visible()      |
++-----------+----------------------------+
+
+If ``true``, the Swatches and Recent Colors presets are visible.
+
+----
+
+.. _class_ColorPicker_property_sampler_visible:
 
-- :ref:`bool<class_bool>` **presets_enabled**
+- :ref:`bool<class_bool>` **sampler_visible**
 
 +-----------+----------------------------+
 | *Default* | ``true``                   |
 +-----------+----------------------------+
-| *Setter*  | set_presets_enabled(value) |
+| *Setter*  | set_sampler_visible(value) |
 +-----------+----------------------------+
-| *Getter*  | are_presets_enabled()      |
+| *Getter*  | is_sampler_visible()       |
 +-----------+----------------------------+
 
-If ``true``, the "add preset" button is enabled.
+If ``true``, the color sampler and color preview are visible.
 
 ----
 
-.. _class_ColorPicker_property_presets_visible:
+.. _class_ColorPicker_property_sliders_visible:
 
-- :ref:`bool<class_bool>` **presets_visible**
+- :ref:`bool<class_bool>` **sliders_visible**
 
 +-----------+----------------------------+
 | *Default* | ``true``                   |
 +-----------+----------------------------+
-| *Setter*  | set_presets_visible(value) |
+| *Setter*  | set_sliders_visible(value) |
 +-----------+----------------------------+
-| *Getter*  | are_presets_visible()      |
+| *Getter*  | are_sliders_visible()      |
 +-----------+----------------------------+
 
-If ``true``, saved color presets are visible.
+If ``true``, the color sliders are visible.
 
 Method Descriptions
 -------------------
@@ -366,6 +444,8 @@ The width of the hue selection slider.
 | *Default* | ``10`` |
 +-----------+--------+
 
+The minimum width of the color labels next to sliders.
+
 ----
 
 .. _class_ColorPicker_theme_constant_margin:
@@ -428,6 +508,14 @@ Custom texture for the hue selection slider on the right.
 
 ----
 
+.. _class_ColorPicker_theme_icon_color_okhsl_hue:
+
+- :ref:`Texture2D<class_Texture2D>` **color_okhsl_hue**
+
+Custom texture for the H slider in the OKHSL color mode.
+
+----
+
 .. _class_ColorPicker_theme_icon_expanded_arrow:
 
 - :ref:`Texture2D<class_Texture2D>` **expanded_arrow**
@@ -456,12 +544,16 @@ The indicator used to signalize that the color value is outside the 0-1 range.
 
 - :ref:`Texture2D<class_Texture2D>` **picker_cursor**
 
+The image displayed over the color box/circle (depending on the :ref:`picker_shape<class_ColorPicker_property_picker_shape>`), marking the currently selected color.
+
 ----
 
 .. _class_ColorPicker_theme_icon_sample_bg:
 
 - :ref:`Texture2D<class_Texture2D>` **sample_bg**
 
+Background panel for the color preview box (visible when the color is translucent).
+
 ----
 
 .. _class_ColorPicker_theme_icon_screen_picker:

+ 7 - 7
classes/class_configfile.rst

@@ -240,7 +240,7 @@ Returns ``true`` if the specified section-key pair exists.
 
 Loads the config file specified as a parameter. The file's contents are parsed and loaded in the ``ConfigFile`` object which the method was called on.
 
-Returns one of the :ref:`Error<enum_@GlobalScope_Error>` code constants (``OK`` on success).
+Returns one of the :ref:`Error<enum_@GlobalScope_Error>` code constants (:ref:`@GlobalScope.OK<class_@GlobalScope_constant_OK>` on success).
 
 ----
 
@@ -250,7 +250,7 @@ Returns one of the :ref:`Error<enum_@GlobalScope_Error>` code constants (``OK``
 
 Loads the encrypted config file specified as a parameter, using the provided ``key`` to decrypt it. The file's contents are parsed and loaded in the ``ConfigFile`` object which the method was called on.
 
-Returns one of the :ref:`Error<enum_@GlobalScope_Error>` code constants (``OK`` on success).
+Returns one of the :ref:`Error<enum_@GlobalScope_Error>` code constants (:ref:`@GlobalScope.OK<class_@GlobalScope_constant_OK>` on success).
 
 ----
 
@@ -260,7 +260,7 @@ Returns one of the :ref:`Error<enum_@GlobalScope_Error>` code constants (``OK``
 
 Loads the encrypted config file specified as a parameter, using the provided ``password`` to decrypt it. The file's contents are parsed and loaded in the ``ConfigFile`` object which the method was called on.
 
-Returns one of the :ref:`Error<enum_@GlobalScope_Error>` code constants (``OK`` on success).
+Returns one of the :ref:`Error<enum_@GlobalScope_Error>` code constants (:ref:`@GlobalScope.OK<class_@GlobalScope_constant_OK>` on success).
 
 ----
 
@@ -270,7 +270,7 @@ Returns one of the :ref:`Error<enum_@GlobalScope_Error>` code constants (``OK``
 
 Parses the passed string as the contents of a config file. The string is parsed and loaded in the ConfigFile object which the method was called on.
 
-Returns one of the :ref:`Error<enum_@GlobalScope_Error>` code constants (``OK`` on success).
+Returns one of the :ref:`Error<enum_@GlobalScope_Error>` code constants (:ref:`@GlobalScope.OK<class_@GlobalScope_constant_OK>` on success).
 
 ----
 
@@ -280,7 +280,7 @@ Returns one of the :ref:`Error<enum_@GlobalScope_Error>` code constants (``OK``
 
 Saves the contents of the ``ConfigFile`` object to the file specified as a parameter. The output file uses an INI-style structure.
 
-Returns one of the :ref:`Error<enum_@GlobalScope_Error>` code constants (``OK`` on success).
+Returns one of the :ref:`Error<enum_@GlobalScope_Error>` code constants (:ref:`@GlobalScope.OK<class_@GlobalScope_constant_OK>` on success).
 
 ----
 
@@ -290,7 +290,7 @@ Returns one of the :ref:`Error<enum_@GlobalScope_Error>` code constants (``OK``
 
 Saves the contents of the ``ConfigFile`` object to the AES-256 encrypted file specified as a parameter, using the provided ``key`` to encrypt it. The output file uses an INI-style structure.
 
-Returns one of the :ref:`Error<enum_@GlobalScope_Error>` code constants (``OK`` on success).
+Returns one of the :ref:`Error<enum_@GlobalScope_Error>` code constants (:ref:`@GlobalScope.OK<class_@GlobalScope_constant_OK>` on success).
 
 ----
 
@@ -300,7 +300,7 @@ Returns one of the :ref:`Error<enum_@GlobalScope_Error>` code constants (``OK``
 
 Saves the contents of the ``ConfigFile`` object to the AES-256 encrypted file specified as a parameter, using the provided ``password`` to encrypt it. The output file uses an INI-style structure.
 
-Returns one of the :ref:`Error<enum_@GlobalScope_Error>` code constants (``OK`` on success).
+Returns one of the :ref:`Error<enum_@GlobalScope_Error>` code constants (:ref:`@GlobalScope.OK<class_@GlobalScope_constant_OK>` on success).
 
 ----
 

+ 2 - 2
classes/class_confirmationdialog.rst

@@ -28,11 +28,11 @@ To get cancel action, you can use:
 
  .. code-tab:: gdscript
 
-    get_cancel().connect("pressed", self, "cancelled")
+    get_cancel_button().pressed.connect(self.cancelled)
 
  .. code-tab:: csharp
 
-    GetCancel().Connect("pressed", this, nameof(Cancelled));
+    GetCancelButton().Pressed += Cancelled;
 
 
 

+ 2 - 2
classes/class_container.rst

@@ -83,7 +83,7 @@ Method Descriptions
 
 - :ref:`PackedInt32Array<class_PackedInt32Array>` **_get_allowed_size_flags_horizontal** **(** **)** |virtual| |const|
 
-Implement to return a list of allowed horizontal :ref:`SizeFlags<enum_Control_SizeFlags>` for child nodes. This doesn't technically prevent the usages of any other size flags, if your implementation requires that. This only limits the options available to the user in the inspector dock.
+Implement to return a list of allowed horizontal :ref:`SizeFlags<enum_Control_SizeFlags>` for child nodes. This doesn't technically prevent the usages of any other size flags, if your implementation requires that. This only limits the options available to the user in the Inspector dock.
 
 \ **Note:** Having no size flags is equal to having :ref:`Control.SIZE_SHRINK_BEGIN<class_Control_constant_SIZE_SHRINK_BEGIN>`. As such, this value is always implicitly allowed.
 
@@ -93,7 +93,7 @@ Implement to return a list of allowed horizontal :ref:`SizeFlags<enum_Control_Si
 
 - :ref:`PackedInt32Array<class_PackedInt32Array>` **_get_allowed_size_flags_vertical** **(** **)** |virtual| |const|
 
-Implement to return a list of allowed vertical :ref:`SizeFlags<enum_Control_SizeFlags>` for child nodes. This doesn't technically prevent the usages of any other size flags, if your implementation requires that. This only limits the options available to the user in the inspector dock.
+Implement to return a list of allowed vertical :ref:`SizeFlags<enum_Control_SizeFlags>` for child nodes. This doesn't technically prevent the usages of any other size flags, if your implementation requires that. This only limits the options available to the user in the Inspector dock.
 
 \ **Note:** Having no size flags is equal to having :ref:`Control.SIZE_SHRINK_BEGIN<class_Control_constant_SIZE_SHRINK_BEGIN>`. As such, this value is always implicitly allowed.
 

+ 110 - 94
classes/class_control.rst

@@ -35,7 +35,7 @@ Only one ``Control`` node can be in focus. Only the node in focus will receive e
 
 Sets :ref:`mouse_filter<class_Control_property_mouse_filter>` to :ref:`MOUSE_FILTER_IGNORE<class_Control_constant_MOUSE_FILTER_IGNORE>` to tell a ``Control`` node to ignore mouse or touch events. You'll need it if you place an icon on top of a button.
 
-\ :ref:`Theme<class_Theme>` resources change the Control's appearance. If you change the :ref:`Theme<class_Theme>` on a ``Control`` node, it affects all of its children. To override some of the theme's parameters, call one of the ``add_theme_*_override`` methods, like :ref:`add_theme_font_override<class_Control_method_add_theme_font_override>`. You can override the theme with the inspector.
+\ :ref:`Theme<class_Theme>` resources change the Control's appearance. If you change the :ref:`Theme<class_Theme>` on a ``Control`` node, it affects all of its children. To override some of the theme's parameters, call one of the ``add_theme_*_override`` methods, like :ref:`add_theme_font_override<class_Control_method_add_theme_font_override>`. You can override the theme with the Inspector.
 
 \ **Note:** Theme items are *not* :ref:`Object<class_Object>` properties. This means you can't access their values using :ref:`Object.get<class_Object_method_get>` and :ref:`Object.set<class_Object_method_set>`. Instead, use the ``get_theme_*`` and ``add_theme_*_override`` methods provided by this class.
 
@@ -53,79 +53,81 @@ Tutorials
 Properties
 ----------
 
-+------------------------------------------------------+----------------------------------------------------------------------------------------------+--------------------+
-| :ref:`float<class_float>`                            | :ref:`anchor_bottom<class_Control_property_anchor_bottom>`                                   | ``0.0``            |
-+------------------------------------------------------+----------------------------------------------------------------------------------------------+--------------------+
-| :ref:`float<class_float>`                            | :ref:`anchor_left<class_Control_property_anchor_left>`                                       | ``0.0``            |
-+------------------------------------------------------+----------------------------------------------------------------------------------------------+--------------------+
-| :ref:`float<class_float>`                            | :ref:`anchor_right<class_Control_property_anchor_right>`                                     | ``0.0``            |
-+------------------------------------------------------+----------------------------------------------------------------------------------------------+--------------------+
-| :ref:`float<class_float>`                            | :ref:`anchor_top<class_Control_property_anchor_top>`                                         | ``0.0``            |
-+------------------------------------------------------+----------------------------------------------------------------------------------------------+--------------------+
-| :ref:`bool<class_bool>`                              | :ref:`auto_translate<class_Control_property_auto_translate>`                                 | ``true``           |
-+------------------------------------------------------+----------------------------------------------------------------------------------------------+--------------------+
-| :ref:`bool<class_bool>`                              | :ref:`clip_contents<class_Control_property_clip_contents>`                                   | ``false``          |
-+------------------------------------------------------+----------------------------------------------------------------------------------------------+--------------------+
-| :ref:`Vector2i<class_Vector2i>`                      | :ref:`custom_minimum_size<class_Control_property_custom_minimum_size>`                       | ``Vector2i(0, 0)`` |
-+------------------------------------------------------+----------------------------------------------------------------------------------------------+--------------------+
-| :ref:`FocusMode<enum_Control_FocusMode>`             | :ref:`focus_mode<class_Control_property_focus_mode>`                                         | ``0``              |
-+------------------------------------------------------+----------------------------------------------------------------------------------------------+--------------------+
-| :ref:`NodePath<class_NodePath>`                      | :ref:`focus_neighbor_bottom<class_Control_property_focus_neighbor_bottom>`                   | ``NodePath("")``   |
-+------------------------------------------------------+----------------------------------------------------------------------------------------------+--------------------+
-| :ref:`NodePath<class_NodePath>`                      | :ref:`focus_neighbor_left<class_Control_property_focus_neighbor_left>`                       | ``NodePath("")``   |
-+------------------------------------------------------+----------------------------------------------------------------------------------------------+--------------------+
-| :ref:`NodePath<class_NodePath>`                      | :ref:`focus_neighbor_right<class_Control_property_focus_neighbor_right>`                     | ``NodePath("")``   |
-+------------------------------------------------------+----------------------------------------------------------------------------------------------+--------------------+
-| :ref:`NodePath<class_NodePath>`                      | :ref:`focus_neighbor_top<class_Control_property_focus_neighbor_top>`                         | ``NodePath("")``   |
-+------------------------------------------------------+----------------------------------------------------------------------------------------------+--------------------+
-| :ref:`NodePath<class_NodePath>`                      | :ref:`focus_next<class_Control_property_focus_next>`                                         | ``NodePath("")``   |
-+------------------------------------------------------+----------------------------------------------------------------------------------------------+--------------------+
-| :ref:`NodePath<class_NodePath>`                      | :ref:`focus_previous<class_Control_property_focus_previous>`                                 | ``NodePath("")``   |
-+------------------------------------------------------+----------------------------------------------------------------------------------------------+--------------------+
-| :ref:`Vector2<class_Vector2>`                        | :ref:`global_position<class_Control_property_global_position>`                               |                    |
-+------------------------------------------------------+----------------------------------------------------------------------------------------------+--------------------+
-| :ref:`GrowDirection<enum_Control_GrowDirection>`     | :ref:`grow_horizontal<class_Control_property_grow_horizontal>`                               | ``1``              |
-+------------------------------------------------------+----------------------------------------------------------------------------------------------+--------------------+
-| :ref:`GrowDirection<enum_Control_GrowDirection>`     | :ref:`grow_vertical<class_Control_property_grow_vertical>`                                   | ``1``              |
-+------------------------------------------------------+----------------------------------------------------------------------------------------------+--------------------+
-| :ref:`LayoutDirection<enum_Control_LayoutDirection>` | :ref:`layout_direction<class_Control_property_layout_direction>`                             | ``0``              |
-+------------------------------------------------------+----------------------------------------------------------------------------------------------+--------------------+
-| :ref:`CursorShape<enum_Control_CursorShape>`         | :ref:`mouse_default_cursor_shape<class_Control_property_mouse_default_cursor_shape>`         | ``0``              |
-+------------------------------------------------------+----------------------------------------------------------------------------------------------+--------------------+
-| :ref:`MouseFilter<enum_Control_MouseFilter>`         | :ref:`mouse_filter<class_Control_property_mouse_filter>`                                     | ``0``              |
-+------------------------------------------------------+----------------------------------------------------------------------------------------------+--------------------+
-| :ref:`bool<class_bool>`                              | :ref:`mouse_force_pass_scroll_events<class_Control_property_mouse_force_pass_scroll_events>` | ``true``           |
-+------------------------------------------------------+----------------------------------------------------------------------------------------------+--------------------+
-| :ref:`float<class_float>`                            | :ref:`offset_bottom<class_Control_property_offset_bottom>`                                   | ``0.0``            |
-+------------------------------------------------------+----------------------------------------------------------------------------------------------+--------------------+
-| :ref:`float<class_float>`                            | :ref:`offset_left<class_Control_property_offset_left>`                                       | ``0.0``            |
-+------------------------------------------------------+----------------------------------------------------------------------------------------------+--------------------+
-| :ref:`float<class_float>`                            | :ref:`offset_right<class_Control_property_offset_right>`                                     | ``0.0``            |
-+------------------------------------------------------+----------------------------------------------------------------------------------------------+--------------------+
-| :ref:`float<class_float>`                            | :ref:`offset_top<class_Control_property_offset_top>`                                         | ``0.0``            |
-+------------------------------------------------------+----------------------------------------------------------------------------------------------+--------------------+
-| :ref:`Vector2<class_Vector2>`                        | :ref:`pivot_offset<class_Control_property_pivot_offset>`                                     | ``Vector2(0, 0)``  |
-+------------------------------------------------------+----------------------------------------------------------------------------------------------+--------------------+
-| :ref:`Vector2<class_Vector2>`                        | :ref:`position<class_Control_property_position>`                                             | ``Vector2(0, 0)``  |
-+------------------------------------------------------+----------------------------------------------------------------------------------------------+--------------------+
-| :ref:`float<class_float>`                            | :ref:`rotation<class_Control_property_rotation>`                                             | ``0.0``            |
-+------------------------------------------------------+----------------------------------------------------------------------------------------------+--------------------+
-| :ref:`Vector2<class_Vector2>`                        | :ref:`scale<class_Control_property_scale>`                                                   | ``Vector2(1, 1)``  |
-+------------------------------------------------------+----------------------------------------------------------------------------------------------+--------------------+
-| :ref:`Vector2<class_Vector2>`                        | :ref:`size<class_Control_property_size>`                                                     | ``Vector2(0, 0)``  |
-+------------------------------------------------------+----------------------------------------------------------------------------------------------+--------------------+
-| :ref:`int<class_int>`                                | :ref:`size_flags_horizontal<class_Control_property_size_flags_horizontal>`                   | ``1``              |
-+------------------------------------------------------+----------------------------------------------------------------------------------------------+--------------------+
-| :ref:`float<class_float>`                            | :ref:`size_flags_stretch_ratio<class_Control_property_size_flags_stretch_ratio>`             | ``1.0``            |
-+------------------------------------------------------+----------------------------------------------------------------------------------------------+--------------------+
-| :ref:`int<class_int>`                                | :ref:`size_flags_vertical<class_Control_property_size_flags_vertical>`                       | ``1``              |
-+------------------------------------------------------+----------------------------------------------------------------------------------------------+--------------------+
-| :ref:`Theme<class_Theme>`                            | :ref:`theme<class_Control_property_theme>`                                                   |                    |
-+------------------------------------------------------+----------------------------------------------------------------------------------------------+--------------------+
-| :ref:`StringName<class_StringName>`                  | :ref:`theme_type_variation<class_Control_property_theme_type_variation>`                     | ``&""``            |
-+------------------------------------------------------+----------------------------------------------------------------------------------------------+--------------------+
-| :ref:`String<class_String>`                          | :ref:`tooltip_text<class_Control_property_tooltip_text>`                                     | ``""``             |
-+------------------------------------------------------+----------------------------------------------------------------------------------------------+--------------------+
++------------------------------------------------------+----------------------------------------------------------------------------------------------+-------------------+
+| :ref:`float<class_float>`                            | :ref:`anchor_bottom<class_Control_property_anchor_bottom>`                                   | ``0.0``           |
++------------------------------------------------------+----------------------------------------------------------------------------------------------+-------------------+
+| :ref:`float<class_float>`                            | :ref:`anchor_left<class_Control_property_anchor_left>`                                       | ``0.0``           |
++------------------------------------------------------+----------------------------------------------------------------------------------------------+-------------------+
+| :ref:`float<class_float>`                            | :ref:`anchor_right<class_Control_property_anchor_right>`                                     | ``0.0``           |
++------------------------------------------------------+----------------------------------------------------------------------------------------------+-------------------+
+| :ref:`float<class_float>`                            | :ref:`anchor_top<class_Control_property_anchor_top>`                                         | ``0.0``           |
++------------------------------------------------------+----------------------------------------------------------------------------------------------+-------------------+
+| :ref:`bool<class_bool>`                              | :ref:`auto_translate<class_Control_property_auto_translate>`                                 | ``true``          |
++------------------------------------------------------+----------------------------------------------------------------------------------------------+-------------------+
+| :ref:`bool<class_bool>`                              | :ref:`clip_contents<class_Control_property_clip_contents>`                                   | ``false``         |
++------------------------------------------------------+----------------------------------------------------------------------------------------------+-------------------+
+| :ref:`Vector2<class_Vector2>`                        | :ref:`custom_minimum_size<class_Control_property_custom_minimum_size>`                       | ``Vector2(0, 0)`` |
++------------------------------------------------------+----------------------------------------------------------------------------------------------+-------------------+
+| :ref:`FocusMode<enum_Control_FocusMode>`             | :ref:`focus_mode<class_Control_property_focus_mode>`                                         | ``0``             |
++------------------------------------------------------+----------------------------------------------------------------------------------------------+-------------------+
+| :ref:`NodePath<class_NodePath>`                      | :ref:`focus_neighbor_bottom<class_Control_property_focus_neighbor_bottom>`                   | ``NodePath("")``  |
++------------------------------------------------------+----------------------------------------------------------------------------------------------+-------------------+
+| :ref:`NodePath<class_NodePath>`                      | :ref:`focus_neighbor_left<class_Control_property_focus_neighbor_left>`                       | ``NodePath("")``  |
++------------------------------------------------------+----------------------------------------------------------------------------------------------+-------------------+
+| :ref:`NodePath<class_NodePath>`                      | :ref:`focus_neighbor_right<class_Control_property_focus_neighbor_right>`                     | ``NodePath("")``  |
++------------------------------------------------------+----------------------------------------------------------------------------------------------+-------------------+
+| :ref:`NodePath<class_NodePath>`                      | :ref:`focus_neighbor_top<class_Control_property_focus_neighbor_top>`                         | ``NodePath("")``  |
++------------------------------------------------------+----------------------------------------------------------------------------------------------+-------------------+
+| :ref:`NodePath<class_NodePath>`                      | :ref:`focus_next<class_Control_property_focus_next>`                                         | ``NodePath("")``  |
++------------------------------------------------------+----------------------------------------------------------------------------------------------+-------------------+
+| :ref:`NodePath<class_NodePath>`                      | :ref:`focus_previous<class_Control_property_focus_previous>`                                 | ``NodePath("")``  |
++------------------------------------------------------+----------------------------------------------------------------------------------------------+-------------------+
+| :ref:`Vector2<class_Vector2>`                        | :ref:`global_position<class_Control_property_global_position>`                               |                   |
++------------------------------------------------------+----------------------------------------------------------------------------------------------+-------------------+
+| :ref:`GrowDirection<enum_Control_GrowDirection>`     | :ref:`grow_horizontal<class_Control_property_grow_horizontal>`                               | ``1``             |
++------------------------------------------------------+----------------------------------------------------------------------------------------------+-------------------+
+| :ref:`GrowDirection<enum_Control_GrowDirection>`     | :ref:`grow_vertical<class_Control_property_grow_vertical>`                                   | ``1``             |
++------------------------------------------------------+----------------------------------------------------------------------------------------------+-------------------+
+| :ref:`LayoutDirection<enum_Control_LayoutDirection>` | :ref:`layout_direction<class_Control_property_layout_direction>`                             | ``0``             |
++------------------------------------------------------+----------------------------------------------------------------------------------------------+-------------------+
+| :ref:`CursorShape<enum_Control_CursorShape>`         | :ref:`mouse_default_cursor_shape<class_Control_property_mouse_default_cursor_shape>`         | ``0``             |
++------------------------------------------------------+----------------------------------------------------------------------------------------------+-------------------+
+| :ref:`MouseFilter<enum_Control_MouseFilter>`         | :ref:`mouse_filter<class_Control_property_mouse_filter>`                                     | ``0``             |
++------------------------------------------------------+----------------------------------------------------------------------------------------------+-------------------+
+| :ref:`bool<class_bool>`                              | :ref:`mouse_force_pass_scroll_events<class_Control_property_mouse_force_pass_scroll_events>` | ``true``          |
++------------------------------------------------------+----------------------------------------------------------------------------------------------+-------------------+
+| :ref:`float<class_float>`                            | :ref:`offset_bottom<class_Control_property_offset_bottom>`                                   | ``0.0``           |
++------------------------------------------------------+----------------------------------------------------------------------------------------------+-------------------+
+| :ref:`float<class_float>`                            | :ref:`offset_left<class_Control_property_offset_left>`                                       | ``0.0``           |
++------------------------------------------------------+----------------------------------------------------------------------------------------------+-------------------+
+| :ref:`float<class_float>`                            | :ref:`offset_right<class_Control_property_offset_right>`                                     | ``0.0``           |
++------------------------------------------------------+----------------------------------------------------------------------------------------------+-------------------+
+| :ref:`float<class_float>`                            | :ref:`offset_top<class_Control_property_offset_top>`                                         | ``0.0``           |
++------------------------------------------------------+----------------------------------------------------------------------------------------------+-------------------+
+| :ref:`Vector2<class_Vector2>`                        | :ref:`pivot_offset<class_Control_property_pivot_offset>`                                     | ``Vector2(0, 0)`` |
++------------------------------------------------------+----------------------------------------------------------------------------------------------+-------------------+
+| :ref:`Vector2<class_Vector2>`                        | :ref:`position<class_Control_property_position>`                                             | ``Vector2(0, 0)`` |
++------------------------------------------------------+----------------------------------------------------------------------------------------------+-------------------+
+| :ref:`float<class_float>`                            | :ref:`rotation<class_Control_property_rotation>`                                             | ``0.0``           |
++------------------------------------------------------+----------------------------------------------------------------------------------------------+-------------------+
+| :ref:`Vector2<class_Vector2>`                        | :ref:`scale<class_Control_property_scale>`                                                   | ``Vector2(1, 1)`` |
++------------------------------------------------------+----------------------------------------------------------------------------------------------+-------------------+
+| :ref:`Node<class_Node>`                              | :ref:`shortcut_context<class_Control_property_shortcut_context>`                             |                   |
++------------------------------------------------------+----------------------------------------------------------------------------------------------+-------------------+
+| :ref:`Vector2<class_Vector2>`                        | :ref:`size<class_Control_property_size>`                                                     | ``Vector2(0, 0)`` |
++------------------------------------------------------+----------------------------------------------------------------------------------------------+-------------------+
+| :ref:`int<class_int>`                                | :ref:`size_flags_horizontal<class_Control_property_size_flags_horizontal>`                   | ``1``             |
++------------------------------------------------------+----------------------------------------------------------------------------------------------+-------------------+
+| :ref:`float<class_float>`                            | :ref:`size_flags_stretch_ratio<class_Control_property_size_flags_stretch_ratio>`             | ``1.0``           |
++------------------------------------------------------+----------------------------------------------------------------------------------------------+-------------------+
+| :ref:`int<class_int>`                                | :ref:`size_flags_vertical<class_Control_property_size_flags_vertical>`                       | ``1``             |
++------------------------------------------------------+----------------------------------------------------------------------------------------------+-------------------+
+| :ref:`Theme<class_Theme>`                            | :ref:`theme<class_Control_property_theme>`                                                   |                   |
++------------------------------------------------------+----------------------------------------------------------------------------------------------+-------------------+
+| :ref:`StringName<class_StringName>`                  | :ref:`theme_type_variation<class_Control_property_theme_type_variation>`                     | ``&""``           |
++------------------------------------------------------+----------------------------------------------------------------------------------------------+-------------------+
+| :ref:`String<class_String>`                          | :ref:`tooltip_text<class_Control_property_tooltip_text>`                                     | ``""``            |
++------------------------------------------------------+----------------------------------------------------------------------------------------------+-------------------+
 
 Methods
 -------
@@ -616,7 +618,7 @@ enum **MouseFilter**:
 
 - **MOUSE_FILTER_STOP** = **0** --- The control will receive mouse button input events through :ref:`_gui_input<class_Control_method__gui_input>` if clicked on. And the control will receive the :ref:`mouse_entered<class_Control_signal_mouse_entered>` and :ref:`mouse_exited<class_Control_signal_mouse_exited>` signals. These events are automatically marked as handled, and they will not propagate further to other controls. This also results in blocking signals in other controls.
 
-- **MOUSE_FILTER_PASS** = **1** --- The control will receive mouse button input events through :ref:`_gui_input<class_Control_method__gui_input>` if clicked on. And the control will receive the :ref:`mouse_entered<class_Control_signal_mouse_entered>` and :ref:`mouse_exited<class_Control_signal_mouse_exited>` signals. If this control does not handle the event, the parent control (if any) will be considered, and so on until there is no more parent control to potentially handle it. This also allows signals to fire in other controls. If no control handled it, the event will be passed to `_unhandled_input` for further processing.
+- **MOUSE_FILTER_PASS** = **1** --- The control will receive mouse button input events through :ref:`_gui_input<class_Control_method__gui_input>` if clicked on. And the control will receive the :ref:`mouse_entered<class_Control_signal_mouse_entered>` and :ref:`mouse_exited<class_Control_signal_mouse_exited>` signals. If this control does not handle the event, the parent control (if any) will be considered, and so on until there is no more parent control to potentially handle it. This also allows signals to fire in other controls. If no control handled it, the event will be passed to :ref:`Node._unhandled_input<class_Node_method__unhandled_input>` for further processing.
 
 - **MOUSE_FILTER_IGNORE** = **2** --- The control will not receive mouse button input events through :ref:`_gui_input<class_Control_method__gui_input>`. The control will also not receive the :ref:`mouse_entered<class_Control_signal_mouse_entered>` nor :ref:`mouse_exited<class_Control_signal_mouse_exited>` signals. This will not block other controls from receiving these events or firing the signals. Ignored events will not be handled automatically.
 
@@ -840,10 +842,10 @@ Enables whether rendering of :ref:`CanvasItem<class_CanvasItem>` based children
 
 .. _class_Control_property_custom_minimum_size:
 
-- :ref:`Vector2i<class_Vector2i>` **custom_minimum_size**
+- :ref:`Vector2<class_Vector2>` **custom_minimum_size**
 
 +-----------+--------------------------------+
-| *Default* | ``Vector2i(0, 0)``             |
+| *Default* | ``Vector2(0, 0)``              |
 +-----------+--------------------------------+
 | *Setter*  | set_custom_minimum_size(value) |
 +-----------+--------------------------------+
@@ -882,7 +884,7 @@ The focus access mode for the control (None, Click or All). Only one Control can
 | *Getter*  | get_focus_neighbor()      |
 +-----------+---------------------------+
 
-Tells Godot which node it should give focus to if the user presses the down arrow on the keyboard or down on a gamepad by default. You can change the key by editing the ``ui_down`` input action. The node must be a ``Control``. If this property is not set, Godot will give focus to the closest ``Control`` to the bottom of this one.
+Tells Godot which node it should give focus to if the user presses the down arrow on the keyboard or down on a gamepad by default. You can change the key by editing the :ref:`ProjectSettings.input/ui_down<class_ProjectSettings_property_input/ui_down>` input action. The node must be a ``Control``. If this property is not set, Godot will give focus to the closest ``Control`` to the bottom of this one.
 
 ----
 
@@ -898,7 +900,7 @@ Tells Godot which node it should give focus to if the user presses the down arro
 | *Getter*  | get_focus_neighbor()      |
 +-----------+---------------------------+
 
-Tells Godot which node it should give focus to if the user presses the left arrow on the keyboard or left on a gamepad by default. You can change the key by editing the ``ui_left`` input action. The node must be a ``Control``. If this property is not set, Godot will give focus to the closest ``Control`` to the left of this one.
+Tells Godot which node it should give focus to if the user presses the left arrow on the keyboard or left on a gamepad by default. You can change the key by editing the :ref:`ProjectSettings.input/ui_left<class_ProjectSettings_property_input/ui_left>` input action. The node must be a ``Control``. If this property is not set, Godot will give focus to the closest ``Control`` to the left of this one.
 
 ----
 
@@ -914,7 +916,7 @@ Tells Godot which node it should give focus to if the user presses the left arro
 | *Getter*  | get_focus_neighbor()      |
 +-----------+---------------------------+
 
-Tells Godot which node it should give focus to if the user presses the right arrow on the keyboard or right on a gamepad by default. You can change the key by editing the ``ui_right`` input action. The node must be a ``Control``. If this property is not set, Godot will give focus to the closest ``Control`` to the bottom of this one.
+Tells Godot which node it should give focus to if the user presses the right arrow on the keyboard or right on a gamepad by default. You can change the key by editing the :ref:`ProjectSettings.input/ui_right<class_ProjectSettings_property_input/ui_right>` input action. The node must be a ``Control``. If this property is not set, Godot will give focus to the closest ``Control`` to the bottom of this one.
 
 ----
 
@@ -930,7 +932,7 @@ Tells Godot which node it should give focus to if the user presses the right arr
 | *Getter*  | get_focus_neighbor()      |
 +-----------+---------------------------+
 
-Tells Godot which node it should give focus to if the user presses the top arrow on the keyboard or top on a gamepad by default. You can change the key by editing the ``ui_top`` input action. The node must be a ``Control``. If this property is not set, Godot will give focus to the closest ``Control`` to the bottom of this one.
+Tells Godot which node it should give focus to if the user presses the top arrow on the keyboard or top on a gamepad by default. You can change the key by editing the :ref:`ProjectSettings.input/ui_up<class_ProjectSettings_property_input/ui_up>` input action. The node must be a ``Control``. If this property is not set, Godot will give focus to the closest ``Control`` to the bottom of this one.
 
 ----
 
@@ -946,7 +948,7 @@ Tells Godot which node it should give focus to if the user presses the top arrow
 | *Getter*  | get_focus_next()      |
 +-----------+-----------------------+
 
-Tells Godot which node it should give focus to if the user presses :kbd:`Tab` on a keyboard by default. You can change the key by editing the ``ui_focus_next`` input action.
+Tells Godot which node it should give focus to if the user presses :kbd:`Tab` on a keyboard by default. You can change the key by editing the :ref:`ProjectSettings.input/ui_focus_next<class_ProjectSettings_property_input/ui_focus_next>` input action.
 
 If this property is not set, Godot will select a "best guess" based on surrounding nodes in the scene tree.
 
@@ -964,7 +966,7 @@ If this property is not set, Godot will select a "best guess" based on surroundi
 | *Getter*  | get_focus_previous()      |
 +-----------+---------------------------+
 
-Tells Godot which node it should give focus to if the user presses :kbd:`Shift + Tab` on a keyboard by default. You can change the key by editing the ``ui_focus_prev`` input action.
+Tells Godot which node it should give focus to if the user presses :kbd:`Shift + Tab` on a keyboard by default. You can change the key by editing the :ref:`ProjectSettings.input/ui_focus_prev<class_ProjectSettings_property_input/ui_focus_prev>` input action.
 
 If this property is not set, Godot will select a "best guess" based on surrounding nodes in the scene tree.
 
@@ -978,7 +980,7 @@ If this property is not set, Godot will select a "best guess" based on surroundi
 | *Getter* | get_global_position() |
 +----------+-----------------------+
 
-The node's global position, relative to the world (usually to the top-left corner of the window).
+The node's global position, relative to the world (usually to the :ref:`CanvasLayer<class_CanvasLayer>`).
 
 ----
 
@@ -1078,7 +1080,7 @@ Controls whether the control will be able to receive mouse button input events t
 
 When enabled, scroll wheel events processed by :ref:`_gui_input<class_Control_method__gui_input>` will be passed to the parent control even if :ref:`mouse_filter<class_Control_property_mouse_filter>` is set to :ref:`MOUSE_FILTER_STOP<class_Control_constant_MOUSE_FILTER_STOP>`. As it defaults to true, this allows nested scrollable containers to work out of the box.
 
-You should disable it on the root of your UI if you do not want scroll events to go to the ``_unhandled_input`` processing.
+You should disable it on the root of your UI if you do not want scroll events to go to the :ref:`Node._unhandled_input<class_Node_method__unhandled_input>` processing.
 
 ----
 
@@ -1220,6 +1222,20 @@ The node's scale, relative to its :ref:`size<class_Control_property_size>`. Chan
 
 ----
 
+.. _class_Control_property_shortcut_context:
+
+- :ref:`Node<class_Node>` **shortcut_context**
+
++----------+-----------------------------+
+| *Setter* | set_shortcut_context(value) |
++----------+-----------------------------+
+| *Getter* | get_shortcut_context()      |
++----------+-----------------------------+
+
+The :ref:`Node<class_Node>` which must be a parent of the focused ``Control`` for the shortcut to be activated. If ``null``, the shortcut can be activated when any control is focused (a global shortcut). This allows shortcuts to be accepted only when the user has a certain area of the GUI focused.
+
+----
+
 .. _class_Control_property_size:
 
 - :ref:`Vector2<class_Vector2>` **size**
@@ -1330,7 +1346,7 @@ When set, this property gives the highest priority to the type of the specified
 | *Getter*  | get_tooltip_text()      |
 +-----------+-------------------------+
 
-The default tooltip text. The tooltip appears when the user's mouse cursor stays idle over this control for a few moments, provided that the :ref:`mouse_filter<class_Control_property_mouse_filter>` property is not :ref:`MOUSE_FILTER_IGNORE<class_Control_constant_MOUSE_FILTER_IGNORE>`. The time required for the tooltip to appear can be changed with the ``gui/timers/tooltip_delay_sec`` option in Project Settings. See also :ref:`get_tooltip<class_Control_method_get_tooltip>`.
+The default tooltip text. The tooltip appears when the user's mouse cursor stays idle over this control for a few moments, provided that the :ref:`mouse_filter<class_Control_property_mouse_filter>` property is not :ref:`MOUSE_FILTER_IGNORE<class_Control_constant_MOUSE_FILTER_IGNORE>`. The time required for the tooltip to appear can be changed with the :ref:`ProjectSettings.gui/timers/tooltip_delay_sec<class_ProjectSettings_property_gui/timers/tooltip_delay_sec>` option. See also :ref:`get_tooltip<class_Control_method_get_tooltip>`.
 
 The tooltip popup will use either a default implementation, or a custom one that you can provide by overriding :ref:`_make_custom_tooltip<class_Control_method__make_custom_tooltip>`. The default tooltip includes a :ref:`PopupPanel<class_PopupPanel>` and :ref:`Label<class_Label>` whose theme properties can be customized using :ref:`Theme<class_Theme>` methods with the ``"TooltipPanel"`` and ``"TooltipLabel"`` respectively. For example:
 
@@ -1471,7 +1487,7 @@ If not overridden, defaults to :ref:`Vector2.ZERO<class_Vector2_constant_ZERO>`.
 
 Virtual method to be implemented by the user. Use this method to process and accept inputs on UI elements. See :ref:`accept_event<class_Control_method_accept_event>`.
 
-Example: clicking a control.
+\ **Example usage for clicking a control:**\ 
 
 
 .. tabs::
@@ -1541,7 +1557,7 @@ The returned node will be added as child to a :ref:`PopupPanel<class_PopupPanel>
 
 \ **Note:** The node (and any relevant children) should be :ref:`CanvasItem.visible<class_CanvasItem_property_visible>` when returned, otherwise, the viewport that instantiates it will not be able to calculate its minimum size reliably.
 
-Example of usage with a custom-constructed node:
+\ **Example of usage with a custom-constructed node:**\ 
 
 
 .. tabs::
@@ -1564,7 +1580,7 @@ Example of usage with a custom-constructed node:
 
 
 
-Example of usage with a custom scene instance:
+\ **Example of usage with a custom scene instance:**\ 
 
 
 .. tabs::
@@ -1595,7 +1611,7 @@ Example of usage with a custom scene instance:
 
 User defined BiDi algorithm override function.
 
-Returns ``Array`` of ``Vector2i`` text ranges, in the left-to-right order. Ranges should cover full source ``text`` without overlaps. BiDi algorithm will be used on each range separately.
+Returns an :ref:`Array<class_Array>` of :ref:`Vector2i<class_Vector2i>` text ranges, in the left-to-right order. Ranges should cover full source ``text`` without overlaps. BiDi algorithm will be used on each range separately.
 
 ----
 
@@ -1817,7 +1833,7 @@ Returns the focus neighbor for the specified :ref:`Side<enum_@GlobalScope_Side>`
 
 - :ref:`Rect2<class_Rect2>` **get_global_rect** **(** **)** |const|
 
-Returns the position and size of the control relative to the top-left corner of the screen. See :ref:`position<class_Control_property_position>` and :ref:`size<class_Control_property_size>`.
+Returns the position and size of the control relative to the :ref:`CanvasLayer<class_CanvasLayer>`. See :ref:`global_position<class_Control_property_global_position>` and :ref:`size<class_Control_property_size>`.
 
 ----
 
@@ -1869,7 +1885,7 @@ Returns the position of this ``Control`` in global screen coordinates (i.e. taki
 
 Equals to :ref:`global_position<class_Control_property_global_position>` if the window is embedded (see :ref:`Viewport.gui_embed_subwindows<class_Viewport_property_gui_embed_subwindows>`).
 
-Example usage for showing a popup:
+\ **Example usage for showing a popup:**\ 
 
 ::
 
@@ -1998,7 +2014,7 @@ See :ref:`get_theme_color<class_Control_method_get_theme_color>` for details.
 
 Returns the tooltip text ``at_position`` in local coordinates, which will typically appear when the cursor is resting over this control. By default, it returns :ref:`tooltip_text<class_Control_property_tooltip_text>`.
 
-\ **Note:** This method can be overridden to customise its behaviour. If this method returns an empty :ref:`String<class_String>`, no tooltip is displayed.
+\ **Note:** This method can be overridden to customize its behavior. If this method returns an empty :ref:`String<class_String>`, no tooltip is displayed.
 
 ----
 
@@ -2447,7 +2463,7 @@ Sets the offset for the specified :ref:`Side<enum_@GlobalScope_Side>` to ``offse
 
 Sets the offsets to a ``preset`` from :ref:`LayoutPreset<enum_Control_LayoutPreset>` enum. This is the code equivalent to using the Layout menu in the 2D editor.
 
-Use parameter ``resize_mode`` with constants from :ref:`LayoutPresetMode<enum_Control_LayoutPresetMode>` to better determine the resulting size of the ``Control``. Constant size will be ignored if used with presets that change size, e.g. ``PRESET_LEFT_WIDE``.
+Use parameter ``resize_mode`` with constants from :ref:`LayoutPresetMode<enum_Control_LayoutPresetMode>` to better determine the resulting size of the ``Control``. Constant size will be ignored if used with presets that change size, e.g. :ref:`PRESET_LEFT_WIDE<class_Control_constant_PRESET_LEFT_WIDE>`.
 
 Use parameter ``margin`` to determine the gap between the ``Control`` and the edges.
 

+ 69 - 1
classes/class_cpuparticles2d.rst

@@ -360,6 +360,8 @@ Each particle's rotation will be animated along this :ref:`Curve<class_Curve>`.
 | *Getter*  | get_param_max()      |
 +-----------+----------------------+
 
+Maximum initial rotation applied to each particle, in degrees.
+
 ----
 
 .. _class_CPUParticles2D_property_angle_min:
@@ -374,6 +376,8 @@ Each particle's rotation will be animated along this :ref:`Curve<class_Curve>`.
 | *Getter*  | get_param_min()      |
 +-----------+----------------------+
 
+Minimum equivalent of :ref:`angle_max<class_CPUParticles2D_property_angle_max>`.
+
 ----
 
 .. _class_CPUParticles2D_property_angular_velocity_curve:
@@ -402,6 +406,8 @@ Each particle's angular velocity will vary along this :ref:`Curve<class_Curve>`.
 | *Getter*  | get_param_max()      |
 +-----------+----------------------+
 
+Maximum initial angular velocity (rotation speed) applied to each particle in *degrees* per second.
+
 ----
 
 .. _class_CPUParticles2D_property_angular_velocity_min:
@@ -416,6 +422,8 @@ Each particle's angular velocity will vary along this :ref:`Curve<class_Curve>`.
 | *Getter*  | get_param_min()      |
 +-----------+----------------------+
 
+Minimum equivalent of :ref:`angular_velocity_max<class_CPUParticles2D_property_angular_velocity_max>`.
+
 ----
 
 .. _class_CPUParticles2D_property_anim_offset_curve:
@@ -444,6 +452,8 @@ Each particle's animation offset will vary along this :ref:`Curve<class_Curve>`.
 | *Getter*  | get_param_max()      |
 +-----------+----------------------+
 
+Maximum animation offset that corresponds to frame index in the texture. ``0`` is the first frame, ``1`` is the last one. See :ref:`CanvasItemMaterial.particles_animation<class_CanvasItemMaterial_property_particles_animation>`.
+
 ----
 
 .. _class_CPUParticles2D_property_anim_offset_min:
@@ -458,6 +468,8 @@ Each particle's animation offset will vary along this :ref:`Curve<class_Curve>`.
 | *Getter*  | get_param_min()      |
 +-----------+----------------------+
 
+Minimum equivalent of :ref:`anim_offset_max<class_CPUParticles2D_property_anim_offset_max>`.
+
 ----
 
 .. _class_CPUParticles2D_property_anim_speed_curve:
@@ -486,6 +498,10 @@ Each particle's animation speed will vary along this :ref:`Curve<class_Curve>`.
 | *Getter*  | get_param_max()      |
 +-----------+----------------------+
 
+Maximum particle animation speed. Animation speed of ``1`` means that the particles will make full ``0`` to ``1`` offset cycle during lifetime, ``2`` means ``2`` cycles etc.
+
+With animation speed greater than ``1``, remember to enable :ref:`CanvasItemMaterial.particles_anim_loop<class_CanvasItemMaterial_property_particles_anim_loop>` property if you want the animation to repeat.
+
 ----
 
 .. _class_CPUParticles2D_property_anim_speed_min:
@@ -500,6 +516,8 @@ Each particle's animation speed will vary along this :ref:`Curve<class_Curve>`.
 | *Getter*  | get_param_min()      |
 +-----------+----------------------+
 
+Minimum equivalent of :ref:`anim_speed_max<class_CPUParticles2D_property_anim_speed_max>`.
+
 ----
 
 .. _class_CPUParticles2D_property_color:
@@ -572,6 +590,8 @@ Damping will vary along this :ref:`Curve<class_Curve>`.
 | *Getter*  | get_param_max()      |
 +-----------+----------------------+
 
+The maximum rate at which particles lose velocity. For example value of ``100`` means that the particle will go from ``100`` velocity to ``0`` in ``1`` second.
+
 ----
 
 .. _class_CPUParticles2D_property_damping_min:
@@ -586,6 +606,8 @@ Damping will vary along this :ref:`Curve<class_Curve>`.
 | *Getter*  | get_param_min()      |
 +-----------+----------------------+
 
+Minimum equivalent of :ref:`damping_max<class_CPUParticles2D_property_damping_max>`.
+
 ----
 
 .. _class_CPUParticles2D_property_direction:
@@ -750,7 +772,7 @@ How rapidly particles in an emission cycle are emitted. If greater than ``0``, t
 | *Getter*  | get_fixed_fps()      |
 +-----------+----------------------+
 
-The particle system's frame rate is fixed to a value. For instance, changing the value to 2 will make the particles render at 2 frames per second. Note this does not slow down the simulation of the particle system itself.
+The particle system's frame rate is fixed to a value. For example, changing the value to 2 will make the particles render at 2 frames per second. Note this does not slow down the simulation of the particle system itself.
 
 ----
 
@@ -812,6 +834,8 @@ Each particle's hue will vary along this :ref:`Curve<class_Curve>`.
 | *Getter*  | get_param_max()      |
 +-----------+----------------------+
 
+Maximum initial hue variation applied to each particle. It will shift the particle color's hue.
+
 ----
 
 .. _class_CPUParticles2D_property_hue_variation_min:
@@ -826,6 +850,8 @@ Each particle's hue will vary along this :ref:`Curve<class_Curve>`.
 | *Getter*  | get_param_min()      |
 +-----------+----------------------+
 
+Minimum equivalent of :ref:`hue_variation_max<class_CPUParticles2D_property_hue_variation_max>`.
+
 ----
 
 .. _class_CPUParticles2D_property_initial_velocity_max:
@@ -840,6 +866,8 @@ Each particle's hue will vary along this :ref:`Curve<class_Curve>`.
 | *Getter*  | get_param_max()      |
 +-----------+----------------------+
 
+Maximum initial velocity magnitude for each particle. Direction comes from :ref:`direction<class_CPUParticles2D_property_direction>` and :ref:`spread<class_CPUParticles2D_property_spread>`.
+
 ----
 
 .. _class_CPUParticles2D_property_initial_velocity_min:
@@ -854,6 +882,8 @@ Each particle's hue will vary along this :ref:`Curve<class_Curve>`.
 | *Getter*  | get_param_min()      |
 +-----------+----------------------+
 
+Minimum equivalent of :ref:`initial_velocity_max<class_CPUParticles2D_property_initial_velocity_max>`.
+
 ----
 
 .. _class_CPUParticles2D_property_lifetime:
@@ -914,6 +944,8 @@ Each particle's linear acceleration will vary along this :ref:`Curve<class_Curve
 | *Getter*  | get_param_max()      |
 +-----------+----------------------+
 
+Maximum linear acceleration applied to each particle in the direction of motion.
+
 ----
 
 .. _class_CPUParticles2D_property_linear_accel_min:
@@ -928,6 +960,8 @@ Each particle's linear acceleration will vary along this :ref:`Curve<class_Curve
 | *Getter*  | get_param_min()      |
 +-----------+----------------------+
 
+Minimum equivalent of :ref:`linear_accel_max<class_CPUParticles2D_property_linear_accel_max>`.
+
 ----
 
 .. _class_CPUParticles2D_property_local_coords:
@@ -988,6 +1022,8 @@ Each particle's orbital velocity will vary along this :ref:`Curve<class_Curve>`.
 | *Getter*  | get_param_max()      |
 +-----------+----------------------+
 
+Maximum orbital velocity applied to each particle. Makes the particles circle around origin. Specified in number of full rotations around origin per second.
+
 ----
 
 .. _class_CPUParticles2D_property_orbit_velocity_min:
@@ -1002,6 +1038,8 @@ Each particle's orbital velocity will vary along this :ref:`Curve<class_Curve>`.
 | *Getter*  | get_param_min()      |
 +-----------+----------------------+
 
+Minimum equivalent of :ref:`orbit_velocity_max<class_CPUParticles2D_property_orbit_velocity_max>`.
+
 ----
 
 .. _class_CPUParticles2D_property_particle_flag_align_y:
@@ -1062,6 +1100,8 @@ Each particle's radial acceleration will vary along this :ref:`Curve<class_Curve
 | *Getter*  | get_param_max()      |
 +-----------+----------------------+
 
+Maximum radial acceleration applied to each particle. Makes particle accelerate away from the origin or towards it if negative.
+
 ----
 
 .. _class_CPUParticles2D_property_radial_accel_min:
@@ -1076,6 +1116,8 @@ Each particle's radial acceleration will vary along this :ref:`Curve<class_Curve
 | *Getter*  | get_param_min()      |
 +-----------+----------------------+
 
+Minimum equivalent of :ref:`radial_accel_max<class_CPUParticles2D_property_radial_accel_max>`.
+
 ----
 
 .. _class_CPUParticles2D_property_randomness:
@@ -1120,6 +1162,8 @@ Each particle's scale will vary along this :ref:`Curve<class_Curve>`.
 | *Getter*  | get_param_max()      |
 +-----------+----------------------+
 
+Maximum initial scale applied to each particle.
+
 ----
 
 .. _class_CPUParticles2D_property_scale_amount_min:
@@ -1134,6 +1178,8 @@ Each particle's scale will vary along this :ref:`Curve<class_Curve>`.
 | *Getter*  | get_param_min()      |
 +-----------+----------------------+
 
+Minimum equivalent of :ref:`scale_amount_max<class_CPUParticles2D_property_scale_amount_max>`.
+
 ----
 
 .. _class_CPUParticles2D_property_scale_curve_x:
@@ -1146,6 +1192,10 @@ Each particle's scale will vary along this :ref:`Curve<class_Curve>`.
 | *Getter* | get_scale_curve_x()      |
 +----------+--------------------------+
 
+Each particle's horizontal scale will vary along this :ref:`Curve<class_Curve>`.
+
+\ :ref:`split_scale<class_CPUParticles2D_property_split_scale>` must be enabled.
+
 ----
 
 .. _class_CPUParticles2D_property_scale_curve_y:
@@ -1158,6 +1208,10 @@ Each particle's scale will vary along this :ref:`Curve<class_Curve>`.
 | *Getter* | get_scale_curve_y()      |
 +----------+--------------------------+
 
+Each particle's vertical scale will vary along this :ref:`Curve<class_Curve>`.
+
+\ :ref:`split_scale<class_CPUParticles2D_property_split_scale>` must be enabled.
+
 ----
 
 .. _class_CPUParticles2D_property_speed_scale:
@@ -1188,6 +1242,8 @@ Particle system's running speed scaling ratio. A value of ``0`` can be used to p
 | *Getter*  | get_split_scale()      |
 +-----------+------------------------+
 
+If ``true``, the scale curve will be split into x and y components. See :ref:`scale_curve_x<class_CPUParticles2D_property_scale_curve_x>` and :ref:`scale_curve_y<class_CPUParticles2D_property_scale_curve_y>`.
+
 ----
 
 .. _class_CPUParticles2D_property_spread:
@@ -1232,6 +1288,8 @@ Each particle's tangential acceleration will vary along this :ref:`Curve<class_C
 | *Getter*  | get_param_max()      |
 +-----------+----------------------+
 
+Maximum tangential acceleration applied to each particle. Tangential acceleration is perpendicular to the particle's velocity giving the particles a swirling motion.
+
 ----
 
 .. _class_CPUParticles2D_property_tangential_accel_min:
@@ -1246,6 +1304,8 @@ Each particle's tangential acceleration will vary along this :ref:`Curve<class_C
 | *Getter*  | get_param_min()      |
 +-----------+----------------------+
 
+Minimum equivalent of :ref:`tangential_accel_max<class_CPUParticles2D_property_tangential_accel_max>`.
+
 ----
 
 .. _class_CPUParticles2D_property_texture:
@@ -1283,12 +1343,16 @@ Returns the :ref:`Curve<class_Curve>` of the parameter specified by :ref:`Parame
 
 - :ref:`float<class_float>` **get_param_max** **(** :ref:`Parameter<enum_CPUParticles2D_Parameter>` param **)** |const|
 
+Returns the maximum value range for the given parameter.
+
 ----
 
 .. _class_CPUParticles2D_method_get_param_min:
 
 - :ref:`float<class_float>` **get_param_min** **(** :ref:`Parameter<enum_CPUParticles2D_Parameter>` param **)** |const|
 
+Returns the minimum value range for the given parameter.
+
 ----
 
 .. _class_CPUParticles2D_method_get_particle_flag:
@@ -1319,12 +1383,16 @@ Sets the :ref:`Curve<class_Curve>` of the parameter specified by :ref:`Parameter
 
 - void **set_param_max** **(** :ref:`Parameter<enum_CPUParticles2D_Parameter>` param, :ref:`float<class_float>` value **)**
 
+Sets the maximum value for the given parameter.
+
 ----
 
 .. _class_CPUParticles2D_method_set_param_min:
 
 - void **set_param_min** **(** :ref:`Parameter<enum_CPUParticles2D_Parameter>` param, :ref:`float<class_float>` value **)**
 
+Sets the minimum value for the given parameter.
+
 ----
 
 .. _class_CPUParticles2D_method_set_particle_flag:

+ 7 - 3
classes/class_cpuparticles3d.rst

@@ -855,7 +855,7 @@ How rapidly particles in an emission cycle are emitted. If greater than ``0``, t
 | *Getter*  | get_fixed_fps()      |
 +-----------+----------------------+
 
-The particle system's frame rate is fixed to a value. For instance, changing the value to 2 will make the particles render at 2 frames per second. Note this does not slow down the particle system itself.
+The particle system's frame rate is fixed to a value. For example, changing the value to 2 will make the particles render at 2 frames per second. Note this does not slow down the particle system itself.
 
 ----
 
@@ -1480,12 +1480,16 @@ Returns the :ref:`Curve<class_Curve>` of the parameter specified by :ref:`Parame
 
 - :ref:`float<class_float>` **get_param_max** **(** :ref:`Parameter<enum_CPUParticles3D_Parameter>` param **)** |const|
 
+Returns the maximum value range for the given parameter.
+
 ----
 
 .. _class_CPUParticles3D_method_get_param_min:
 
 - :ref:`float<class_float>` **get_param_min** **(** :ref:`Parameter<enum_CPUParticles3D_Parameter>` param **)** |const|
 
+Returns the minimum value range for the given parameter.
+
 ----
 
 .. _class_CPUParticles3D_method_get_particle_flag:
@@ -1516,7 +1520,7 @@ Sets the :ref:`Curve<class_Curve>` of the parameter specified by :ref:`Parameter
 
 - void **set_param_max** **(** :ref:`Parameter<enum_CPUParticles3D_Parameter>` param, :ref:`float<class_float>` value **)**
 
-Sets the maximum value for the given parameter
+Sets the maximum value for the given parameter.
 
 ----
 
@@ -1524,7 +1528,7 @@ Sets the maximum value for the given parameter
 
 - void **set_param_min** **(** :ref:`Parameter<enum_CPUParticles3D_Parameter>` param, :ref:`float<class_float>` value **)**
 
-Sets the minimum value for the given parameter
+Sets the minimum value for the given parameter.
 
 ----
 

+ 4 - 2
classes/class_csgshape3d.rst

@@ -134,7 +134,7 @@ A contact is detected if object A is in any of the layers that object B scans, o
 | *Getter*  | get_collision_mask()      |
 +-----------+---------------------------+
 
-The physics layers this CSG shape scans for collisions. See `Collision layers and masks <../tutorials/physics/physics_introduction.html#collision-layers-and-masks>`__ in the documentation for more information.
+The physics layers this CSG shape scans for collisions. Only effective if :ref:`use_collision<class_CSGShape3D_property_use_collision>` is ``true``. See `Collision layers and masks <../tutorials/physics/physics_introduction.html#collision-layers-and-masks>`__ in the documentation for more information.
 
 ----
 
@@ -150,6 +150,8 @@ The physics layers this CSG shape scans for collisions. See `Collision layers an
 | *Getter*  | get_collision_priority()      |
 +-----------+-------------------------------+
 
+The priority used to solve colliding when occurring penetration. Only effective if :ref:`use_collision<class_CSGShape3D_property_use_collision>` is ``true``. The higher the priority is, the lower the penetration into the object will be. This can for example be used to prevent the player from breaking through the boundaries of a level.
+
 ----
 
 .. _class_CSGShape3D_property_operation:
@@ -196,7 +198,7 @@ Snap makes the mesh snap to a given distance so that the faces of two meshes can
 | *Getter*  | is_using_collision()     |
 +-----------+--------------------------+
 
-Adds a collision shape to the physics engine for our CSG shape. This will always act like a static body. Note that the collision shape is still active even if the CSG shape itself is hidden.
+Adds a collision shape to the physics engine for our CSG shape. This will always act like a static body. Note that the collision shape is still active even if the CSG shape itself is hidden. See also :ref:`collision_mask<class_CSGShape3D_property_collision_mask>` and :ref:`collision_priority<class_CSGShape3D_property_collision_priority>`.
 
 Method Descriptions
 -------------------

+ 1 - 1
classes/class_curve.rst

@@ -191,7 +191,7 @@ Recomputes the baked cache of points for the curve.
 
 - void **clean_dupes** **(** **)**
 
-Removes points that are closer than ``CMP_EPSILON`` (0.00001) units to their neighbor on the curve.
+Removes duplicate points, i.e. points that are less than 0.00001 units (engine epsilon value) away from their neighbor on the curve.
 
 ----
 

+ 53 - 35
classes/class_curve2d.rst

@@ -33,41 +33,43 @@ Properties
 Methods
 -------
 
-+-----------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`add_point<class_Curve2D_method_add_point>` **(** :ref:`Vector2<class_Vector2>` position, :ref:`Vector2<class_Vector2>` in=Vector2(0, 0), :ref:`Vector2<class_Vector2>` out=Vector2(0, 0), :ref:`int<class_int>` index=-1 **)** |
-+-----------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`clear_points<class_Curve2D_method_clear_points>` **(** **)**                                                                                                                                                                   |
-+-----------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                           | :ref:`get_baked_length<class_Curve2D_method_get_baked_length>` **(** **)** |const|                                                                                                                                                   |
-+-----------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`PackedVector2Array<class_PackedVector2Array>` | :ref:`get_baked_points<class_Curve2D_method_get_baked_points>` **(** **)** |const|                                                                                                                                                   |
-+-----------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                           | :ref:`get_closest_offset<class_Curve2D_method_get_closest_offset>` **(** :ref:`Vector2<class_Vector2>` to_point **)** |const|                                                                                                        |
-+-----------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Vector2<class_Vector2>`                       | :ref:`get_closest_point<class_Curve2D_method_get_closest_point>` **(** :ref:`Vector2<class_Vector2>` to_point **)** |const|                                                                                                          |
-+-----------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Vector2<class_Vector2>`                       | :ref:`get_point_in<class_Curve2D_method_get_point_in>` **(** :ref:`int<class_int>` idx **)** |const|                                                                                                                                 |
-+-----------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Vector2<class_Vector2>`                       | :ref:`get_point_out<class_Curve2D_method_get_point_out>` **(** :ref:`int<class_int>` idx **)** |const|                                                                                                                               |
-+-----------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Vector2<class_Vector2>`                       | :ref:`get_point_position<class_Curve2D_method_get_point_position>` **(** :ref:`int<class_int>` idx **)** |const|                                                                                                                     |
-+-----------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`remove_point<class_Curve2D_method_remove_point>` **(** :ref:`int<class_int>` idx **)**                                                                                                                                         |
-+-----------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Vector2<class_Vector2>`                       | :ref:`sample<class_Curve2D_method_sample>` **(** :ref:`int<class_int>` idx, :ref:`float<class_float>` t **)** |const|                                                                                                                |
-+-----------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Vector2<class_Vector2>`                       | :ref:`sample_baked<class_Curve2D_method_sample_baked>` **(** :ref:`float<class_float>` offset, :ref:`bool<class_bool>` cubic=false **)** |const|                                                                                     |
-+-----------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Vector2<class_Vector2>`                       | :ref:`samplef<class_Curve2D_method_samplef>` **(** :ref:`float<class_float>` fofs **)** |const|                                                                                                                                      |
-+-----------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`set_point_in<class_Curve2D_method_set_point_in>` **(** :ref:`int<class_int>` idx, :ref:`Vector2<class_Vector2>` position **)**                                                                                                 |
-+-----------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`set_point_out<class_Curve2D_method_set_point_out>` **(** :ref:`int<class_int>` idx, :ref:`Vector2<class_Vector2>` position **)**                                                                                               |
-+-----------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`set_point_position<class_Curve2D_method_set_point_position>` **(** :ref:`int<class_int>` idx, :ref:`Vector2<class_Vector2>` position **)**                                                                                     |
-+-----------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`PackedVector2Array<class_PackedVector2Array>` | :ref:`tessellate<class_Curve2D_method_tessellate>` **(** :ref:`int<class_int>` max_stages=5, :ref:`float<class_float>` tolerance_degrees=4 **)** |const|                                                                             |
-+-----------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
++-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                | :ref:`add_point<class_Curve2D_method_add_point>` **(** :ref:`Vector2<class_Vector2>` position, :ref:`Vector2<class_Vector2>` in=Vector2(0, 0), :ref:`Vector2<class_Vector2>` out=Vector2(0, 0), :ref:`int<class_int>` index=-1 **)**                     |
++-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                | :ref:`clear_points<class_Curve2D_method_clear_points>` **(** **)**                                                                                                                                                                                       |
++-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                           | :ref:`get_baked_length<class_Curve2D_method_get_baked_length>` **(** **)** |const|                                                                                                                                                                       |
++-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`PackedVector2Array<class_PackedVector2Array>` | :ref:`get_baked_points<class_Curve2D_method_get_baked_points>` **(** **)** |const|                                                                                                                                                                       |
++-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                           | :ref:`get_closest_offset<class_Curve2D_method_get_closest_offset>` **(** :ref:`Vector2<class_Vector2>` to_point **)** |const|                                                                                                                            |
++-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Vector2<class_Vector2>`                       | :ref:`get_closest_point<class_Curve2D_method_get_closest_point>` **(** :ref:`Vector2<class_Vector2>` to_point **)** |const|                                                                                                                              |
++-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Vector2<class_Vector2>`                       | :ref:`get_point_in<class_Curve2D_method_get_point_in>` **(** :ref:`int<class_int>` idx **)** |const|                                                                                                                                                     |
++-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Vector2<class_Vector2>`                       | :ref:`get_point_out<class_Curve2D_method_get_point_out>` **(** :ref:`int<class_int>` idx **)** |const|                                                                                                                                                   |
++-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Vector2<class_Vector2>`                       | :ref:`get_point_position<class_Curve2D_method_get_point_position>` **(** :ref:`int<class_int>` idx **)** |const|                                                                                                                                         |
++-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                | :ref:`remove_point<class_Curve2D_method_remove_point>` **(** :ref:`int<class_int>` idx **)**                                                                                                                                                             |
++-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Vector2<class_Vector2>`                       | :ref:`sample<class_Curve2D_method_sample>` **(** :ref:`int<class_int>` idx, :ref:`float<class_float>` t **)** |const|                                                                                                                                    |
++-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Vector2<class_Vector2>`                       | :ref:`sample_baked<class_Curve2D_method_sample_baked>` **(** :ref:`float<class_float>` offset, :ref:`bool<class_bool>` cubic=false **)** |const|                                                                                                         |
++-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Transform2D<class_Transform2D>`               | :ref:`sample_baked_with_rotation<class_Curve2D_method_sample_baked_with_rotation>` **(** :ref:`float<class_float>` offset, :ref:`bool<class_bool>` cubic=false, :ref:`bool<class_bool>` loop=true, :ref:`float<class_float>` lookahead=4.0 **)** |const| |
++-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Vector2<class_Vector2>`                       | :ref:`samplef<class_Curve2D_method_samplef>` **(** :ref:`float<class_float>` fofs **)** |const|                                                                                                                                                          |
++-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                | :ref:`set_point_in<class_Curve2D_method_set_point_in>` **(** :ref:`int<class_int>` idx, :ref:`Vector2<class_Vector2>` position **)**                                                                                                                     |
++-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                | :ref:`set_point_out<class_Curve2D_method_set_point_out>` **(** :ref:`int<class_int>` idx, :ref:`Vector2<class_Vector2>` position **)**                                                                                                                   |
++-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                | :ref:`set_point_position<class_Curve2D_method_set_point_position>` **(** :ref:`int<class_int>` idx, :ref:`Vector2<class_Vector2>` position **)**                                                                                                         |
++-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`PackedVector2Array<class_PackedVector2Array>` | :ref:`tessellate<class_Curve2D_method_tessellate>` **(** :ref:`int<class_int>` max_stages=5, :ref:`float<class_float>` tolerance_degrees=4 **)** |const|                                                                                                 |
++-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 
 Property Descriptions
 ---------------------
@@ -213,6 +215,22 @@ Cubic interpolation tends to follow the curves better, but linear is faster (and
 
 ----
 
+.. _class_Curve2D_method_sample_baked_with_rotation:
+
+- :ref:`Transform2D<class_Transform2D>` **sample_baked_with_rotation** **(** :ref:`float<class_float>` offset, :ref:`bool<class_bool>` cubic=false, :ref:`bool<class_bool>` loop=true, :ref:`float<class_float>` lookahead=4.0 **)** |const|
+
+Similar to :ref:`sample_baked<class_Curve2D_method_sample_baked>`, but returns :ref:`Transform2D<class_Transform2D>` that includes a rotation along the curve. Returns empty transform if length of the curve is ``0``.
+
+Use ``loop`` to smooth the tangent at the end of the curve. ``lookahead`` defines the distance to a nearby point for calculating the tangent vector.
+
+::
+
+    var transform = curve.sample_baked_with_rotation(offset)
+    position = transform.get_origin()
+    rotation = transform.get_rotation()
+
+----
+
 .. _class_Curve2D_method_samplef:
 
 - :ref:`Vector2<class_Vector2>` **samplef** **(** :ref:`float<class_float>` fofs **)** |const|

+ 2 - 0
classes/class_cylindershape3d.rst

@@ -19,6 +19,8 @@ Description
 
 Cylinder shape for collisions. Like :ref:`CapsuleShape3D<class_CapsuleShape3D>`, but without hemispheres at the cylinder's ends.
 
+\ **Note:** There are several known bugs with cylinder collision shapes. Using :ref:`CapsuleShape3D<class_CapsuleShape3D>` or :ref:`BoxShape3D<class_BoxShape3D>` instead is recommended.
+
 \ **Performance:** Being a primitive collision shape, ``CylinderShape3D`` is fast to check collisions against (though not as fast as :ref:`SphereShape3D<class_SphereShape3D>`). ``CylinderShape3D`` is also more demanding compared to :ref:`CapsuleShape3D<class_CapsuleShape3D>`.
 
 Tutorials

+ 6 - 0
classes/class_dictionary.rst

@@ -472,18 +472,24 @@ Operator Descriptions
 
 - :ref:`bool<class_bool>` **operator !=** **(** :ref:`Dictionary<class_Dictionary>` right **)**
 
+Returns ``true`` if the dictionaries differ, i.e. their key or value lists are different (including the order).
+
 ----
 
 .. _class_Dictionary_operator_eq_bool:
 
 - :ref:`bool<class_bool>` **operator ==** **(** :ref:`Dictionary<class_Dictionary>` right **)**
 
+Returns ``true`` if both dictionaries have the same contents, i.e. their keys list and value list are equal.
+
 ----
 
 .. _class_Dictionary_operator_idx_Variant:
 
 - :ref:`Variant<class_Variant>` **operator []** **(** :ref:`Variant<class_Variant>` key **)**
 
+Returns a value at the given ``key`` or ``null`` and error if the key does not exist. For safe access, use :ref:`get<class_Dictionary_method_get>` or :ref:`has<class_Dictionary_method_has>`.
+
 .. |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.)`

+ 6 - 6
classes/class_diraccess.rst

@@ -203,7 +203,7 @@ Method Descriptions
 
 Changes the currently opened directory to the one passed as an argument. The argument can be relative to the current directory (e.g. ``newdir`` or ``../newdir``), or an absolute path (e.g. ``/tmp/newdir`` or ``res://somedir/newdir``).
 
-Returns one of the :ref:`Error<enum_@GlobalScope_Error>` code constants (``OK`` on success).
+Returns one of the :ref:`Error<enum_@GlobalScope_Error>` code constants (:ref:`@GlobalScope.OK<class_@GlobalScope_constant_OK>` on success).
 
 ----
 
@@ -215,7 +215,7 @@ Copies the ``from`` file to the ``to`` destination. Both arguments should be pat
 
 If ``chmod_flags`` is different than ``-1``, the Unix permissions for the destination path will be set to the provided value, if available on the current operating system.
 
-Returns one of the :ref:`Error<enum_@GlobalScope_Error>` code constants (``OK`` on success).
+Returns one of the :ref:`Error<enum_@GlobalScope_Error>` code constants (:ref:`@GlobalScope.OK<class_@GlobalScope_constant_OK>` on success).
 
 ----
 
@@ -397,7 +397,7 @@ Closes the current stream opened with :ref:`list_dir_begin<class_DirAccess_metho
 
 Creates a directory. The argument can be relative to the current directory, or an absolute path. The target directory should be placed in an already existing directory (to create the full path recursively, see :ref:`make_dir_recursive<class_DirAccess_method_make_dir_recursive>`).
 
-Returns one of the :ref:`Error<enum_@GlobalScope_Error>` code constants (``OK`` on success).
+Returns one of the :ref:`Error<enum_@GlobalScope_Error>` code constants (:ref:`@GlobalScope.OK<class_@GlobalScope_constant_OK>` on success).
 
 ----
 
@@ -415,7 +415,7 @@ Static version of :ref:`make_dir<class_DirAccess_method_make_dir>`. Supports onl
 
 Creates a target directory and all necessary intermediate directories in its path, by calling :ref:`make_dir<class_DirAccess_method_make_dir>` recursively. The argument can be relative to the current directory, or an absolute path.
 
-Returns one of the :ref:`Error<enum_@GlobalScope_Error>` code constants (``OK`` on success).
+Returns one of the :ref:`Error<enum_@GlobalScope_Error>` code constants (:ref:`@GlobalScope.OK<class_@GlobalScope_constant_OK>` on success).
 
 ----
 
@@ -445,7 +445,7 @@ Permanently deletes the target file or an empty directory. The argument can be r
 
 If you don't want to delete the file/directory permanently, use :ref:`OS.move_to_trash<class_OS_method_move_to_trash>` instead.
 
-Returns one of the :ref:`Error<enum_@GlobalScope_Error>` code constants (``OK`` on success).
+Returns one of the :ref:`Error<enum_@GlobalScope_Error>` code constants (:ref:`@GlobalScope.OK<class_@GlobalScope_constant_OK>` on success).
 
 ----
 
@@ -463,7 +463,7 @@ Static version of :ref:`remove<class_DirAccess_method_remove>`. Supports only ab
 
 Renames (move) the ``from`` file or directory to the ``to`` destination. Both arguments should be paths to files or directories, either relative or absolute. If the destination file or directory exists and is not access-protected, it will be overwritten.
 
-Returns one of the :ref:`Error<enum_@GlobalScope_Error>` code constants (``OK`` on success).
+Returns one of the :ref:`Error<enum_@GlobalScope_Error>` code constants (:ref:`@GlobalScope.OK<class_@GlobalScope_constant_OK>` on success).
 
 ----
 

File diff suppressed because it is too large
+ 254 - 113
classes/class_displayserver.rst


+ 1 - 1
classes/class_editorcommandpalette.rst

@@ -19,7 +19,7 @@ Description
 
 Object that holds all the available Commands and their shortcuts text. These Commands can be accessed through **Editor > Command Palette** menu.
 
-Command key names use slash delimiters to distinguish sections Example: ``"example/command1"`` then ``example`` will be the section name.
+Command key names use slash delimiters to distinguish sections, for example: ``"example/command1"`` then ``example`` will be the section name.
 
 
 .. tabs::

+ 9 - 5
classes/class_editorfeatureprofile.rst

@@ -67,6 +67,8 @@ Enumerations
 
 .. _class_EditorFeatureProfile_constant_FEATURE_IMPORT_DOCK:
 
+.. _class_EditorFeatureProfile_constant_FEATURE_HISTORY_DOCK:
+
 .. _class_EditorFeatureProfile_constant_FEATURE_MAX:
 
 enum **Feature**:
@@ -85,7 +87,9 @@ enum **Feature**:
 
 - **FEATURE_IMPORT_DOCK** = **6** --- The Import dock. If this feature is disabled, the Import dock won't be visible.
 
-- **FEATURE_MAX** = **7** --- Represents the size of the :ref:`Feature<enum_EditorFeatureProfile_Feature>` enum.
+- **FEATURE_HISTORY_DOCK** = **7** --- The History dock. If this feature is disabled, the History dock won't be visible.
+
+- **FEATURE_MAX** = **8** --- Represents the size of the :ref:`Feature<enum_EditorFeatureProfile_Feature>` enum.
 
 Method Descriptions
 -------------------
@@ -110,7 +114,7 @@ Returns ``true`` if the class specified by ``class_name`` is disabled. When disa
 
 - :ref:`bool<class_bool>` **is_class_editor_disabled** **(** :ref:`StringName<class_StringName>` class_name **)** |const|
 
-Returns ``true`` if editing for the class specified by ``class_name`` is disabled. When disabled, the class will still appear in the Create New Node dialog but the inspector will be read-only when selecting a node that extends the class.
+Returns ``true`` if editing for the class specified by ``class_name`` is disabled. When disabled, the class will still appear in the Create New Node dialog but the Inspector will be read-only when selecting a node that extends the class.
 
 ----
 
@@ -118,7 +122,7 @@ Returns ``true`` if editing for the class specified by ``class_name`` is disable
 
 - :ref:`bool<class_bool>` **is_class_property_disabled** **(** :ref:`StringName<class_StringName>` class_name, :ref:`StringName<class_StringName>` property **)** |const|
 
-Returns ``true`` if ``property`` is disabled in the class specified by ``class_name``. When a property is disabled, it won't appear in the inspector when selecting a node that extends the class specified by ``class_name``.
+Returns ``true`` if ``property`` is disabled in the class specified by ``class_name``. When a property is disabled, it won't appear in the Inspector when selecting a node that extends the class specified by ``class_name``.
 
 ----
 
@@ -158,7 +162,7 @@ If ``disable`` is ``true``, disables the class specified by ``class_name``. When
 
 - void **set_disable_class_editor** **(** :ref:`StringName<class_StringName>` class_name, :ref:`bool<class_bool>` disable **)**
 
-If ``disable`` is ``true``, disables editing for the class specified by ``class_name``. When disabled, the class will still appear in the Create New Node dialog but the inspector will be read-only when selecting a node that extends the class.
+If ``disable`` is ``true``, disables editing for the class specified by ``class_name``. When disabled, the class will still appear in the Create New Node dialog but the Inspector will be read-only when selecting a node that extends the class.
 
 ----
 
@@ -166,7 +170,7 @@ If ``disable`` is ``true``, disables editing for the class specified by ``class_
 
 - void **set_disable_class_property** **(** :ref:`StringName<class_StringName>` class_name, :ref:`StringName<class_StringName>` property, :ref:`bool<class_bool>` disable **)**
 
-If ``disable`` is ``true``, disables editing for ``property`` in the class specified by ``class_name``. When a property is disabled, it won't appear in the inspector when selecting a node that extends the class specified by ``class_name``.
+If ``disable`` is ``true``, disables editing for ``property`` in the class specified by ``class_name``. When a property is disabled, it won't appear in the Inspector when selecting a node that extends the class specified by ``class_name``.
 
 ----
 

+ 6 - 1
classes/class_editorfiledialog.rst

@@ -14,6 +14,11 @@ EditorFileDialog
 
 A modified version of :ref:`FileDialog<class_FileDialog>` used by the editor.
 
+Description
+-----------
+
+``EditorFileDialog`` is an enhanced version of :ref:`FileDialog<class_FileDialog>` available only to editor plugins. Additional features include list of favorited/recent files and ability to see files as thumbnails grid instead of list.
+
 Properties
 ----------
 
@@ -257,7 +262,7 @@ The dialog's open or save mode, which affects the selection behavior. See :ref:`
 | *Getter*  | is_showing_hidden_files()    |
 +-----------+------------------------------+
 
-If ``true``, hidden files and directories will be visible in the ``EditorFileDialog``.
+If ``true``, hidden files and directories will be visible in the ``EditorFileDialog``. This property is synchronized with :ref:`EditorSettings.filesystem/file_dialog/show_hidden_files<class_EditorSettings_property_filesystem/file_dialog/show_hidden_files>`.
 
 Method Descriptions
 -------------------

+ 1 - 1
classes/class_editorinspector.rst

@@ -58,7 +58,7 @@ Emitted when the object being edited by the inspector has changed.
 
 - **object_id_selected** **(** :ref:`int<class_int>` id **)**
 
-Emitted when the Edit button of an :ref:`Object<class_Object>` has been pressed in the inspector. This is mainly used in the remote scene tree inspector.
+Emitted when the Edit button of an :ref:`Object<class_Object>` has been pressed in the inspector. This is mainly used in the remote scene tree Inspector.
 
 ----
 

+ 1 - 1
classes/class_editorinspectorplugin.rst

@@ -12,7 +12,7 @@ EditorInspectorPlugin
 
 **Inherits:** :ref:`RefCounted<class_RefCounted>` **<** :ref:`Object<class_Object>`
 
-Plugin for adding custom property editors on inspector.
+Plugin for adding custom property editors on the inspector.
 
 Description
 -----------

+ 23 - 1
classes/class_editorinterface.rst

@@ -74,6 +74,8 @@ Methods
 +-----------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                                                      | :ref:`inspect_object<class_EditorInterface_method_inspect_object>` **(** :ref:`Object<class_Object>` object, :ref:`String<class_String>` for_property="", :ref:`bool<class_bool>` inspector_only=false **)**        |
 +-----------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                                   | :ref:`is_movie_maker_enabled<class_EditorInterface_method_is_movie_maker_enabled>` **(** **)** |const|                                                                                                              |
++-----------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`bool<class_bool>`                                   | :ref:`is_playing_scene<class_EditorInterface_method_is_playing_scene>` **(** **)** |const|                                                                                                                          |
 +-----------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`bool<class_bool>`                                   | :ref:`is_plugin_enabled<class_EditorInterface_method_is_plugin_enabled>` **(** :ref:`String<class_String>` plugin **)** |const|                                                                                     |
@@ -100,6 +102,8 @@ Methods
 +-----------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                                                      | :ref:`set_main_screen_editor<class_EditorInterface_method_set_main_screen_editor>` **(** :ref:`String<class_String>` name **)**                                                                                     |
 +-----------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                      | :ref:`set_movie_maker_enabled<class_EditorInterface_method_set_movie_maker_enabled>` **(** :ref:`bool<class_bool>` enabled **)**                                                                                    |
++-----------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                                                      | :ref:`set_plugin_enabled<class_EditorInterface_method_set_plugin_enabled>` **(** :ref:`String<class_String>` plugin, :ref:`bool<class_bool>` enabled **)**                                                          |
 +-----------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                                                      | :ref:`stop_playing_scene<class_EditorInterface_method_stop_playing_scene>` **(** **)**                                                                                                                              |
@@ -197,6 +201,8 @@ Returns the editor control responsible for main screen plugins and tools. Use it
 
 - :ref:`EditorPaths<class_EditorPaths>` **get_editor_paths** **(** **)**
 
+Returns the :ref:`EditorPaths<class_EditorPaths>` singleton.
+
 ----
 
 .. _class_EditorInterface_method_get_editor_scale:
@@ -303,6 +309,14 @@ Shows the given property on the given ``object`` in the editor's Inspector dock.
 
 ----
 
+.. _class_EditorInterface_method_is_movie_maker_enabled:
+
+- :ref:`bool<class_bool>` **is_movie_maker_enabled** **(** **)** |const|
+
+Returns ``true`` if Movie Maker mode is enabled in the editor. See also :ref:`set_movie_maker_enabled<class_EditorInterface_method_set_movie_maker_enabled>`. See :ref:`MovieWriter<class_MovieWriter>` for more information.
+
+----
+
 .. _class_EditorInterface_method_is_playing_scene:
 
 - :ref:`bool<class_bool>` **is_playing_scene** **(** **)** |const|
@@ -379,7 +393,7 @@ Restarts the editor. This closes the editor and then opens the same project. If
 
 - :ref:`Error<enum_@GlobalScope_Error>` **save_scene** **(** **)**
 
-Saves the scene. Returns either ``OK`` or ``ERR_CANT_CREATE`` (see :ref:`@GlobalScope<class_@GlobalScope>` constants).
+Saves the scene. Returns either :ref:`@GlobalScope.OK<class_@GlobalScope_constant_OK>` or :ref:`@GlobalScope.ERR_CANT_CREATE<class_@GlobalScope_constant_ERR_CANT_CREATE>`.
 
 ----
 
@@ -407,6 +421,14 @@ Sets the editor's current main screen to the one specified in ``name``. ``name``
 
 ----
 
+.. _class_EditorInterface_method_set_movie_maker_enabled:
+
+- void **set_movie_maker_enabled** **(** :ref:`bool<class_bool>` enabled **)**
+
+Sets whether Movie Maker mode is enabled in the editor. See also :ref:`is_movie_maker_enabled<class_EditorInterface_method_is_movie_maker_enabled>`. See :ref:`MovieWriter<class_MovieWriter>` for more information.
+
+----
+
 .. _class_EditorInterface_method_set_plugin_enabled:
 
 - void **set_plugin_enabled** **(** :ref:`String<class_String>` plugin, :ref:`bool<class_bool>` enabled **)**

+ 16 - 4
classes/class_editorplugin.rst

@@ -172,12 +172,16 @@ Emitted when user changes the workspace (**2D**, **3D**, **Script**, **AssetLib*
 
 - **project_settings_changed** **(** **)**
 
+Emitted when any project setting has changed.
+
 ----
 
 .. _class_EditorPlugin_signal_resource_saved:
 
 - **resource_saved** **(** :ref:`Resource<class_Resource>` resource **)**
 
+Emitted when the given ``resource`` was saved on disc.
+
 ----
 
 .. _class_EditorPlugin_signal_scene_changed:
@@ -422,7 +426,9 @@ You need to enable calling of this method by using :ref:`set_force_draw_over_for
 
 - :ref:`int<class_int>` **_forward_3d_gui_input** **(** :ref:`Camera3D<class_Camera3D>` viewport_camera, :ref:`InputEvent<class_InputEvent>` event **)** |virtual|
 
-Called when there is a root node in the current edited scene, :ref:`_handles<class_EditorPlugin_method__handles>` is implemented, and an :ref:`InputEvent<class_InputEvent>` happens in the 3D viewport. The return value decides whether the :ref:`InputEvent<class_InputEvent>` is consumed or forwarded to other ``EditorPlugin``\ s. See :ref:`AfterGUIInput<enum_EditorPlugin_AfterGUIInput>` for options. Example:
+Called when there is a root node in the current edited scene, :ref:`_handles<class_EditorPlugin_method__handles>` is implemented, and an :ref:`InputEvent<class_InputEvent>` happens in the 3D viewport. The return value decides whether the :ref:`InputEvent<class_InputEvent>` is consumed or forwarded to other ``EditorPlugin``\ s. See :ref:`AfterGUIInput<enum_EditorPlugin_AfterGUIInput>` for options.
+
+\ **Example:**\ 
 
 
 .. tabs::
@@ -443,7 +449,9 @@ Called when there is a root node in the current edited scene, :ref:`_handles<cla
 
 
 
-Must ``return EditorPlugin.AFTER_GUI_INPUT_PASS`` in order to forward the :ref:`InputEvent<class_InputEvent>` to other Editor classes. Example:
+Must ``return EditorPlugin.AFTER_GUI_INPUT_PASS`` in order to forward the :ref:`InputEvent<class_InputEvent>` to other Editor classes.
+
+\ **Example:**\ 
 
 
 .. tabs::
@@ -524,7 +532,9 @@ You need to enable calling of this method by using :ref:`set_force_draw_over_for
 
 - :ref:`bool<class_bool>` **_forward_canvas_gui_input** **(** :ref:`InputEvent<class_InputEvent>` event **)** |virtual|
 
-Called when there is a root node in the current edited scene, :ref:`_handles<class_EditorPlugin_method__handles>` is implemented and an :ref:`InputEvent<class_InputEvent>` happens in the 2D viewport. Intercepts the :ref:`InputEvent<class_InputEvent>`, if ``return true`` ``EditorPlugin`` consumes the ``event``, otherwise forwards ``event`` to other Editor classes. Example:
+Called when there is a root node in the current edited scene, :ref:`_handles<class_EditorPlugin_method__handles>` is implemented and an :ref:`InputEvent<class_InputEvent>` happens in the 2D viewport. Intercepts the :ref:`InputEvent<class_InputEvent>`, if ``return true`` ``EditorPlugin`` consumes the ``event``, otherwise forwards ``event`` to other Editor classes.
+
+\ **Example:**\ 
 
 
 .. tabs::
@@ -545,7 +555,9 @@ Called when there is a root node in the current edited scene, :ref:`_handles<cla
 
 
 
-Must ``return false`` in order to forward the :ref:`InputEvent<class_InputEvent>` to other Editor classes. Example:
+Must ``return false`` in order to forward the :ref:`InputEvent<class_InputEvent>` to other Editor classes.
+
+\ **Example:**\ 
 
 
 .. tabs::

+ 2 - 0
classes/class_editorproperty.rst

@@ -326,6 +326,8 @@ Puts the ``editor`` control below the property label. The control must be previo
 
 - void **update_property** **(** **)**
 
+Forces refresh of the property display.
+
 .. |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 - 0
classes/class_editorscript.rst

@@ -52,6 +52,8 @@ Scripts extending this class and implementing its :ref:`_run<class_EditorScript_
 
 \ **Note:** The script is run in the Editor context, which means the output is visible in the console window started with the Editor (stdout) instead of the usual Godot **Output** dock.
 
+\ **Note:** EditorScript is :ref:`RefCounted<class_RefCounted>`, meaning it is destroyed when nothing references it. This can cause errors during asynchronous operations if there are no references to the script.
+
 Methods
 -------
 

+ 28 - 12
classes/class_editorsettings.rst

@@ -220,6 +220,8 @@ Properties
 +-------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`bool<class_bool>`       | :ref:`filesystem/on_save/safe_save_on_backup_then_rename<class_EditorSettings_property_filesystem/on_save/safe_save_on_backup_then_rename>`                                         |
 +-------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`         | :ref:`interface/editor/accept_dialog_cancel_ok_buttons<class_EditorSettings_property_interface/editor/accept_dialog_cancel_ok_buttons>`                                             |
++-------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`bool<class_bool>`       | :ref:`interface/editor/automatically_open_screenshots<class_EditorSettings_property_interface/editor/automatically_open_screenshots>`                                               |
 +-------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`String<class_String>`   | :ref:`interface/editor/code_font<class_EditorSettings_property_interface/editor/code_font>`                                                                                         |
@@ -597,7 +599,7 @@ The thumbnail size to use in the FileSystem dock (in pixels). See also :ref:`fil
 
 - :ref:`float<class_float>` **docks/property_editor/auto_refresh_interval**
 
-The refresh interval to use for the inspector dock's properties. The effect of this setting is mainly noticeable when adjusting gizmos in the 2D/3D editor and looking at the inspector at the same time. Lower values make the inspector more often, but take up more CPU time.
+The refresh interval to use for the Inspector dock's properties. The effect of this setting is mainly noticeable when adjusting gizmos in the 2D/3D editor and looking at the inspector at the same time. Lower values make the inspector more often, but take up more CPU time.
 
 ----
 
@@ -605,7 +607,7 @@ The refresh interval to use for the inspector dock's properties. The effect of t
 
 - :ref:`float<class_float>` **docks/property_editor/subresource_hue_tint**
 
-The tint intensity to use for the subresources background in the inspector dock. The tint is used to distinguish between different subresources in the inspector. Higher values result in a more noticeable background color difference.
+The tint intensity to use for the subresources background in the Inspector dock. The tint is used to distinguish between different subresources in the inspector. Higher values result in a more noticeable background color difference.
 
 ----
 
@@ -1031,7 +1033,7 @@ The color to use for the selection box that surrounds selected nodes in the 3D e
 
 - :ref:`Color<class_Color>` **editors/3d_gizmos/gizmo_colors/instantiated**
 
-The color override to use for 3D editor gizmos if the :ref:`Node3D<class_Node3D>` in question is part of an instanced scene file (from the perspective of the current scene).
+The color override to use for 3D editor gizmos if the :ref:`Node3D<class_Node3D>` in question is part of an instantiated scene file (from the perspective of the current scene).
 
 ----
 
@@ -1277,6 +1279,20 @@ If ``true``, when saving a file, the editor will rename the old file to a differ
 
 ----
 
+.. _class_EditorSettings_property_interface/editor/accept_dialog_cancel_ok_buttons:
+
+- :ref:`int<class_int>` **interface/editor/accept_dialog_cancel_ok_buttons**
+
+How to position the Cancel and OK buttons in the editor's :ref:`AcceptDialog<class_AcceptDialog>`\ s. Different platforms have different standard behaviors for this, which can be overridden using this setting. This is useful if you use Godot both on Windows and macOS/Linux and your Godot muscle memory is stronger than your OS specific one.
+
+- **Auto** follows the platform convention: Cancel first on macOS and Linux, OK first on Windows.
+
+- **Cancel First** forces the ordering Cancel/OK.
+
+- **OK First** forces the ordering OK/Cancel.
+
+----
+
 .. _class_EditorSettings_property_interface/editor/automatically_open_screenshots:
 
 - :ref:`bool<class_bool>` **interface/editor/automatically_open_screenshots**
@@ -1411,7 +1427,7 @@ If set to **Auto**, the font hinting mode will be set to match the current opera
 
 - :ref:`int<class_int>` **interface/editor/font_subpixel_positioning**
 
-The subpixel positioning mode to use when rendering editor font glyphs. This affects both the main and code fonts. **Disabled** is the fastest to render and uses the least memory. **Auto** only uses subpixel positioning for small font sizes (where the benefit is the most noticeable). **One half of a pixel** and **One quarter of a pixel** force the same subpixel positioning mode for all editor fonts, regardless of their size (with **One quarter of a pixel** being the highest-quality option).
+The subpixel positioning mode to use when rendering editor font glyphs. This affects both the main and code fonts. **Disabled** is the fastest to render and uses the least memory. **Auto** only uses subpixel positioning for small font sizes (where the benefit is the most noticeable). **One Half of a Pixel** and **One Quarter of a Pixel** force the same subpixel positioning mode for all editor fonts, regardless of their size (with **One Quarter of a Pixel** being the highest-quality option).
 
 ----
 
@@ -1835,7 +1851,7 @@ If ``true``, displays line length guidelines to help you keep line lengths in ch
 
 - :ref:`bool<class_bool>` **text_editor/appearance/gutters/highlight_type_safe_lines**
 
-If ``true``, highlights type-safe lines by displaying their line number color with :ref:`text_editor/theme/highlighting/safe_line_number_color<class_EditorSettings_property_text_editor/theme/highlighting/safe_line_number_color>` instead of :ref:`text_editor/theme/highlighting/line_number_color<class_EditorSettings_property_text_editor/theme/highlighting/line_number_color>`. Type-safe lines are lines of code where the type of all variables is known at compile-time. These type-safe lines will run faster in Godot 4.0 and later thanks to typed instructions.
+If ``true``, highlights type-safe lines by displaying their line number color with :ref:`text_editor/theme/highlighting/safe_line_number_color<class_EditorSettings_property_text_editor/theme/highlighting/safe_line_number_color>` instead of :ref:`text_editor/theme/highlighting/line_number_color<class_EditorSettings_property_text_editor/theme/highlighting/line_number_color>`. Type-safe lines are lines of code where the type of all variables is known at compile-time. These type-safe lines may run faster thanks to typed instructions.
 
 ----
 
@@ -1851,7 +1867,7 @@ If ``true``, displays line numbers with zero padding (e.g. ``007`` instead of ``
 
 - :ref:`bool<class_bool>` **text_editor/appearance/gutters/show_bookmark_gutter**
 
-If ``true``, displays a gutter at the left containing icons for bookmarks.
+If ``true``, displays icons for bookmarks in a gutter at the left. Bookmarks remain functional when this setting is disabled.
 
 ----
 
@@ -1867,7 +1883,7 @@ If ``true``, displays a gutter at the left containing icons for methods with sig
 
 - :ref:`bool<class_bool>` **text_editor/appearance/gutters/show_line_numbers**
 
-If ``true``, displays line numbers in the gutter at the left.
+If ``true``, displays line numbers in a gutter at the left.
 
 ----
 
@@ -2049,7 +2065,7 @@ The number of pixels to scroll with every mouse wheel increment. Higher values m
 
 - :ref:`bool<class_bool>` **text_editor/completion/add_type_hints**
 
-If ``true``, adds static typing hints such as ``-> void`` and ``: int`` when performing method definition autocompletion.
+If ``true``, adds static typing hints such as ``-> void`` and ``: int`` when using code autocompletion or when creating onready variables by drag and dropping nodes into the script editor while pressing the :kbd:`Ctrl` key.
 
 ----
 
@@ -2183,7 +2199,7 @@ The script editor's background color. If set to a translucent color, the editor
 
 - :ref:`Color<class_Color>` **text_editor/theme/highlighting/base_type_color**
 
-The script editor's base type color (used for types like :ref:`Vector2<class_Vector2>`, :ref:`Vector3<class_Vector3>`, ...).
+The script editor's base type color (used for types like :ref:`Vector2<class_Vector2>`, :ref:`Vector3<class_Vector3>`, :ref:`Color<class_Color>`, ...).
 
 ----
 
@@ -2341,7 +2357,7 @@ The script editor's function call color.
 
 - :ref:`Color<class_Color>` **text_editor/theme/highlighting/keyword_color**
 
-The script editor's non-control flow keyword color (used for keywords like ``var``, ``func``, some built-in methods, ...).
+The script editor's non-control flow keyword color (used for keywords like ``var``, ``func``, ``extends``, ...).
 
 ----
 
@@ -2349,7 +2365,7 @@ The script editor's non-control flow keyword color (used for keywords like ``var
 
 - :ref:`Color<class_Color>` **text_editor/theme/highlighting/line_length_guideline_color**
 
-The script editor's color for the line length guideline. The "hard" line length guideline will be drawn with this color, whereas the "soft" line length guideline will be drawn with an opacity twice as low.
+The script editor's color for the line length guideline. The "hard" line length guideline will be drawn with this color, whereas the "soft" line length guideline will be drawn with half of its opacity.
 
 ----
 
@@ -2457,7 +2473,7 @@ The script editor's background color for text. This should be set to a transluce
 
 - :ref:`Color<class_Color>` **text_editor/theme/highlighting/user_type_color**
 
-The script editor's color for user-defined types (using ``@class_name``).
+The script editor's color for user-defined types (using ``class_name``).
 
 ----
 

+ 19 - 11
classes/class_editorspinslider.rst

@@ -22,17 +22,19 @@ This :ref:`Control<class_Control>` node is used in the editor's Inspector dock t
 Properties
 ----------
 
-+-----------------------------+-----------------------------------------------------------------+-----------+
-| :ref:`bool<class_bool>`     | :ref:`flat<class_EditorSpinSlider_property_flat>`               | ``false`` |
-+-----------------------------+-----------------------------------------------------------------+-----------+
-| :ref:`bool<class_bool>`     | :ref:`hide_slider<class_EditorSpinSlider_property_hide_slider>` | ``false`` |
-+-----------------------------+-----------------------------------------------------------------+-----------+
-| :ref:`String<class_String>` | :ref:`label<class_EditorSpinSlider_property_label>`             | ``""``    |
-+-----------------------------+-----------------------------------------------------------------+-----------+
-| :ref:`bool<class_bool>`     | :ref:`read_only<class_EditorSpinSlider_property_read_only>`     | ``false`` |
-+-----------------------------+-----------------------------------------------------------------+-----------+
-| :ref:`String<class_String>` | :ref:`suffix<class_EditorSpinSlider_property_suffix>`           | ``""``    |
-+-----------------------------+-----------------------------------------------------------------+-----------+
++------------------------------------------+-----------------------------------------------------------------+---------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                  | :ref:`flat<class_EditorSpinSlider_property_flat>`               | ``false``                                                           |
++------------------------------------------+-----------------------------------------------------------------+---------------------------------------------------------------------+
+| :ref:`FocusMode<enum_Control_FocusMode>` | focus_mode                                                      | ``2`` (overrides :ref:`Control<class_Control_property_focus_mode>`) |
++------------------------------------------+-----------------------------------------------------------------+---------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                  | :ref:`hide_slider<class_EditorSpinSlider_property_hide_slider>` | ``false``                                                           |
++------------------------------------------+-----------------------------------------------------------------+---------------------------------------------------------------------+
+| :ref:`String<class_String>`              | :ref:`label<class_EditorSpinSlider_property_label>`             | ``""``                                                              |
++------------------------------------------+-----------------------------------------------------------------+---------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                  | :ref:`read_only<class_EditorSpinSlider_property_read_only>`     | ``false``                                                           |
++------------------------------------------+-----------------------------------------------------------------+---------------------------------------------------------------------+
+| :ref:`String<class_String>`              | :ref:`suffix<class_EditorSpinSlider_property_suffix>`           | ``""``                                                              |
++------------------------------------------+-----------------------------------------------------------------+---------------------------------------------------------------------+
 
 Property Descriptions
 ---------------------
@@ -49,6 +51,8 @@ Property Descriptions
 | *Getter*  | is_flat()       |
 +-----------+-----------------+
 
+If ``true``, the slider will not draw background.
+
 ----
 
 .. _class_EditorSpinSlider_property_hide_slider:
@@ -79,6 +83,8 @@ If ``true``, the slider is hidden.
 | *Getter*  | get_label()      |
 +-----------+------------------+
 
+The text that displays to the left of the value.
+
 ----
 
 .. _class_EditorSpinSlider_property_read_only:
@@ -93,6 +99,8 @@ If ``true``, the slider is hidden.
 | *Getter*  | is_read_only()       |
 +-----------+----------------------+
 
+If ``true``, the slider can't be interacted with.
+
 ----
 
 .. _class_EditorSpinSlider_property_suffix:

+ 17 - 0
classes/class_editorundoredomanager.rst

@@ -56,6 +56,23 @@ Methods
 | :ref:`bool<class_bool>`         | :ref:`is_committing_action<class_EditorUndoRedoManager_method_is_committing_action>` **(** **)** |const|                                                                                                                     |
 +---------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 
+Signals
+-------
+
+.. _class_EditorUndoRedoManager_signal_history_changed:
+
+- **history_changed** **(** **)**
+
+Emitted when the list of actions in any history has changed, either when an action is commited or a history is cleared.
+
+----
+
+.. _class_EditorUndoRedoManager_signal_version_changed:
+
+- **version_changed** **(** **)**
+
+Emitted when the version of any history has changed as a result of undo or redo call.
+
 Enumerations
 ------------
 

+ 5 - 33
classes/class_enetmultiplayerpeer.rst

@@ -31,11 +31,9 @@ Tutorials
 Properties
 ----------
 
-+---------------------------------------------+----------------------------------------------------------------------+----------+
-| :ref:`ENetConnection<class_ENetConnection>` | :ref:`host<class_ENetMultiplayerPeer_property_host>`                 |          |
-+---------------------------------------------+----------------------------------------------------------------------+----------+
-| :ref:`bool<class_bool>`                     | :ref:`server_relay<class_ENetMultiplayerPeer_property_server_relay>` | ``true`` |
-+---------------------------------------------+----------------------------------------------------------------------+----------+
++---------------------------------------------+------------------------------------------------------+
+| :ref:`ENetConnection<class_ENetConnection>` | :ref:`host<class_ENetMultiplayerPeer_property_host>` |
++---------------------------------------------+------------------------------------------------------+
 
 Methods
 -------
@@ -43,8 +41,6 @@ Methods
 +---------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`Error<enum_@GlobalScope_Error>`       | :ref:`add_mesh_peer<class_ENetMultiplayerPeer_method_add_mesh_peer>` **(** :ref:`int<class_int>` peer_id, :ref:`ENetConnection<class_ENetConnection>` host **)**                                                                                                                                         |
 +---------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                        | :ref:`close_connection<class_ENetMultiplayerPeer_method_close_connection>` **(** :ref:`int<class_int>` wait_usec=100 **)**                                                                                                                                                                               |
-+---------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`Error<enum_@GlobalScope_Error>`       | :ref:`create_client<class_ENetMultiplayerPeer_method_create_client>` **(** :ref:`String<class_String>` address, :ref:`int<class_int>` port, :ref:`int<class_int>` channel_count=0, :ref:`int<class_int>` in_bandwidth=0, :ref:`int<class_int>` out_bandwidth=0, :ref:`int<class_int>` local_port=0 **)** |
 +---------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`Error<enum_@GlobalScope_Error>`       | :ref:`create_mesh<class_ENetMultiplayerPeer_method_create_mesh>` **(** :ref:`int<class_int>` unique_id **)**                                                                                                                                                                                             |
@@ -69,22 +65,6 @@ Property Descriptions
 
 The underlying :ref:`ENetConnection<class_ENetConnection>` created after :ref:`create_client<class_ENetMultiplayerPeer_method_create_client>` and :ref:`create_server<class_ENetMultiplayerPeer_method_create_server>`.
 
-----
-
-.. _class_ENetMultiplayerPeer_property_server_relay:
-
-- :ref:`bool<class_bool>` **server_relay**
-
-+-----------+---------------------------------+
-| *Default* | ``true``                        |
-+-----------+---------------------------------+
-| *Setter*  | set_server_relay_enabled(value) |
-+-----------+---------------------------------+
-| *Getter*  | is_server_relay_enabled()       |
-+-----------+---------------------------------+
-
-Enable or disable the server feature that notifies clients of other peers' connection/disconnection, and relays messages between them. When this option is ``false``, clients won't be automatically notified of other peers and won't be able to send them packets through the server.
-
 Method Descriptions
 -------------------
 
@@ -98,19 +78,11 @@ Add a new remote peer with the given ``peer_id`` connected to the given ``host``
 
 ----
 
-.. _class_ENetMultiplayerPeer_method_close_connection:
-
-- void **close_connection** **(** :ref:`int<class_int>` wait_usec=100 **)**
-
-Closes the connection. Ignored if no connection is currently established. If this is a server it tries to notify all clients before forcibly disconnecting them. If this is a client it simply closes the connection to the server.
-
-----
-
 .. _class_ENetMultiplayerPeer_method_create_client:
 
 - :ref:`Error<enum_@GlobalScope_Error>` **create_client** **(** :ref:`String<class_String>` address, :ref:`int<class_int>` port, :ref:`int<class_int>` channel_count=0, :ref:`int<class_int>` in_bandwidth=0, :ref:`int<class_int>` out_bandwidth=0, :ref:`int<class_int>` local_port=0 **)**
 
-Create client that connects to a server at ``address`` using specified ``port``. The given address needs to be either a fully qualified domain name (e.g. ``"www.example.com"``) or an IP address in IPv4 or IPv6 format (e.g. ``"192.168.1.1"``). The ``port`` is the port the server is listening on. The ``channel_count`` parameter can be used to specify the number of ENet channels allocated for the connection. The ``in_bandwidth`` and ``out_bandwidth`` parameters can be used to limit the incoming and outgoing bandwidth to the given number of bytes per second. The default of 0 means unlimited bandwidth. Note that ENet will strategically drop packets on specific sides of a connection between peers to ensure the peer's bandwidth is not overwhelmed. The bandwidth parameters also determine the window size of a connection which limits the amount of reliable packets that may be in transit at any given time. Returns :ref:`@GlobalScope.OK<class_@GlobalScope_constant_OK>` if a client was created, :ref:`@GlobalScope.ERR_ALREADY_IN_USE<class_@GlobalScope_constant_ERR_ALREADY_IN_USE>` if this ENetMultiplayerPeer instance already has an open connection (in which case you need to call :ref:`close_connection<class_ENetMultiplayerPeer_method_close_connection>` first) or :ref:`@GlobalScope.ERR_CANT_CREATE<class_@GlobalScope_constant_ERR_CANT_CREATE>` if the client could not be created. If ``local_port`` is specified, the client will also listen to the given port; this is useful for some NAT traversal techniques.
+Create client that connects to a server at ``address`` using specified ``port``. The given address needs to be either a fully qualified domain name (e.g. ``"www.example.com"``) or an IP address in IPv4 or IPv6 format (e.g. ``"192.168.1.1"``). The ``port`` is the port the server is listening on. The ``channel_count`` parameter can be used to specify the number of ENet channels allocated for the connection. The ``in_bandwidth`` and ``out_bandwidth`` parameters can be used to limit the incoming and outgoing bandwidth to the given number of bytes per second. The default of 0 means unlimited bandwidth. Note that ENet will strategically drop packets on specific sides of a connection between peers to ensure the peer's bandwidth is not overwhelmed. The bandwidth parameters also determine the window size of a connection which limits the amount of reliable packets that may be in transit at any given time. Returns :ref:`@GlobalScope.OK<class_@GlobalScope_constant_OK>` if a client was created, :ref:`@GlobalScope.ERR_ALREADY_IN_USE<class_@GlobalScope_constant_ERR_ALREADY_IN_USE>` if this ENetMultiplayerPeer instance already has an open connection (in which case you need to call :ref:`MultiplayerPeer.close<class_MultiplayerPeer_method_close>` first) or :ref:`@GlobalScope.ERR_CANT_CREATE<class_@GlobalScope_constant_ERR_CANT_CREATE>` if the client could not be created. If ``local_port`` is specified, the client will also listen to the given port; this is useful for some NAT traversal techniques.
 
 ----
 
@@ -126,7 +98,7 @@ Initialize this :ref:`MultiplayerPeer<class_MultiplayerPeer>` in mesh mode. The
 
 - :ref:`Error<enum_@GlobalScope_Error>` **create_server** **(** :ref:`int<class_int>` port, :ref:`int<class_int>` max_clients=32, :ref:`int<class_int>` max_channels=0, :ref:`int<class_int>` in_bandwidth=0, :ref:`int<class_int>` out_bandwidth=0 **)**
 
-Create server that listens to connections via ``port``. The port needs to be an available, unused port between 0 and 65535. Note that ports below 1024 are privileged and may require elevated permissions depending on the platform. To change the interface the server listens on, use :ref:`set_bind_ip<class_ENetMultiplayerPeer_method_set_bind_ip>`. The default IP is the wildcard ``"*"``, which listens on all available interfaces. ``max_clients`` is the maximum number of clients that are allowed at once, any number up to 4095 may be used, although the achievable number of simultaneous clients may be far lower and depends on the application. For additional details on the bandwidth parameters, see :ref:`create_client<class_ENetMultiplayerPeer_method_create_client>`. Returns :ref:`@GlobalScope.OK<class_@GlobalScope_constant_OK>` if a server was created, :ref:`@GlobalScope.ERR_ALREADY_IN_USE<class_@GlobalScope_constant_ERR_ALREADY_IN_USE>` if this ENetMultiplayerPeer instance already has an open connection (in which case you need to call :ref:`close_connection<class_ENetMultiplayerPeer_method_close_connection>` first) or :ref:`@GlobalScope.ERR_CANT_CREATE<class_@GlobalScope_constant_ERR_CANT_CREATE>` if the server could not be created.
+Create server that listens to connections via ``port``. The port needs to be an available, unused port between 0 and 65535. Note that ports below 1024 are privileged and may require elevated permissions depending on the platform. To change the interface the server listens on, use :ref:`set_bind_ip<class_ENetMultiplayerPeer_method_set_bind_ip>`. The default IP is the wildcard ``"*"``, which listens on all available interfaces. ``max_clients`` is the maximum number of clients that are allowed at once, any number up to 4095 may be used, although the achievable number of simultaneous clients may be far lower and depends on the application. For additional details on the bandwidth parameters, see :ref:`create_client<class_ENetMultiplayerPeer_method_create_client>`. Returns :ref:`@GlobalScope.OK<class_@GlobalScope_constant_OK>` if a server was created, :ref:`@GlobalScope.ERR_ALREADY_IN_USE<class_@GlobalScope_constant_ERR_ALREADY_IN_USE>` if this ENetMultiplayerPeer instance already has an open connection (in which case you need to call :ref:`MultiplayerPeer.close<class_MultiplayerPeer_method_close>` first) or :ref:`@GlobalScope.ERR_CANT_CREATE<class_@GlobalScope_constant_ERR_CANT_CREATE>` if the server could not be created.
 
 ----
 

+ 22 - 22
classes/class_enetpacketpeer.rst

@@ -90,25 +90,25 @@ Enumerations
 
 enum **PeerState**:
 
-- **STATE_DISCONNECTED** = **0**
+- **STATE_DISCONNECTED** = **0** --- The peer is disconnected.
 
-- **STATE_CONNECTING** = **1**
+- **STATE_CONNECTING** = **1** --- The peer is currently attempting to connect.
 
-- **STATE_ACKNOWLEDGING_CONNECT** = **2**
+- **STATE_ACKNOWLEDGING_CONNECT** = **2** --- The peer has acknowledged the connection request.
 
-- **STATE_CONNECTION_PENDING** = **3**
+- **STATE_CONNECTION_PENDING** = **3** --- The peer is currently connecting.
 
-- **STATE_CONNECTION_SUCCEEDED** = **4**
+- **STATE_CONNECTION_SUCCEEDED** = **4** --- The peer has successfully connected, but is not ready to communicate with yet (:ref:`STATE_CONNECTED<class_ENetPacketPeer_constant_STATE_CONNECTED>`).
 
-- **STATE_CONNECTED** = **5**
+- **STATE_CONNECTED** = **5** --- The peer is currently connected and ready to communicate with.
 
-- **STATE_DISCONNECT_LATER** = **6**
+- **STATE_DISCONNECT_LATER** = **6** --- The peer is slated to disconnect after it has no more outgoing packets to send.
 
-- **STATE_DISCONNECTING** = **7**
+- **STATE_DISCONNECTING** = **7** --- The peer is currently disconnecting.
 
-- **STATE_ACKNOWLEDGING_DISCONNECT** = **8**
+- **STATE_ACKNOWLEDGING_DISCONNECT** = **8** --- The peer has acknowledged the disconnection request.
 
-- **STATE_ZOMBIE** = **9**
+- **STATE_ZOMBIE** = **9** --- The peer has lost connection, but is not considered truly disconnected (as the peer didn't acknowledge the disconnection request).
 
 ----
 
@@ -148,7 +148,7 @@ enum **PeerStatistic**:
 
 - **PEER_PACKET_LOSS_VARIANCE** = **1** --- Packet loss variance.
 
-- **PEER_PACKET_LOSS_EPOCH** = **2**
+- **PEER_PACKET_LOSS_EPOCH** = **2** --- The time at which packet loss statistics were last updated (in milliseconds since the connection started). The interval for packet loss statistics updates is 10 seconds, and at least one packet must have been sent since the last statistics update.
 
 - **PEER_ROUND_TRIP_TIME** = **3** --- Mean packet round trip time for reliable packets.
 
@@ -158,19 +158,19 @@ enum **PeerStatistic**:
 
 - **PEER_LAST_ROUND_TRIP_TIME_VARIANCE** = **6** --- Variance of the last trip time recorded.
 
-- **PEER_PACKET_THROTTLE** = **7**
+- **PEER_PACKET_THROTTLE** = **7** --- The peer's current throttle status.
 
-- **PEER_PACKET_THROTTLE_LIMIT** = **8**
+- **PEER_PACKET_THROTTLE_LIMIT** = **8** --- The maximum number of unreliable packets that should not be dropped. This value is always greater than or equal to ``1``. The initial value is equal to :ref:`PACKET_THROTTLE_SCALE<class_ENetPacketPeer_constant_PACKET_THROTTLE_SCALE>`.
 
-- **PEER_PACKET_THROTTLE_COUNTER** = **9**
+- **PEER_PACKET_THROTTLE_COUNTER** = **9** --- Internal value used to increment the packet throttle counter. The value is hardcoded to ``7`` and cannot be changed. You probably want to look at :ref:`PEER_PACKET_THROTTLE_ACCELERATION<class_ENetPacketPeer_constant_PEER_PACKET_THROTTLE_ACCELERATION>` instead.
 
-- **PEER_PACKET_THROTTLE_EPOCH** = **10**
+- **PEER_PACKET_THROTTLE_EPOCH** = **10** --- The time at which throttle statistics were last updated (in milliseconds since the connection started). The interval for throttle statistics updates is :ref:`PEER_PACKET_THROTTLE_INTERVAL<class_ENetPacketPeer_constant_PEER_PACKET_THROTTLE_INTERVAL>`.
 
-- **PEER_PACKET_THROTTLE_ACCELERATION** = **11**
+- **PEER_PACKET_THROTTLE_ACCELERATION** = **11** --- The throttle's acceleration factor. Higher values will make ENet adapt to fluctuating network conditions faster, causing unrelaible packets to be sent *more* often. The default value is ``2``.
 
-- **PEER_PACKET_THROTTLE_DECELERATION** = **12**
+- **PEER_PACKET_THROTTLE_DECELERATION** = **12** --- The throttle's deceleration factor. Higher values will make ENet adapt to fluctuating network conditions faster, causing unrelaible packets to be sent *less* often. The default value is ``2``.
 
-- **PEER_PACKET_THROTTLE_INTERVAL** = **13**
+- **PEER_PACKET_THROTTLE_INTERVAL** = **13** --- The interval over which the lowest mean round trip time should be measured for use by the throttle mechanism (in milliseconds). The default value is ``5000``.
 
 Constants
 ---------
@@ -187,7 +187,7 @@ Constants
 
 - **PACKET_LOSS_SCALE** = **65536** --- The reference scale for packet loss. See :ref:`get_statistic<class_ENetPacketPeer_method_get_statistic>` and :ref:`PEER_PACKET_LOSS<class_ENetPacketPeer_constant_PEER_PACKET_LOSS>`.
 
-- **PACKET_THROTTLE_SCALE** = **32** --- The reference value for throttle configuration. See :ref:`throttle_configure<class_ENetPacketPeer_method_throttle_configure>`.
+- **PACKET_THROTTLE_SCALE** = **32** --- The reference value for throttle configuration. The default value is ``32``. See :ref:`throttle_configure<class_ENetPacketPeer_method_throttle_configure>`.
 
 - **FLAG_RELIABLE** = **1** --- Mark the packet to be sent as reliable.
 
@@ -282,7 +282,7 @@ Sends a ping request to a peer. ENet automatically pings all connected peers at
 
 - void **ping_interval** **(** :ref:`int<class_int>` ping_interval **)**
 
-Sets the ``ping_interval`` in milliseconds at which pings will be sent to a peer. Pings are used both to monitor the liveness of the connection and also to dynamically adjust the throttle during periods of low traffic so that the throttle has reasonable responsiveness during traffic spikes.
+Sets the ``ping_interval`` in milliseconds at which pings will be sent to a peer. Pings are used both to monitor the liveness of the connection and also to dynamically adjust the throttle during periods of low traffic so that the throttle has reasonable responsiveness during traffic spikes. The default ping interval is ``500`` milliseconds.
 
 ----
 
@@ -318,11 +318,11 @@ The ``timeout_limit`` is a factor that, multiplied by a value based on the avera
 
 Configures throttle parameter for a peer.
 
-Unreliable packets are dropped by ENet in response to the varying conditions of the Internet connection to the peer. The throttle represents a probability that an unreliable packet should not be dropped and thus sent by ENet to the peer. By measuring fluctuations in round trip times of reliable packets over the specified ``interval``, ENet will either increase the probably by the amount specified in the ``acceleration`` parameter, or decrease it by the amount specified in the ``deceleration`` parameter (both are ratios to :ref:`PACKET_THROTTLE_SCALE<class_ENetPacketPeer_constant_PACKET_THROTTLE_SCALE>`).
+Unreliable packets are dropped by ENet in response to the varying conditions of the Internet connection to the peer. The throttle represents a probability that an unreliable packet should not be dropped and thus sent by ENet to the peer. By measuring fluctuations in round trip times of reliable packets over the specified ``interval``, ENet will either increase the probability by the amount specified in the ``acceleration`` parameter, or decrease it by the amount specified in the ``deceleration`` parameter (both are ratios to :ref:`PACKET_THROTTLE_SCALE<class_ENetPacketPeer_constant_PACKET_THROTTLE_SCALE>`).
 
 When the throttle has a value of :ref:`PACKET_THROTTLE_SCALE<class_ENetPacketPeer_constant_PACKET_THROTTLE_SCALE>`, no unreliable packets are dropped by ENet, and so 100% of all unreliable packets will be sent.
 
-When the throttle has a value of 0, all unreliable packets are dropped by ENet, and so 0% of all unreliable packets will be sent.
+When the throttle has a value of ``0``, all unreliable packets are dropped by ENet, and so 0% of all unreliable packets will be sent.
 
 Intermediate values for the throttle represent intermediate probabilities between 0% and 100% of unreliable packets being sent. The bandwidth limits of the local and foreign hosts are taken into account to determine a sensible limit for the throttle probability above which it should not raise even in the best of conditions.
 

+ 12 - 0
classes/class_engine.rst

@@ -376,12 +376,16 @@ Returns the total number of frames passed since engine initialization which is a
 
 - :ref:`ScriptLanguage<class_ScriptLanguage>` **get_script_language** **(** :ref:`int<class_int>` index **)** |const|
 
+Returns an instance of a :ref:`ScriptLanguage<class_ScriptLanguage>` with the given index.
+
 ----
 
 .. _class_Engine_method_get_script_language_count:
 
 - :ref:`int<class_int>` **get_script_language_count** **(** **)**
 
+Returns the number of available script languages. Use with :ref:`get_script_language<class_Engine_method_get_script_language>`.
+
 ----
 
 .. _class_Engine_method_get_singleton:
@@ -396,6 +400,8 @@ Returns a global singleton with given ``name``. Often used for plugins, e.g. God
 
 - :ref:`PackedStringArray<class_PackedStringArray>` **get_singleton_list** **(** **)** |const|
 
+Returns a list of available global singletons.
+
 ----
 
 .. _class_Engine_method_get_version_info:
@@ -508,18 +514,24 @@ Returns ``true`` if the game is inside the fixed process and physics phase of th
 
 - void **register_script_language** **(** :ref:`ScriptLanguage<class_ScriptLanguage>` language **)**
 
+Registers a :ref:`ScriptLanguage<class_ScriptLanguage>` instance to be available with ``ScriptServer``.
+
 ----
 
 .. _class_Engine_method_register_singleton:
 
 - void **register_singleton** **(** :ref:`StringName<class_StringName>` name, :ref:`Object<class_Object>` instance **)**
 
+Registers the given object as a singleton, globally available under ``name``.
+
 ----
 
 .. _class_Engine_method_unregister_singleton:
 
 - void **unregister_singleton** **(** :ref:`StringName<class_StringName>` name **)**
 
+Unregisters the singleton registered under ``name``. The singleton object is not freed. Only works with user-defined singletons created with :ref:`register_singleton<class_Engine_method_register_singleton>`.
+
 .. |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 - 0
classes/class_environment.rst

@@ -1764,6 +1764,8 @@ The base *exponential* density of the volumetric fog. Set this to the lowest den
 
 A value of ``0.0`` disables global volumetric fog while allowing :ref:`FogVolume<class_FogVolume>`\ s to display volumetric fog in specific areas.
 
+To make volumetric fog work as a volumetric *lighting* solution, set :ref:`volumetric_fog_density<class_Environment_property_volumetric_fog_density>` to the lowest non-zero value (``0.0001``) then increase lights' :ref:`Light3D.light_volumetric_fog_energy<class_Light3D_property_light_volumetric_fog_energy>` to values between ``10000`` and ``100000`` to compensate for the very low density.
+
 ----
 
 .. _class_Environment_property_volumetric_fog_detail_spread:

+ 2 - 2
classes/class_expression.rst

@@ -31,7 +31,7 @@ In the following example we use a :ref:`LineEdit<class_LineEdit>` node to write
     var expression = Expression.new()
     
     func _ready():
-        $LineEdit.connect("text_submitted", self, "_on_text_submitted")
+        $LineEdit.text_submitted.connect(self._on_text_submitted)
     
     func _on_text_submitted(command):
         var error = expression.parse(command)
@@ -48,7 +48,7 @@ In the following example we use a :ref:`LineEdit<class_LineEdit>` node to write
     
     public override void _Ready()
     {
-        GetNode("LineEdit").Connect("text_submitted", this, nameof(OnTextEntered));
+        GetNode("LineEdit").TextSubmitted += OnTextEntered;
     }
     
     private void OnTextEntered(string command)

+ 24 - 4
classes/class_float.rst

@@ -210,10 +210,18 @@ Multiplies each component of the :ref:`Vector3i<class_Vector3i>` by the given ``
 
 - :ref:`Vector4<class_Vector4>` **operator *** **(** :ref:`Vector4<class_Vector4>` right **)**
 
+Multiplies each component of the :ref:`Vector4<class_Vector4>` by the given ``float``.
+
 ----
 
 - :ref:`Vector4<class_Vector4>` **operator *** **(** :ref:`Vector4i<class_Vector4i>` right **)**
 
+Multiplies each component of the :ref:`Vector4i<class_Vector4i>` by the given ``float``. Returns a :ref:`Vector4<class_Vector4>`.
+
+::
+
+    print(0.9 * Vector4i(10, 15, 20, -10)) # Prints "(9, 13.5, 18, -9)"
+
 ----
 
 - :ref:`float<class_float>` **operator *** **(** :ref:`float<class_float>` right **)**
@@ -232,10 +240,22 @@ Multiplies a ``float`` and an :ref:`int<class_int>`. The result is a ``float``.
 
 - :ref:`float<class_float>` **operator **** **(** :ref:`float<class_float>` right **)**
 
+Raises a ``float`` to a power of a ``float``.
+
+::
+
+    print(39.0625**0.25) # 2.5
+
 ----
 
 - :ref:`float<class_float>` **operator **** **(** :ref:`int<class_int>` right **)**
 
+Raises a ``float`` to a power of an :ref:`int<class_int>`. The result is a ``float``.
+
+::
+
+    print(0.9**3) # 0.729
+
 ----
 
 .. _class_float_operator_sum_float:
@@ -284,7 +304,7 @@ Divides a ``float`` by an :ref:`int<class_int>`. The result is a ``float``.
 
 - :ref:`bool<class_bool>` **operator <** **(** :ref:`float<class_float>` right **)**
 
-Returns ``true`` the left float is less than the right one.
+Returns ``true`` if the left float is less than the right one.
 
 ----
 
@@ -298,7 +318,7 @@ Returns ``true`` if this ``float`` is less than the given :ref:`int<class_int>`.
 
 - :ref:`bool<class_bool>` **operator <=** **(** :ref:`float<class_float>` right **)**
 
-Returns ``true`` the left integer is less than or equal to the right one.
+Returns ``true`` if the left float is less than or equal to the right one.
 
 ----
 
@@ -328,7 +348,7 @@ Returns ``true`` if the ``float`` and the given :ref:`int<class_int>` are equal.
 
 - :ref:`bool<class_bool>` **operator >** **(** :ref:`float<class_float>` right **)**
 
-Returns ``true`` the left float is greater than the right one.
+Returns ``true`` if the left float is greater than the right one.
 
 ----
 
@@ -342,7 +362,7 @@ Returns ``true`` if this ``float`` is greater than the given :ref:`int<class_int
 
 - :ref:`bool<class_bool>` **operator >=** **(** :ref:`float<class_float>` right **)**
 
-Returns ``true`` the left float is greater than or equal to the right one.
+Returns ``true`` if the left float is greater than or equal to the right one.
 
 ----
 

+ 40 - 3
classes/class_flowcontainer.rst

@@ -26,9 +26,11 @@ A line is filled with :ref:`Control<class_Control>` nodes until no more fit on t
 Properties
 ----------
 
-+-------------------------+--------------------------------------------------------+-----------+
-| :ref:`bool<class_bool>` | :ref:`vertical<class_FlowContainer_property_vertical>` | ``false`` |
-+-------------------------+--------------------------------------------------------+-----------+
++--------------------------------------------------------+----------------------------------------------------------+-----------+
+| :ref:`AlignmentMode<enum_FlowContainer_AlignmentMode>` | :ref:`alignment<class_FlowContainer_property_alignment>` | ``0``     |
++--------------------------------------------------------+----------------------------------------------------------+-----------+
+| :ref:`bool<class_bool>`                                | :ref:`vertical<class_FlowContainer_property_vertical>`   | ``false`` |
++--------------------------------------------------------+----------------------------------------------------------+-----------+
 
 Methods
 -------
@@ -46,9 +48,44 @@ Theme Properties
 | :ref:`int<class_int>` | :ref:`v_separation<class_FlowContainer_theme_constant_v_separation>` | ``4`` |
 +-----------------------+----------------------------------------------------------------------+-------+
 
+Enumerations
+------------
+
+.. _enum_FlowContainer_AlignmentMode:
+
+.. _class_FlowContainer_constant_ALIGNMENT_BEGIN:
+
+.. _class_FlowContainer_constant_ALIGNMENT_CENTER:
+
+.. _class_FlowContainer_constant_ALIGNMENT_END:
+
+enum **AlignmentMode**:
+
+- **ALIGNMENT_BEGIN** = **0** --- The child controls will be arranged at the beginning of the container, i.e. top if orientation is vertical, left if orientation is horizontal (right for RTL layout).
+
+- **ALIGNMENT_CENTER** = **1** --- The child controls will be centered in the container.
+
+- **ALIGNMENT_END** = **2** --- The child controls will be arranged at the end of the container, i.e. bottom if orientation is vertical, right if orientation is horizontal (left for RTL layout).
+
 Property Descriptions
 ---------------------
 
+.. _class_FlowContainer_property_alignment:
+
+- :ref:`AlignmentMode<enum_FlowContainer_AlignmentMode>` **alignment**
+
++-----------+----------------------+
+| *Default* | ``0``                |
++-----------+----------------------+
+| *Setter*  | set_alignment(value) |
++-----------+----------------------+
+| *Getter*  | get_alignment()      |
++-----------+----------------------+
+
+The alignment of the container's children (must be one of :ref:`ALIGNMENT_BEGIN<class_FlowContainer_constant_ALIGNMENT_BEGIN>`, :ref:`ALIGNMENT_CENTER<class_FlowContainer_constant_ALIGNMENT_CENTER>`, or :ref:`ALIGNMENT_END<class_FlowContainer_constant_ALIGNMENT_END>`).
+
+----
+
 .. _class_FlowContainer_property_vertical:
 
 - :ref:`bool<class_bool>` **vertical**

+ 2 - 0
classes/class_fogmaterial.rst

@@ -71,6 +71,8 @@ The single-scattering :ref:`Color<class_Color>` of the :ref:`FogVolume<class_Fog
 
 The density of the :ref:`FogVolume<class_FogVolume>`. Denser objects are more opaque, but may suffer from under-sampling artifacts that look like stripes. Negative values can be used to subtract fog from other :ref:`FogVolume<class_FogVolume>`\ s or global volumetric fog.
 
+\ **Note:** Due to limited precision, :ref:`density<class_FogMaterial_property_density>` values between ``-0.001`` and ``0.001`` (exclusive) act like ``0.0``. This does not apply to :ref:`Environment.volumetric_fog_density<class_Environment_property_volumetric_fog_density>`.
+
 ----
 
 .. _class_FogMaterial_property_density_texture:

+ 3 - 5
classes/class_fontfile.rst

@@ -38,8 +38,6 @@ Supported font formats:
 \ **Note:** If a none of the font data sources contain glyphs for a character used in a string, the character in question will be replaced with a box displaying its hexadecimal code.
 
 
-
-
 .. tabs::
 
  .. code-tab:: gdscript
@@ -477,7 +475,7 @@ Font style name.
 | *Getter*  | get_subpixel_positioning()      |
 +-----------+---------------------------------+
 
-Font glyph sub-pixel positioning mode. Subpixel positioning provides shaper text and better kerning for smaller font sizes, at the cost of memory usage and font rasterization speed. Use :ref:`TextServer.SUBPIXEL_POSITIONING_AUTO<class_TextServer_constant_SUBPIXEL_POSITIONING_AUTO>` to automatically enable it based on the font size.
+Font glyph subpixel positioning mode. Subpixel positioning provides shaper text and better kerning for smaller font sizes, at the cost of memory usage and font rasterization speed. Use :ref:`TextServer.SUBPIXEL_POSITIONING_AUTO<class_TextServer_constant_SUBPIXEL_POSITIONING_AUTO>` to automatically enable it based on the font size.
 
 Method Descriptions
 -------------------
@@ -716,7 +714,7 @@ Returns a copy of the font cache texture image.
 
 - :ref:`PackedInt32Array<class_PackedInt32Array>` **get_texture_offsets** **(** :ref:`int<class_int>` cache_index, :ref:`Vector2i<class_Vector2i>` size, :ref:`int<class_int>` texture_index **)** |const|
 
-Returns a copy of the array containing the first free pixel in the each column of texture. Should be the same size as texture width or empty.
+Returns a copy of the array containing glyph packing data.
 
 ----
 
@@ -956,7 +954,7 @@ Sets font cache texture image.
 
 - void **set_texture_offsets** **(** :ref:`int<class_int>` cache_index, :ref:`Vector2i<class_Vector2i>` size, :ref:`int<class_int>` texture_index, :ref:`PackedInt32Array<class_PackedInt32Array>` offset **)**
 
-Sets array containing the first free pixel in the each column of texture. Should be the same size as texture width or empty (for the fonts without dynamic glyph generation support).
+Sets array containing glyph packing data.
 
 ----
 

+ 0 - 2
classes/class_fontvariation.rst

@@ -19,8 +19,6 @@ Description
 
 OpenType variations, simulated bold / slant, and additional font settings like OpenType features and extra spacing.
 
-
-
 To use simulated bold font variant:
 
 

+ 1 - 1
classes/class_gdscript.rst

@@ -17,7 +17,7 @@ A script implemented in the GDScript programming language.
 Description
 -----------
 
-A script implemented in the GDScript programming language. The script extends the functionality of all objects that instance it.
+A script implemented in the GDScript programming language. The script extends the functionality of all objects that instantiate it.
 
 \ :ref:`new<class_GDScript_method_new>` creates a new instance of the script. :ref:`Object.set_script<class_Object_method_set_script>` extends an existing object, if that object's class matches one of the script's base classes.
 

+ 113 - 89
classes/class_geometryinstance3d.rst

@@ -24,35 +24,35 @@ Base node for geometry-based visual instances. Shares some common functionality
 Properties
 ----------
 
-+---------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+
-| :ref:`ShadowCastingSetting<enum_GeometryInstance3D_ShadowCastingSetting>`       | :ref:`cast_shadow<class_GeometryInstance3D_property_cast_shadow>`                                     |
-+---------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                                                       | :ref:`extra_cull_margin<class_GeometryInstance3D_property_extra_cull_margin>`                         |
-+---------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+
-| :ref:`LightmapScale<enum_GeometryInstance3D_LightmapScale>`                     | :ref:`gi_lightmap_scale<class_GeometryInstance3D_property_gi_lightmap_scale>`                         |
-+---------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+
-| :ref:`GIMode<enum_GeometryInstance3D_GIMode>`                                   | :ref:`gi_mode<class_GeometryInstance3D_property_gi_mode>`                                             |
-+---------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                                                         | :ref:`ignore_occlusion_culling<class_GeometryInstance3D_property_ignore_occlusion_culling>`           |
-+---------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                                                       | :ref:`lod_bias<class_GeometryInstance3D_property_lod_bias>`                                           |
-+---------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+
-| :ref:`Material<class_Material>`                                                 | :ref:`material_overlay<class_GeometryInstance3D_property_material_overlay>`                           |
-+---------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+
-| :ref:`Material<class_Material>`                                                 | :ref:`material_override<class_GeometryInstance3D_property_material_override>`                         |
-+---------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                                                       | :ref:`transparency<class_GeometryInstance3D_property_transparency>`                                   |
-+---------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                                                       | :ref:`visibility_range_begin<class_GeometryInstance3D_property_visibility_range_begin>`               |
-+---------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                                                       | :ref:`visibility_range_begin_margin<class_GeometryInstance3D_property_visibility_range_begin_margin>` |
-+---------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                                                       | :ref:`visibility_range_end<class_GeometryInstance3D_property_visibility_range_end>`                   |
-+---------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                                                       | :ref:`visibility_range_end_margin<class_GeometryInstance3D_property_visibility_range_end_margin>`     |
-+---------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+
-| :ref:`VisibilityRangeFadeMode<enum_GeometryInstance3D_VisibilityRangeFadeMode>` | :ref:`visibility_range_fade_mode<class_GeometryInstance3D_property_visibility_range_fade_mode>`       |
-+---------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+
++---------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+-----------+
+| :ref:`ShadowCastingSetting<enum_GeometryInstance3D_ShadowCastingSetting>`       | :ref:`cast_shadow<class_GeometryInstance3D_property_cast_shadow>`                                     | ``1``     |
++---------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+-----------+
+| :ref:`float<class_float>`                                                       | :ref:`extra_cull_margin<class_GeometryInstance3D_property_extra_cull_margin>`                         | ``0.0``   |
++---------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+-----------+
+| :ref:`LightmapScale<enum_GeometryInstance3D_LightmapScale>`                     | :ref:`gi_lightmap_scale<class_GeometryInstance3D_property_gi_lightmap_scale>`                         | ``0``     |
++---------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+-----------+
+| :ref:`GIMode<enum_GeometryInstance3D_GIMode>`                                   | :ref:`gi_mode<class_GeometryInstance3D_property_gi_mode>`                                             | ``1``     |
++---------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+-----------+
+| :ref:`bool<class_bool>`                                                         | :ref:`ignore_occlusion_culling<class_GeometryInstance3D_property_ignore_occlusion_culling>`           | ``false`` |
++---------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+-----------+
+| :ref:`float<class_float>`                                                       | :ref:`lod_bias<class_GeometryInstance3D_property_lod_bias>`                                           | ``1.0``   |
++---------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+-----------+
+| :ref:`Material<class_Material>`                                                 | :ref:`material_overlay<class_GeometryInstance3D_property_material_overlay>`                           |           |
++---------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+-----------+
+| :ref:`Material<class_Material>`                                                 | :ref:`material_override<class_GeometryInstance3D_property_material_override>`                         |           |
++---------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+-----------+
+| :ref:`float<class_float>`                                                       | :ref:`transparency<class_GeometryInstance3D_property_transparency>`                                   | ``0.0``   |
++---------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+-----------+
+| :ref:`float<class_float>`                                                       | :ref:`visibility_range_begin<class_GeometryInstance3D_property_visibility_range_begin>`               | ``0.0``   |
++---------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+-----------+
+| :ref:`float<class_float>`                                                       | :ref:`visibility_range_begin_margin<class_GeometryInstance3D_property_visibility_range_begin_margin>` | ``0.0``   |
++---------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+-----------+
+| :ref:`float<class_float>`                                                       | :ref:`visibility_range_end<class_GeometryInstance3D_property_visibility_range_end>`                   | ``0.0``   |
++---------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+-----------+
+| :ref:`float<class_float>`                                                       | :ref:`visibility_range_end_margin<class_GeometryInstance3D_property_visibility_range_end_margin>`     | ``0.0``   |
++---------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+-----------+
+| :ref:`VisibilityRangeFadeMode<enum_GeometryInstance3D_VisibilityRangeFadeMode>` | :ref:`visibility_range_fade_mode<class_GeometryInstance3D_property_visibility_range_fade_mode>`       | ``0``     |
++---------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+-----------+
 
 Methods
 -------
@@ -163,11 +163,13 @@ Property Descriptions
 
 - :ref:`ShadowCastingSetting<enum_GeometryInstance3D_ShadowCastingSetting>` **cast_shadow**
 
-+----------+---------------------------------+
-| *Setter* | set_cast_shadows_setting(value) |
-+----------+---------------------------------+
-| *Getter* | get_cast_shadows_setting()      |
-+----------+---------------------------------+
++-----------+---------------------------------+
+| *Default* | ``1``                           |
++-----------+---------------------------------+
+| *Setter*  | set_cast_shadows_setting(value) |
++-----------+---------------------------------+
+| *Getter*  | get_cast_shadows_setting()      |
++-----------+---------------------------------+
 
 The selected shadow casting flag. See :ref:`ShadowCastingSetting<enum_GeometryInstance3D_ShadowCastingSetting>` for possible values.
 
@@ -177,11 +179,13 @@ The selected shadow casting flag. See :ref:`ShadowCastingSetting<enum_GeometryIn
 
 - :ref:`float<class_float>` **extra_cull_margin**
 
-+----------+------------------------------+
-| *Setter* | set_extra_cull_margin(value) |
-+----------+------------------------------+
-| *Getter* | get_extra_cull_margin()      |
-+----------+------------------------------+
++-----------+------------------------------+
+| *Default* | ``0.0``                      |
++-----------+------------------------------+
+| *Setter*  | set_extra_cull_margin(value) |
++-----------+------------------------------+
+| *Getter*  | get_extra_cull_margin()      |
++-----------+------------------------------+
 
 The extra distance added to the GeometryInstance3D's bounding box (:ref:`AABB<class_AABB>`) to increase its cull box.
 
@@ -191,11 +195,13 @@ The extra distance added to the GeometryInstance3D's bounding box (:ref:`AABB<cl
 
 - :ref:`LightmapScale<enum_GeometryInstance3D_LightmapScale>` **gi_lightmap_scale**
 
-+----------+---------------------------+
-| *Setter* | set_lightmap_scale(value) |
-+----------+---------------------------+
-| *Getter* | get_lightmap_scale()      |
-+----------+---------------------------+
++-----------+---------------------------+
+| *Default* | ``0``                     |
++-----------+---------------------------+
+| *Setter*  | set_lightmap_scale(value) |
++-----------+---------------------------+
+| *Getter*  | get_lightmap_scale()      |
++-----------+---------------------------+
 
 The texel density to use for lightmapping in :ref:`LightmapGI<class_LightmapGI>`. Greater scale values provide higher resolution in the lightmap, which can result in sharper shadows for lights that have both direct and indirect light baked. However, greater scale values will also increase the space taken by the mesh in the lightmap texture, which increases the memory, storage, and bake time requirements. When using a single mesh at different scales, consider adjusting this value to keep the lightmap texel density consistent across meshes.
 
@@ -205,11 +211,13 @@ The texel density to use for lightmapping in :ref:`LightmapGI<class_LightmapGI>`
 
 - :ref:`GIMode<enum_GeometryInstance3D_GIMode>` **gi_mode**
 
-+----------+--------------------+
-| *Setter* | set_gi_mode(value) |
-+----------+--------------------+
-| *Getter* | get_gi_mode()      |
-+----------+--------------------+
++-----------+--------------------+
+| *Default* | ``1``              |
++-----------+--------------------+
+| *Setter*  | set_gi_mode(value) |
++-----------+--------------------+
+| *Getter*  | get_gi_mode()      |
++-----------+--------------------+
 
 The global illumination mode to use for the whole geometry. To avoid inconsistent results, use a mode that matches the purpose of the mesh during gameplay (static/dynamic).
 
@@ -221,11 +229,13 @@ The global illumination mode to use for the whole geometry. To avoid inconsisten
 
 - :ref:`bool<class_bool>` **ignore_occlusion_culling**
 
-+----------+-------------------------------------+
-| *Setter* | set_ignore_occlusion_culling(value) |
-+----------+-------------------------------------+
-| *Getter* | is_ignoring_occlusion_culling()     |
-+----------+-------------------------------------+
++-----------+-------------------------------------+
+| *Default* | ``false``                           |
++-----------+-------------------------------------+
+| *Setter*  | set_ignore_occlusion_culling(value) |
++-----------+-------------------------------------+
+| *Getter*  | is_ignoring_occlusion_culling()     |
++-----------+-------------------------------------+
 
 ----
 
@@ -233,11 +243,13 @@ The global illumination mode to use for the whole geometry. To avoid inconsisten
 
 - :ref:`float<class_float>` **lod_bias**
 
-+----------+---------------------+
-| *Setter* | set_lod_bias(value) |
-+----------+---------------------+
-| *Getter* | get_lod_bias()      |
-+----------+---------------------+
++-----------+---------------------+
+| *Default* | ``1.0``             |
++-----------+---------------------+
+| *Setter*  | set_lod_bias(value) |
++-----------+---------------------+
+| *Getter*  | get_lod_bias()      |
++-----------+---------------------+
 
 ----
 
@@ -277,11 +289,13 @@ If a material is assigned to this property, it will be used instead of any mater
 
 - :ref:`float<class_float>` **transparency**
 
-+----------+-------------------------+
-| *Setter* | set_transparency(value) |
-+----------+-------------------------+
-| *Getter* | get_transparency()      |
-+----------+-------------------------+
++-----------+-------------------------+
+| *Default* | ``0.0``                 |
++-----------+-------------------------+
+| *Setter*  | set_transparency(value) |
++-----------+-------------------------+
+| *Getter*  | get_transparency()      |
++-----------+-------------------------+
 
 The transparency applied to the whole geometry (as a multiplier of the materials' existing transparency). ``0.0`` is fully opaque, while ``1.0`` is fully transparent. Values greater than ``0.0`` (exclusive) will force the geometry's materials to go through the transparent pipeline, which is slower to render and can exhibit rendering issues due to incorrect transparency sorting. However, unlike using a transparent material, setting :ref:`transparency<class_GeometryInstance3D_property_transparency>` to a value greater than ``0.0`` (exclusive) will *not* disable shadow rendering.
 
@@ -295,11 +309,13 @@ In spatial shaders, ``1.0 - transparency`` is set as the default value of the ``
 
 - :ref:`float<class_float>` **visibility_range_begin**
 
-+----------+-----------------------------------+
-| *Setter* | set_visibility_range_begin(value) |
-+----------+-----------------------------------+
-| *Getter* | get_visibility_range_begin()      |
-+----------+-----------------------------------+
++-----------+-----------------------------------+
+| *Default* | ``0.0``                           |
++-----------+-----------------------------------+
+| *Setter*  | set_visibility_range_begin(value) |
++-----------+-----------------------------------+
+| *Getter*  | get_visibility_range_begin()      |
++-----------+-----------------------------------+
 
 Starting distance from which the GeometryInstance3D will be visible, taking :ref:`visibility_range_begin_margin<class_GeometryInstance3D_property_visibility_range_begin_margin>` into account as well. The default value of 0 is used to disable the range check.
 
@@ -309,11 +325,13 @@ Starting distance from which the GeometryInstance3D will be visible, taking :ref
 
 - :ref:`float<class_float>` **visibility_range_begin_margin**
 
-+----------+------------------------------------------+
-| *Setter* | set_visibility_range_begin_margin(value) |
-+----------+------------------------------------------+
-| *Getter* | get_visibility_range_begin_margin()      |
-+----------+------------------------------------------+
++-----------+------------------------------------------+
+| *Default* | ``0.0``                                  |
++-----------+------------------------------------------+
+| *Setter*  | set_visibility_range_begin_margin(value) |
++-----------+------------------------------------------+
+| *Getter*  | get_visibility_range_begin_margin()      |
++-----------+------------------------------------------+
 
 Margin for the :ref:`visibility_range_begin<class_GeometryInstance3D_property_visibility_range_begin>` threshold. The GeometryInstance3D will only change its visibility state when it goes over or under the :ref:`visibility_range_begin<class_GeometryInstance3D_property_visibility_range_begin>` threshold by this amount.
 
@@ -325,11 +343,13 @@ If :ref:`visibility_range_fade_mode<class_GeometryInstance3D_property_visibility
 
 - :ref:`float<class_float>` **visibility_range_end**
 
-+----------+---------------------------------+
-| *Setter* | set_visibility_range_end(value) |
-+----------+---------------------------------+
-| *Getter* | get_visibility_range_end()      |
-+----------+---------------------------------+
++-----------+---------------------------------+
+| *Default* | ``0.0``                         |
++-----------+---------------------------------+
+| *Setter*  | set_visibility_range_end(value) |
++-----------+---------------------------------+
+| *Getter*  | get_visibility_range_end()      |
++-----------+---------------------------------+
 
 Distance from which the GeometryInstance3D will be hidden, taking :ref:`visibility_range_end_margin<class_GeometryInstance3D_property_visibility_range_end_margin>` into account as well. The default value of 0 is used to disable the range check.
 
@@ -339,11 +359,13 @@ Distance from which the GeometryInstance3D will be hidden, taking :ref:`visibili
 
 - :ref:`float<class_float>` **visibility_range_end_margin**
 
-+----------+----------------------------------------+
-| *Setter* | set_visibility_range_end_margin(value) |
-+----------+----------------------------------------+
-| *Getter* | get_visibility_range_end_margin()      |
-+----------+----------------------------------------+
++-----------+----------------------------------------+
+| *Default* | ``0.0``                                |
++-----------+----------------------------------------+
+| *Setter*  | set_visibility_range_end_margin(value) |
++-----------+----------------------------------------+
+| *Getter*  | get_visibility_range_end_margin()      |
++-----------+----------------------------------------+
 
 Margin for the :ref:`visibility_range_end<class_GeometryInstance3D_property_visibility_range_end>` threshold. The GeometryInstance3D will only change its visibility state when it goes over or under the :ref:`visibility_range_end<class_GeometryInstance3D_property_visibility_range_end>` threshold by this amount.
 
@@ -355,11 +377,13 @@ If :ref:`visibility_range_fade_mode<class_GeometryInstance3D_property_visibility
 
 - :ref:`VisibilityRangeFadeMode<enum_GeometryInstance3D_VisibilityRangeFadeMode>` **visibility_range_fade_mode**
 
-+----------+---------------------------------------+
-| *Setter* | set_visibility_range_fade_mode(value) |
-+----------+---------------------------------------+
-| *Getter* | get_visibility_range_fade_mode()      |
-+----------+---------------------------------------+
++-----------+---------------------------------------+
+| *Default* | ``0``                                 |
++-----------+---------------------------------------+
+| *Setter*  | set_visibility_range_fade_mode(value) |
++-----------+---------------------------------------+
+| *Getter*  | get_visibility_range_fade_mode()      |
++-----------+---------------------------------------+
 
 Controls which instances will be faded when approaching the limits of the visibility range. See :ref:`VisibilityRangeFadeMode<enum_GeometryInstance3D_VisibilityRangeFadeMode>` for possible values.
 

+ 30 - 0
classes/class_gltfnode.rst

@@ -55,6 +55,15 @@ Properties
 | :ref:`Transform3D<class_Transform3D>`           | :ref:`xform<class_GLTFNode_property_xform>`       | ``Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)`` |
 +-------------------------------------------------+---------------------------------------------------+-----------------------------------------------------+
 
+Methods
+-------
+
++-------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Variant<class_Variant>` | :ref:`get_additional_data<class_GLTFNode_method_get_additional_data>` **(** :ref:`StringName<class_StringName>` extension_name **)**                                                |
++-------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                          | :ref:`set_additional_data<class_GLTFNode_method_set_additional_data>` **(** :ref:`StringName<class_StringName>` extension_name, :ref:`Variant<class_Variant>` additional_data **)** |
++-------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
 Property Descriptions
 ---------------------
 
@@ -238,6 +247,27 @@ Property Descriptions
 | *Getter*  | get_xform()                                         |
 +-----------+-----------------------------------------------------+
 
+Method Descriptions
+-------------------
+
+.. _class_GLTFNode_method_get_additional_data:
+
+- :ref:`Variant<class_Variant>` **get_additional_data** **(** :ref:`StringName<class_StringName>` extension_name **)**
+
+Gets additional arbitrary data in this ``GLTFNode`` instance. This can be used to keep per-node state data in :ref:`GLTFDocumentExtension<class_GLTFDocumentExtension>` classes, which is important because they are stateless.
+
+The argument should be the :ref:`GLTFDocumentExtension<class_GLTFDocumentExtension>` name (does not have to match the extension name in the GLTF file), and the return value can be anything you set. If nothing was set, the return value is null.
+
+----
+
+.. _class_GLTFNode_method_set_additional_data:
+
+- void **set_additional_data** **(** :ref:`StringName<class_StringName>` extension_name, :ref:`Variant<class_Variant>` additional_data **)**
+
+Sets additional arbitrary data in this ``GLTFNode`` instance. This can be used to keep per-node state data in :ref:`GLTFDocumentExtension<class_GLTFDocumentExtension>` classes, which is important because they are stateless.
+
+The first argument should be the :ref:`GLTFDocumentExtension<class_GLTFDocumentExtension>` name (does not have to match the extension name in the GLTF file), and the second argument can be anything you want.
+
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`

+ 97 - 73
classes/class_gltfstate.rst

@@ -42,79 +42,83 @@ Properties
 Methods
 -------
 
-+-------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                  | :ref:`add_used_extension<class_GLTFState_method_add_used_extension>` **(** :ref:`String<class_String>` extension_name, :ref:`bool<class_bool>` required **)** |
-+-------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`GLTFAccessor[]<class_GLTFAccessor>`             | :ref:`get_accessors<class_GLTFState_method_get_accessors>` **(** **)**                                                                                        |
-+-------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`AnimationPlayer<class_AnimationPlayer>`         | :ref:`get_animation_player<class_GLTFState_method_get_animation_player>` **(** :ref:`int<class_int>` idx **)**                                                |
-+-------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                                 | :ref:`get_animation_players_count<class_GLTFState_method_get_animation_players_count>` **(** :ref:`int<class_int>` idx **)**                                  |
-+-------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`GLTFAnimation[]<class_GLTFAnimation>`           | :ref:`get_animations<class_GLTFState_method_get_animations>` **(** **)**                                                                                      |
-+-------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`GLTFBufferView[]<class_GLTFBufferView>`         | :ref:`get_buffer_views<class_GLTFState_method_get_buffer_views>` **(** **)**                                                                                  |
-+-------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`GLTFCamera[]<class_GLTFCamera>`                 | :ref:`get_cameras<class_GLTFState_method_get_cameras>` **(** **)**                                                                                            |
-+-------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Texture2D[]<class_Texture2D>`                   | :ref:`get_images<class_GLTFState_method_get_images>` **(** **)**                                                                                              |
-+-------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`GLTFLight[]<class_GLTFLight>`                   | :ref:`get_lights<class_GLTFState_method_get_lights>` **(** **)**                                                                                              |
-+-------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`BaseMaterial3D[]<class_BaseMaterial3D>`         | :ref:`get_materials<class_GLTFState_method_get_materials>` **(** **)**                                                                                        |
-+-------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`GLTFMesh[]<class_GLTFMesh>`                     | :ref:`get_meshes<class_GLTFState_method_get_meshes>` **(** **)**                                                                                              |
-+-------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`GLTFNode[]<class_GLTFNode>`                     | :ref:`get_nodes<class_GLTFState_method_get_nodes>` **(** **)**                                                                                                |
-+-------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Node<class_Node>`                               | :ref:`get_scene_node<class_GLTFState_method_get_scene_node>` **(** :ref:`int<class_int>` idx **)**                                                            |
-+-------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Dictionary<class_Dictionary>`                   | :ref:`get_skeleton_to_node<class_GLTFState_method_get_skeleton_to_node>` **(** **)**                                                                          |
-+-------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`GLTFSkeleton[]<class_GLTFSkeleton>`             | :ref:`get_skeletons<class_GLTFState_method_get_skeletons>` **(** **)**                                                                                        |
-+-------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`GLTFSkin[]<class_GLTFSkin>`                     | :ref:`get_skins<class_GLTFState_method_get_skins>` **(** **)**                                                                                                |
-+-------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`GLTFTextureSampler[]<class_GLTFTextureSampler>` | :ref:`get_texture_samplers<class_GLTFState_method_get_texture_samplers>` **(** **)**                                                                          |
-+-------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`GLTFTexture[]<class_GLTFTexture>`               | :ref:`get_textures<class_GLTFState_method_get_textures>` **(** **)**                                                                                          |
-+-------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`String[]<class_String>`                         | :ref:`get_unique_animation_names<class_GLTFState_method_get_unique_animation_names>` **(** **)**                                                              |
-+-------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`String[]<class_String>`                         | :ref:`get_unique_names<class_GLTFState_method_get_unique_names>` **(** **)**                                                                                  |
-+-------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                  | :ref:`set_accessors<class_GLTFState_method_set_accessors>` **(** :ref:`GLTFAccessor[]<class_GLTFAccessor>` accessors **)**                                    |
-+-------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                  | :ref:`set_animations<class_GLTFState_method_set_animations>` **(** :ref:`GLTFAnimation[]<class_GLTFAnimation>` animations **)**                               |
-+-------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                  | :ref:`set_buffer_views<class_GLTFState_method_set_buffer_views>` **(** :ref:`GLTFBufferView[]<class_GLTFBufferView>` buffer_views **)**                       |
-+-------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                  | :ref:`set_cameras<class_GLTFState_method_set_cameras>` **(** :ref:`GLTFCamera[]<class_GLTFCamera>` cameras **)**                                              |
-+-------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                  | :ref:`set_images<class_GLTFState_method_set_images>` **(** :ref:`Texture2D[]<class_Texture2D>` images **)**                                                   |
-+-------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                  | :ref:`set_lights<class_GLTFState_method_set_lights>` **(** :ref:`GLTFLight[]<class_GLTFLight>` lights **)**                                                   |
-+-------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                  | :ref:`set_materials<class_GLTFState_method_set_materials>` **(** :ref:`BaseMaterial3D[]<class_BaseMaterial3D>` materials **)**                                |
-+-------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                  | :ref:`set_meshes<class_GLTFState_method_set_meshes>` **(** :ref:`GLTFMesh[]<class_GLTFMesh>` meshes **)**                                                     |
-+-------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                  | :ref:`set_nodes<class_GLTFState_method_set_nodes>` **(** :ref:`GLTFNode[]<class_GLTFNode>` nodes **)**                                                        |
-+-------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                  | :ref:`set_skeleton_to_node<class_GLTFState_method_set_skeleton_to_node>` **(** :ref:`Dictionary<class_Dictionary>` skeleton_to_node **)**                     |
-+-------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                  | :ref:`set_skeletons<class_GLTFState_method_set_skeletons>` **(** :ref:`GLTFSkeleton[]<class_GLTFSkeleton>` skeletons **)**                                    |
-+-------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                  | :ref:`set_skins<class_GLTFState_method_set_skins>` **(** :ref:`GLTFSkin[]<class_GLTFSkin>` skins **)**                                                        |
-+-------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                  | :ref:`set_texture_samplers<class_GLTFState_method_set_texture_samplers>` **(** :ref:`GLTFTextureSampler[]<class_GLTFTextureSampler>` texture_samplers **)**   |
-+-------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                  | :ref:`set_textures<class_GLTFState_method_set_textures>` **(** :ref:`GLTFTexture[]<class_GLTFTexture>` textures **)**                                         |
-+-------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                  | :ref:`set_unique_animation_names<class_GLTFState_method_set_unique_animation_names>` **(** :ref:`String[]<class_String>` unique_animation_names **)**         |
-+-------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                  | :ref:`set_unique_names<class_GLTFState_method_set_unique_names>` **(** :ref:`String[]<class_String>` unique_names **)**                                       |
-+-------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
++-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                  | :ref:`add_used_extension<class_GLTFState_method_add_used_extension>` **(** :ref:`String<class_String>` extension_name, :ref:`bool<class_bool>` required **)**                        |
++-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`GLTFAccessor[]<class_GLTFAccessor>`             | :ref:`get_accessors<class_GLTFState_method_get_accessors>` **(** **)**                                                                                                               |
++-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Variant<class_Variant>`                         | :ref:`get_additional_data<class_GLTFState_method_get_additional_data>` **(** :ref:`StringName<class_StringName>` extension_name **)**                                                |
++-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`AnimationPlayer<class_AnimationPlayer>`         | :ref:`get_animation_player<class_GLTFState_method_get_animation_player>` **(** :ref:`int<class_int>` idx **)**                                                                       |
++-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                                 | :ref:`get_animation_players_count<class_GLTFState_method_get_animation_players_count>` **(** :ref:`int<class_int>` idx **)**                                                         |
++-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`GLTFAnimation[]<class_GLTFAnimation>`           | :ref:`get_animations<class_GLTFState_method_get_animations>` **(** **)**                                                                                                             |
++-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`GLTFBufferView[]<class_GLTFBufferView>`         | :ref:`get_buffer_views<class_GLTFState_method_get_buffer_views>` **(** **)**                                                                                                         |
++-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`GLTFCamera[]<class_GLTFCamera>`                 | :ref:`get_cameras<class_GLTFState_method_get_cameras>` **(** **)**                                                                                                                   |
++-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Texture2D[]<class_Texture2D>`                   | :ref:`get_images<class_GLTFState_method_get_images>` **(** **)**                                                                                                                     |
++-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`GLTFLight[]<class_GLTFLight>`                   | :ref:`get_lights<class_GLTFState_method_get_lights>` **(** **)**                                                                                                                     |
++-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`BaseMaterial3D[]<class_BaseMaterial3D>`         | :ref:`get_materials<class_GLTFState_method_get_materials>` **(** **)**                                                                                                               |
++-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`GLTFMesh[]<class_GLTFMesh>`                     | :ref:`get_meshes<class_GLTFState_method_get_meshes>` **(** **)**                                                                                                                     |
++-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`GLTFNode[]<class_GLTFNode>`                     | :ref:`get_nodes<class_GLTFState_method_get_nodes>` **(** **)**                                                                                                                       |
++-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Node<class_Node>`                               | :ref:`get_scene_node<class_GLTFState_method_get_scene_node>` **(** :ref:`int<class_int>` idx **)**                                                                                   |
++-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Dictionary<class_Dictionary>`                   | :ref:`get_skeleton_to_node<class_GLTFState_method_get_skeleton_to_node>` **(** **)**                                                                                                 |
++-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`GLTFSkeleton[]<class_GLTFSkeleton>`             | :ref:`get_skeletons<class_GLTFState_method_get_skeletons>` **(** **)**                                                                                                               |
++-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`GLTFSkin[]<class_GLTFSkin>`                     | :ref:`get_skins<class_GLTFState_method_get_skins>` **(** **)**                                                                                                                       |
++-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`GLTFTextureSampler[]<class_GLTFTextureSampler>` | :ref:`get_texture_samplers<class_GLTFState_method_get_texture_samplers>` **(** **)**                                                                                                 |
++-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`GLTFTexture[]<class_GLTFTexture>`               | :ref:`get_textures<class_GLTFState_method_get_textures>` **(** **)**                                                                                                                 |
++-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String[]<class_String>`                         | :ref:`get_unique_animation_names<class_GLTFState_method_get_unique_animation_names>` **(** **)**                                                                                     |
++-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String[]<class_String>`                         | :ref:`get_unique_names<class_GLTFState_method_get_unique_names>` **(** **)**                                                                                                         |
++-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                  | :ref:`set_accessors<class_GLTFState_method_set_accessors>` **(** :ref:`GLTFAccessor[]<class_GLTFAccessor>` accessors **)**                                                           |
++-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                  | :ref:`set_additional_data<class_GLTFState_method_set_additional_data>` **(** :ref:`StringName<class_StringName>` extension_name, :ref:`Variant<class_Variant>` additional_data **)** |
++-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                  | :ref:`set_animations<class_GLTFState_method_set_animations>` **(** :ref:`GLTFAnimation[]<class_GLTFAnimation>` animations **)**                                                      |
++-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                  | :ref:`set_buffer_views<class_GLTFState_method_set_buffer_views>` **(** :ref:`GLTFBufferView[]<class_GLTFBufferView>` buffer_views **)**                                              |
++-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                  | :ref:`set_cameras<class_GLTFState_method_set_cameras>` **(** :ref:`GLTFCamera[]<class_GLTFCamera>` cameras **)**                                                                     |
++-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                  | :ref:`set_images<class_GLTFState_method_set_images>` **(** :ref:`Texture2D[]<class_Texture2D>` images **)**                                                                          |
++-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                  | :ref:`set_lights<class_GLTFState_method_set_lights>` **(** :ref:`GLTFLight[]<class_GLTFLight>` lights **)**                                                                          |
++-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                  | :ref:`set_materials<class_GLTFState_method_set_materials>` **(** :ref:`BaseMaterial3D[]<class_BaseMaterial3D>` materials **)**                                                       |
++-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                  | :ref:`set_meshes<class_GLTFState_method_set_meshes>` **(** :ref:`GLTFMesh[]<class_GLTFMesh>` meshes **)**                                                                            |
++-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                  | :ref:`set_nodes<class_GLTFState_method_set_nodes>` **(** :ref:`GLTFNode[]<class_GLTFNode>` nodes **)**                                                                               |
++-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                  | :ref:`set_skeleton_to_node<class_GLTFState_method_set_skeleton_to_node>` **(** :ref:`Dictionary<class_Dictionary>` skeleton_to_node **)**                                            |
++-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                  | :ref:`set_skeletons<class_GLTFState_method_set_skeletons>` **(** :ref:`GLTFSkeleton[]<class_GLTFSkeleton>` skeletons **)**                                                           |
++-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                  | :ref:`set_skins<class_GLTFState_method_set_skins>` **(** :ref:`GLTFSkin[]<class_GLTFSkin>` skins **)**                                                                               |
++-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                  | :ref:`set_texture_samplers<class_GLTFState_method_set_texture_samplers>` **(** :ref:`GLTFTextureSampler[]<class_GLTFTextureSampler>` texture_samplers **)**                          |
++-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                  | :ref:`set_textures<class_GLTFState_method_set_textures>` **(** :ref:`GLTFTexture[]<class_GLTFTexture>` textures **)**                                                                |
++-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                  | :ref:`set_unique_animation_names<class_GLTFState_method_set_unique_animation_names>` **(** :ref:`String[]<class_String>` unique_animation_names **)**                                |
++-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                  | :ref:`set_unique_names<class_GLTFState_method_set_unique_names>` **(** :ref:`String[]<class_String>` unique_names **)**                                                              |
++-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 
 Property Descriptions
 ---------------------
@@ -274,6 +278,16 @@ Appends an extension to the list of extensions used by this GLTF file during ser
 
 ----
 
+.. _class_GLTFState_method_get_additional_data:
+
+- :ref:`Variant<class_Variant>` **get_additional_data** **(** :ref:`StringName<class_StringName>` extension_name **)**
+
+Gets additional arbitrary data in this ``GLTFState`` instance. This can be used to keep per-file state data in :ref:`GLTFDocumentExtension<class_GLTFDocumentExtension>` classes, which is important because they are stateless.
+
+The argument should be the :ref:`GLTFDocumentExtension<class_GLTFDocumentExtension>` name (does not have to match the extension name in the GLTF file), and the return value can be anything you set. If nothing was set, the return value is null.
+
+----
+
 .. _class_GLTFState_method_get_animation_player:
 
 - :ref:`AnimationPlayer<class_AnimationPlayer>` **get_animation_player** **(** :ref:`int<class_int>` idx **)**
@@ -390,6 +404,16 @@ Retrieves the array of texture samplers that are used by the textures contained
 
 ----
 
+.. _class_GLTFState_method_set_additional_data:
+
+- void **set_additional_data** **(** :ref:`StringName<class_StringName>` extension_name, :ref:`Variant<class_Variant>` additional_data **)**
+
+Sets additional arbitrary data in this ``GLTFState`` instance. This can be used to keep per-file state data in :ref:`GLTFDocumentExtension<class_GLTFDocumentExtension>` classes, which is important because they are stateless.
+
+The first argument should be the :ref:`GLTFDocumentExtension<class_GLTFDocumentExtension>` name (does not have to match the extension name in the GLTF file), and the second argument can be anything you want.
+
+----
+
 .. _class_GLTFState_method_set_animations:
 
 - void **set_animations** **(** :ref:`GLTFAnimation[]<class_GLTFAnimation>` animations **)**

+ 4 - 2
classes/class_gpuparticles2d.rst

@@ -26,7 +26,9 @@ Tutorials
 
 - :doc:`Particle systems (2D) <../tutorials/2d/particle_systems_2d>`
 
-- `2D Dodge The Creeps Demo <https://godotengine.org/asset-library/asset/515>`__
+- `2D Particles Demo <https://godotengine.org/asset-library/asset/118>`__
+
+- `2D Dodge The Creeps Demo (uses GPUParticles2D for the trail behind the player) <https://godotengine.org/asset-library/asset/515>`__
 
 Properties
 ----------
@@ -226,7 +228,7 @@ How rapidly particles in an emission cycle are emitted. If greater than ``0``, t
 | *Getter*  | get_fixed_fps()      |
 +-----------+----------------------+
 
-The particle system's frame rate is fixed to a value. For instance, changing the value to 2 will make the particles render at 2 frames per second. Note this does not slow down the simulation of the particle system itself.
+The particle system's frame rate is fixed to a value. For example, changing the value to 2 will make the particles render at 2 frames per second. Note this does not slow down the simulation of the particle system itself.
 
 ----
 

+ 1 - 1
classes/class_gpuparticles3d.rst

@@ -355,7 +355,7 @@ Time ratio between each emission. If ``0``, particles are emitted continuously.
 | *Getter*  | get_fixed_fps()      |
 +-----------+----------------------+
 
-The particle system's frame rate is fixed to a value. For instance, changing the value to 2 will make the particles render at 2 frames per second. Note this does not slow down the simulation of the particle system itself.
+The particle system's frame rate is fixed to a value. For example, changing the value to 2 will make the particles render at 2 frames per second. Note this does not slow down the simulation of the particle system itself.
 
 ----
 

+ 0 - 2
classes/class_httprequest.rst

@@ -51,7 +51,6 @@ Can be used to make HTTP requests, i.e. download or upload files or web content
         if error != OK:
             push_error("An error occurred in the HTTP request.")
     
-    
     # Called when the HTTP request is completed.
     func _http_request_completed(result, response_code, headers, body):
         var json = JSON.new()
@@ -122,7 +121,6 @@ Can be used to make HTTP requests, i.e. download or upload files or web content
         if error != OK:
             push_error("An error occurred in the HTTP request.")
     
-    
     # Called when the HTTP request is completed.
     func _http_request_completed(result, response_code, headers, body):
         if result != HTTPRequest.RESULT_SUCCESS:

+ 154 - 140
classes/class_image.rst

@@ -38,135 +38,137 @@ Properties
 Methods
 -------
 
-+-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                          | :ref:`adjust_bcs<class_Image_method_adjust_bcs>` **(** :ref:`float<class_float>` brightness, :ref:`float<class_float>` contrast, :ref:`float<class_float>` saturation **)**                                                                                          |
-+-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                          | :ref:`blend_rect<class_Image_method_blend_rect>` **(** :ref:`Image<class_Image>` src, :ref:`Rect2i<class_Rect2i>` src_rect, :ref:`Vector2i<class_Vector2i>` dst **)**                                                                                                |
-+-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                          | :ref:`blend_rect_mask<class_Image_method_blend_rect_mask>` **(** :ref:`Image<class_Image>` src, :ref:`Image<class_Image>` mask, :ref:`Rect2i<class_Rect2i>` src_rect, :ref:`Vector2i<class_Vector2i>` dst **)**                                                      |
-+-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                          | :ref:`blit_rect<class_Image_method_blit_rect>` **(** :ref:`Image<class_Image>` src, :ref:`Rect2i<class_Rect2i>` src_rect, :ref:`Vector2i<class_Vector2i>` dst **)**                                                                                                  |
-+-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                          | :ref:`blit_rect_mask<class_Image_method_blit_rect_mask>` **(** :ref:`Image<class_Image>` src, :ref:`Image<class_Image>` mask, :ref:`Rect2i<class_Rect2i>` src_rect, :ref:`Vector2i<class_Vector2i>` dst **)**                                                        |
-+-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                          | :ref:`bump_map_to_normal_map<class_Image_method_bump_map_to_normal_map>` **(** :ref:`float<class_float>` bump_scale=1.0 **)**                                                                                                                                        |
-+-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                          | :ref:`clear_mipmaps<class_Image_method_clear_mipmaps>` **(** **)**                                                                                                                                                                                                   |
-+-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Error<enum_@GlobalScope_Error>`         | :ref:`compress<class_Image_method_compress>` **(** :ref:`CompressMode<enum_Image_CompressMode>` mode, :ref:`CompressSource<enum_Image_CompressSource>` source=0, :ref:`float<class_float>` lossy_quality=0.7 **)**                                                   |
-+-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Error<enum_@GlobalScope_Error>`         | :ref:`compress_from_channels<class_Image_method_compress_from_channels>` **(** :ref:`CompressMode<enum_Image_CompressMode>` mode, :ref:`UsedChannels<enum_Image_UsedChannels>` channels, :ref:`float<class_float>` lossy_quality=0.7 **)**                           |
-+-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Dictionary<class_Dictionary>`           | :ref:`compute_image_metrics<class_Image_method_compute_image_metrics>` **(** :ref:`Image<class_Image>` compared_image, :ref:`bool<class_bool>` use_luma **)**                                                                                                        |
-+-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                          | :ref:`convert<class_Image_method_convert>` **(** :ref:`Format<enum_Image_Format>` format **)**                                                                                                                                                                       |
-+-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                          | :ref:`copy_from<class_Image_method_copy_from>` **(** :ref:`Image<class_Image>` src **)**                                                                                                                                                                             |
-+-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                          | :ref:`create<class_Image_method_create>` **(** :ref:`int<class_int>` width, :ref:`int<class_int>` height, :ref:`bool<class_bool>` use_mipmaps, :ref:`Format<enum_Image_Format>` format **)**                                                                         |
-+-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                          | :ref:`create_from_data<class_Image_method_create_from_data>` **(** :ref:`int<class_int>` width, :ref:`int<class_int>` height, :ref:`bool<class_bool>` use_mipmaps, :ref:`Format<enum_Image_Format>` format, :ref:`PackedByteArray<class_PackedByteArray>` data **)** |
-+-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                          | :ref:`crop<class_Image_method_crop>` **(** :ref:`int<class_int>` width, :ref:`int<class_int>` height **)**                                                                                                                                                           |
-+-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Error<enum_@GlobalScope_Error>`         | :ref:`decompress<class_Image_method_decompress>` **(** **)**                                                                                                                                                                                                         |
-+-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`AlphaMode<enum_Image_AlphaMode>`        | :ref:`detect_alpha<class_Image_method_detect_alpha>` **(** **)** |const|                                                                                                                                                                                             |
-+-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`UsedChannels<enum_Image_UsedChannels>`  | :ref:`detect_used_channels<class_Image_method_detect_used_channels>` **(** :ref:`CompressSource<enum_Image_CompressSource>` source=0 **)** |const|                                                                                                                   |
-+-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                          | :ref:`fill<class_Image_method_fill>` **(** :ref:`Color<class_Color>` color **)**                                                                                                                                                                                     |
-+-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                          | :ref:`fill_rect<class_Image_method_fill_rect>` **(** :ref:`Rect2i<class_Rect2i>` rect, :ref:`Color<class_Color>` color **)**                                                                                                                                         |
-+-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                          | :ref:`fix_alpha_edges<class_Image_method_fix_alpha_edges>` **(** **)**                                                                                                                                                                                               |
-+-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                          | :ref:`flip_x<class_Image_method_flip_x>` **(** **)**                                                                                                                                                                                                                 |
-+-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                          | :ref:`flip_y<class_Image_method_flip_y>` **(** **)**                                                                                                                                                                                                                 |
-+-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Error<enum_@GlobalScope_Error>`         | :ref:`generate_mipmaps<class_Image_method_generate_mipmaps>` **(** :ref:`bool<class_bool>` renormalize=false **)**                                                                                                                                                   |
-+-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`PackedByteArray<class_PackedByteArray>` | :ref:`get_data<class_Image_method_get_data>` **(** **)** |const|                                                                                                                                                                                                     |
-+-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Format<enum_Image_Format>`              | :ref:`get_format<class_Image_method_get_format>` **(** **)** |const|                                                                                                                                                                                                 |
-+-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                         | :ref:`get_height<class_Image_method_get_height>` **(** **)** |const|                                                                                                                                                                                                 |
-+-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                         | :ref:`get_mipmap_offset<class_Image_method_get_mipmap_offset>` **(** :ref:`int<class_int>` mipmap **)** |const|                                                                                                                                                      |
-+-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Color<class_Color>`                     | :ref:`get_pixel<class_Image_method_get_pixel>` **(** :ref:`int<class_int>` x, :ref:`int<class_int>` y **)** |const|                                                                                                                                                  |
-+-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Color<class_Color>`                     | :ref:`get_pixelv<class_Image_method_get_pixelv>` **(** :ref:`Vector2i<class_Vector2i>` point **)** |const|                                                                                                                                                           |
-+-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Image<class_Image>`                     | :ref:`get_rect<class_Image_method_get_rect>` **(** :ref:`Rect2i<class_Rect2i>` rect **)** |const|                                                                                                                                                                    |
-+-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Vector2i<class_Vector2i>`               | :ref:`get_size<class_Image_method_get_size>` **(** **)** |const|                                                                                                                                                                                                     |
-+-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Rect2i<class_Rect2i>`                   | :ref:`get_used_rect<class_Image_method_get_used_rect>` **(** **)** |const|                                                                                                                                                                                           |
-+-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                         | :ref:`get_width<class_Image_method_get_width>` **(** **)** |const|                                                                                                                                                                                                   |
-+-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                       | :ref:`has_mipmaps<class_Image_method_has_mipmaps>` **(** **)** |const|                                                                                                                                                                                               |
-+-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                       | :ref:`is_compressed<class_Image_method_is_compressed>` **(** **)** |const|                                                                                                                                                                                           |
-+-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                       | :ref:`is_empty<class_Image_method_is_empty>` **(** **)** |const|                                                                                                                                                                                                     |
-+-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                       | :ref:`is_invisible<class_Image_method_is_invisible>` **(** **)** |const|                                                                                                                                                                                             |
-+-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Error<enum_@GlobalScope_Error>`         | :ref:`load<class_Image_method_load>` **(** :ref:`String<class_String>` path **)**                                                                                                                                                                                    |
-+-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Error<enum_@GlobalScope_Error>`         | :ref:`load_bmp_from_buffer<class_Image_method_load_bmp_from_buffer>` **(** :ref:`PackedByteArray<class_PackedByteArray>` buffer **)**                                                                                                                                |
-+-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Image<class_Image>`                     | :ref:`load_from_file<class_Image_method_load_from_file>` **(** :ref:`String<class_String>` path **)** |static|                                                                                                                                                       |
-+-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Error<enum_@GlobalScope_Error>`         | :ref:`load_jpg_from_buffer<class_Image_method_load_jpg_from_buffer>` **(** :ref:`PackedByteArray<class_PackedByteArray>` buffer **)**                                                                                                                                |
-+-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Error<enum_@GlobalScope_Error>`         | :ref:`load_png_from_buffer<class_Image_method_load_png_from_buffer>` **(** :ref:`PackedByteArray<class_PackedByteArray>` buffer **)**                                                                                                                                |
-+-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Error<enum_@GlobalScope_Error>`         | :ref:`load_tga_from_buffer<class_Image_method_load_tga_from_buffer>` **(** :ref:`PackedByteArray<class_PackedByteArray>` buffer **)**                                                                                                                                |
-+-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Error<enum_@GlobalScope_Error>`         | :ref:`load_webp_from_buffer<class_Image_method_load_webp_from_buffer>` **(** :ref:`PackedByteArray<class_PackedByteArray>` buffer **)**                                                                                                                              |
-+-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                          | :ref:`normal_map_to_xy<class_Image_method_normal_map_to_xy>` **(** **)**                                                                                                                                                                                             |
-+-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                          | :ref:`premultiply_alpha<class_Image_method_premultiply_alpha>` **(** **)**                                                                                                                                                                                           |
-+-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                          | :ref:`resize<class_Image_method_resize>` **(** :ref:`int<class_int>` width, :ref:`int<class_int>` height, :ref:`Interpolation<enum_Image_Interpolation>` interpolation=1 **)**                                                                                       |
-+-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                          | :ref:`resize_to_po2<class_Image_method_resize_to_po2>` **(** :ref:`bool<class_bool>` square=false, :ref:`Interpolation<enum_Image_Interpolation>` interpolation=1 **)**                                                                                              |
-+-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Image<class_Image>`                     | :ref:`rgbe_to_srgb<class_Image_method_rgbe_to_srgb>` **(** **)**                                                                                                                                                                                                     |
-+-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                          | :ref:`rotate_180<class_Image_method_rotate_180>` **(** **)**                                                                                                                                                                                                         |
-+-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                          | :ref:`rotate_90<class_Image_method_rotate_90>` **(** :ref:`ClockDirection<enum_@GlobalScope_ClockDirection>` direction **)**                                                                                                                                         |
-+-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Error<enum_@GlobalScope_Error>`         | :ref:`save_exr<class_Image_method_save_exr>` **(** :ref:`String<class_String>` path, :ref:`bool<class_bool>` grayscale=false **)** |const|                                                                                                                           |
-+-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`PackedByteArray<class_PackedByteArray>` | :ref:`save_exr_to_buffer<class_Image_method_save_exr_to_buffer>` **(** :ref:`bool<class_bool>` grayscale=false **)** |const|                                                                                                                                         |
-+-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Error<enum_@GlobalScope_Error>`         | :ref:`save_jpg<class_Image_method_save_jpg>` **(** :ref:`String<class_String>` path, :ref:`float<class_float>` quality=0.75 **)** |const|                                                                                                                            |
-+-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`PackedByteArray<class_PackedByteArray>` | :ref:`save_jpg_to_buffer<class_Image_method_save_jpg_to_buffer>` **(** :ref:`float<class_float>` quality=0.75 **)** |const|                                                                                                                                          |
-+-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Error<enum_@GlobalScope_Error>`         | :ref:`save_png<class_Image_method_save_png>` **(** :ref:`String<class_String>` path **)** |const|                                                                                                                                                                    |
-+-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`PackedByteArray<class_PackedByteArray>` | :ref:`save_png_to_buffer<class_Image_method_save_png_to_buffer>` **(** **)** |const|                                                                                                                                                                                 |
-+-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Error<enum_@GlobalScope_Error>`         | :ref:`save_webp<class_Image_method_save_webp>` **(** :ref:`String<class_String>` path, :ref:`bool<class_bool>` lossy=false, :ref:`float<class_float>` quality=0.75 **)** |const|                                                                                     |
-+-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`PackedByteArray<class_PackedByteArray>` | :ref:`save_webp_to_buffer<class_Image_method_save_webp_to_buffer>` **(** :ref:`bool<class_bool>` lossy=false, :ref:`float<class_float>` quality=0.75 **)** |const|                                                                                                   |
-+-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                          | :ref:`set_pixel<class_Image_method_set_pixel>` **(** :ref:`int<class_int>` x, :ref:`int<class_int>` y, :ref:`Color<class_Color>` color **)**                                                                                                                         |
-+-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                          | :ref:`set_pixelv<class_Image_method_set_pixelv>` **(** :ref:`Vector2i<class_Vector2i>` point, :ref:`Color<class_Color>` color **)**                                                                                                                                  |
-+-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                          | :ref:`shrink_x2<class_Image_method_shrink_x2>` **(** **)**                                                                                                                                                                                                           |
-+-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                          | :ref:`srgb_to_linear<class_Image_method_srgb_to_linear>` **(** **)**                                                                                                                                                                                                 |
-+-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
++-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                          | :ref:`adjust_bcs<class_Image_method_adjust_bcs>` **(** :ref:`float<class_float>` brightness, :ref:`float<class_float>` contrast, :ref:`float<class_float>` saturation **)**                                                                                                   |
++-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                          | :ref:`blend_rect<class_Image_method_blend_rect>` **(** :ref:`Image<class_Image>` src, :ref:`Rect2i<class_Rect2i>` src_rect, :ref:`Vector2i<class_Vector2i>` dst **)**                                                                                                         |
++-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                          | :ref:`blend_rect_mask<class_Image_method_blend_rect_mask>` **(** :ref:`Image<class_Image>` src, :ref:`Image<class_Image>` mask, :ref:`Rect2i<class_Rect2i>` src_rect, :ref:`Vector2i<class_Vector2i>` dst **)**                                                               |
++-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                          | :ref:`blit_rect<class_Image_method_blit_rect>` **(** :ref:`Image<class_Image>` src, :ref:`Rect2i<class_Rect2i>` src_rect, :ref:`Vector2i<class_Vector2i>` dst **)**                                                                                                           |
++-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                          | :ref:`blit_rect_mask<class_Image_method_blit_rect_mask>` **(** :ref:`Image<class_Image>` src, :ref:`Image<class_Image>` mask, :ref:`Rect2i<class_Rect2i>` src_rect, :ref:`Vector2i<class_Vector2i>` dst **)**                                                                 |
++-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                          | :ref:`bump_map_to_normal_map<class_Image_method_bump_map_to_normal_map>` **(** :ref:`float<class_float>` bump_scale=1.0 **)**                                                                                                                                                 |
++-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                          | :ref:`clear_mipmaps<class_Image_method_clear_mipmaps>` **(** **)**                                                                                                                                                                                                            |
++-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Error<enum_@GlobalScope_Error>`         | :ref:`compress<class_Image_method_compress>` **(** :ref:`CompressMode<enum_Image_CompressMode>` mode, :ref:`CompressSource<enum_Image_CompressSource>` source=0, :ref:`float<class_float>` lossy_quality=0.7 **)**                                                            |
++-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Error<enum_@GlobalScope_Error>`         | :ref:`compress_from_channels<class_Image_method_compress_from_channels>` **(** :ref:`CompressMode<enum_Image_CompressMode>` mode, :ref:`UsedChannels<enum_Image_UsedChannels>` channels, :ref:`float<class_float>` lossy_quality=0.7 **)**                                    |
++-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Dictionary<class_Dictionary>`           | :ref:`compute_image_metrics<class_Image_method_compute_image_metrics>` **(** :ref:`Image<class_Image>` compared_image, :ref:`bool<class_bool>` use_luma **)**                                                                                                                 |
++-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                          | :ref:`convert<class_Image_method_convert>` **(** :ref:`Format<enum_Image_Format>` format **)**                                                                                                                                                                                |
++-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                          | :ref:`copy_from<class_Image_method_copy_from>` **(** :ref:`Image<class_Image>` src **)**                                                                                                                                                                                      |
++-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Image<class_Image>`                     | :ref:`create<class_Image_method_create>` **(** :ref:`int<class_int>` width, :ref:`int<class_int>` height, :ref:`bool<class_bool>` use_mipmaps, :ref:`Format<enum_Image_Format>` format **)** |static|                                                                         |
++-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Image<class_Image>`                     | :ref:`create_from_data<class_Image_method_create_from_data>` **(** :ref:`int<class_int>` width, :ref:`int<class_int>` height, :ref:`bool<class_bool>` use_mipmaps, :ref:`Format<enum_Image_Format>` format, :ref:`PackedByteArray<class_PackedByteArray>` data **)** |static| |
++-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                          | :ref:`crop<class_Image_method_crop>` **(** :ref:`int<class_int>` width, :ref:`int<class_int>` height **)**                                                                                                                                                                    |
++-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Error<enum_@GlobalScope_Error>`         | :ref:`decompress<class_Image_method_decompress>` **(** **)**                                                                                                                                                                                                                  |
++-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`AlphaMode<enum_Image_AlphaMode>`        | :ref:`detect_alpha<class_Image_method_detect_alpha>` **(** **)** |const|                                                                                                                                                                                                      |
++-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`UsedChannels<enum_Image_UsedChannels>`  | :ref:`detect_used_channels<class_Image_method_detect_used_channels>` **(** :ref:`CompressSource<enum_Image_CompressSource>` source=0 **)** |const|                                                                                                                            |
++-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                          | :ref:`fill<class_Image_method_fill>` **(** :ref:`Color<class_Color>` color **)**                                                                                                                                                                                              |
++-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                          | :ref:`fill_rect<class_Image_method_fill_rect>` **(** :ref:`Rect2i<class_Rect2i>` rect, :ref:`Color<class_Color>` color **)**                                                                                                                                                  |
++-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                          | :ref:`fix_alpha_edges<class_Image_method_fix_alpha_edges>` **(** **)**                                                                                                                                                                                                        |
++-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                          | :ref:`flip_x<class_Image_method_flip_x>` **(** **)**                                                                                                                                                                                                                          |
++-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                          | :ref:`flip_y<class_Image_method_flip_y>` **(** **)**                                                                                                                                                                                                                          |
++-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Error<enum_@GlobalScope_Error>`         | :ref:`generate_mipmaps<class_Image_method_generate_mipmaps>` **(** :ref:`bool<class_bool>` renormalize=false **)**                                                                                                                                                            |
++-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`PackedByteArray<class_PackedByteArray>` | :ref:`get_data<class_Image_method_get_data>` **(** **)** |const|                                                                                                                                                                                                              |
++-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Format<enum_Image_Format>`              | :ref:`get_format<class_Image_method_get_format>` **(** **)** |const|                                                                                                                                                                                                          |
++-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                         | :ref:`get_height<class_Image_method_get_height>` **(** **)** |const|                                                                                                                                                                                                          |
++-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                         | :ref:`get_mipmap_offset<class_Image_method_get_mipmap_offset>` **(** :ref:`int<class_int>` mipmap **)** |const|                                                                                                                                                               |
++-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Color<class_Color>`                     | :ref:`get_pixel<class_Image_method_get_pixel>` **(** :ref:`int<class_int>` x, :ref:`int<class_int>` y **)** |const|                                                                                                                                                           |
++-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Color<class_Color>`                     | :ref:`get_pixelv<class_Image_method_get_pixelv>` **(** :ref:`Vector2i<class_Vector2i>` point **)** |const|                                                                                                                                                                    |
++-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Image<class_Image>`                     | :ref:`get_region<class_Image_method_get_region>` **(** :ref:`Rect2i<class_Rect2i>` region **)** |const|                                                                                                                                                                       |
++-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Vector2i<class_Vector2i>`               | :ref:`get_size<class_Image_method_get_size>` **(** **)** |const|                                                                                                                                                                                                              |
++-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Rect2i<class_Rect2i>`                   | :ref:`get_used_rect<class_Image_method_get_used_rect>` **(** **)** |const|                                                                                                                                                                                                    |
++-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                         | :ref:`get_width<class_Image_method_get_width>` **(** **)** |const|                                                                                                                                                                                                            |
++-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                       | :ref:`has_mipmaps<class_Image_method_has_mipmaps>` **(** **)** |const|                                                                                                                                                                                                        |
++-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                       | :ref:`is_compressed<class_Image_method_is_compressed>` **(** **)** |const|                                                                                                                                                                                                    |
++-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                       | :ref:`is_empty<class_Image_method_is_empty>` **(** **)** |const|                                                                                                                                                                                                              |
++-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                       | :ref:`is_invisible<class_Image_method_is_invisible>` **(** **)** |const|                                                                                                                                                                                                      |
++-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Error<enum_@GlobalScope_Error>`         | :ref:`load<class_Image_method_load>` **(** :ref:`String<class_String>` path **)**                                                                                                                                                                                             |
++-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Error<enum_@GlobalScope_Error>`         | :ref:`load_bmp_from_buffer<class_Image_method_load_bmp_from_buffer>` **(** :ref:`PackedByteArray<class_PackedByteArray>` buffer **)**                                                                                                                                         |
++-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Image<class_Image>`                     | :ref:`load_from_file<class_Image_method_load_from_file>` **(** :ref:`String<class_String>` path **)** |static|                                                                                                                                                                |
++-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Error<enum_@GlobalScope_Error>`         | :ref:`load_jpg_from_buffer<class_Image_method_load_jpg_from_buffer>` **(** :ref:`PackedByteArray<class_PackedByteArray>` buffer **)**                                                                                                                                         |
++-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Error<enum_@GlobalScope_Error>`         | :ref:`load_png_from_buffer<class_Image_method_load_png_from_buffer>` **(** :ref:`PackedByteArray<class_PackedByteArray>` buffer **)**                                                                                                                                         |
++-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Error<enum_@GlobalScope_Error>`         | :ref:`load_tga_from_buffer<class_Image_method_load_tga_from_buffer>` **(** :ref:`PackedByteArray<class_PackedByteArray>` buffer **)**                                                                                                                                         |
++-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Error<enum_@GlobalScope_Error>`         | :ref:`load_webp_from_buffer<class_Image_method_load_webp_from_buffer>` **(** :ref:`PackedByteArray<class_PackedByteArray>` buffer **)**                                                                                                                                       |
++-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                          | :ref:`normal_map_to_xy<class_Image_method_normal_map_to_xy>` **(** **)**                                                                                                                                                                                                      |
++-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                          | :ref:`premultiply_alpha<class_Image_method_premultiply_alpha>` **(** **)**                                                                                                                                                                                                    |
++-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                          | :ref:`resize<class_Image_method_resize>` **(** :ref:`int<class_int>` width, :ref:`int<class_int>` height, :ref:`Interpolation<enum_Image_Interpolation>` interpolation=1 **)**                                                                                                |
++-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                          | :ref:`resize_to_po2<class_Image_method_resize_to_po2>` **(** :ref:`bool<class_bool>` square=false, :ref:`Interpolation<enum_Image_Interpolation>` interpolation=1 **)**                                                                                                       |
++-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Image<class_Image>`                     | :ref:`rgbe_to_srgb<class_Image_method_rgbe_to_srgb>` **(** **)**                                                                                                                                                                                                              |
++-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                          | :ref:`rotate_180<class_Image_method_rotate_180>` **(** **)**                                                                                                                                                                                                                  |
++-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                          | :ref:`rotate_90<class_Image_method_rotate_90>` **(** :ref:`ClockDirection<enum_@GlobalScope_ClockDirection>` direction **)**                                                                                                                                                  |
++-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Error<enum_@GlobalScope_Error>`         | :ref:`save_exr<class_Image_method_save_exr>` **(** :ref:`String<class_String>` path, :ref:`bool<class_bool>` grayscale=false **)** |const|                                                                                                                                    |
++-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`PackedByteArray<class_PackedByteArray>` | :ref:`save_exr_to_buffer<class_Image_method_save_exr_to_buffer>` **(** :ref:`bool<class_bool>` grayscale=false **)** |const|                                                                                                                                                  |
++-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Error<enum_@GlobalScope_Error>`         | :ref:`save_jpg<class_Image_method_save_jpg>` **(** :ref:`String<class_String>` path, :ref:`float<class_float>` quality=0.75 **)** |const|                                                                                                                                     |
++-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`PackedByteArray<class_PackedByteArray>` | :ref:`save_jpg_to_buffer<class_Image_method_save_jpg_to_buffer>` **(** :ref:`float<class_float>` quality=0.75 **)** |const|                                                                                                                                                   |
++-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Error<enum_@GlobalScope_Error>`         | :ref:`save_png<class_Image_method_save_png>` **(** :ref:`String<class_String>` path **)** |const|                                                                                                                                                                             |
++-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`PackedByteArray<class_PackedByteArray>` | :ref:`save_png_to_buffer<class_Image_method_save_png_to_buffer>` **(** **)** |const|                                                                                                                                                                                          |
++-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Error<enum_@GlobalScope_Error>`         | :ref:`save_webp<class_Image_method_save_webp>` **(** :ref:`String<class_String>` path, :ref:`bool<class_bool>` lossy=false, :ref:`float<class_float>` quality=0.75 **)** |const|                                                                                              |
++-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`PackedByteArray<class_PackedByteArray>` | :ref:`save_webp_to_buffer<class_Image_method_save_webp_to_buffer>` **(** :ref:`bool<class_bool>` lossy=false, :ref:`float<class_float>` quality=0.75 **)** |const|                                                                                                            |
++-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                          | :ref:`set_data<class_Image_method_set_data>` **(** :ref:`int<class_int>` width, :ref:`int<class_int>` height, :ref:`bool<class_bool>` use_mipmaps, :ref:`Format<enum_Image_Format>` format, :ref:`PackedByteArray<class_PackedByteArray>` data **)**                          |
++-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                          | :ref:`set_pixel<class_Image_method_set_pixel>` **(** :ref:`int<class_int>` x, :ref:`int<class_int>` y, :ref:`Color<class_Color>` color **)**                                                                                                                                  |
++-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                          | :ref:`set_pixelv<class_Image_method_set_pixelv>` **(** :ref:`Vector2i<class_Vector2i>` point, :ref:`Color<class_Color>` color **)**                                                                                                                                           |
++-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                          | :ref:`shrink_x2<class_Image_method_shrink_x2>` **(** **)**                                                                                                                                                                                                                    |
++-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                          | :ref:`srgb_to_linear<class_Image_method_srgb_to_linear>` **(** **)**                                                                                                                                                                                                          |
++-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 
 Enumerations
 ------------
@@ -496,7 +498,7 @@ Method Descriptions
 
 - void **blend_rect** **(** :ref:`Image<class_Image>` src, :ref:`Rect2i<class_Rect2i>` src_rect, :ref:`Vector2i<class_Vector2i>` dst **)**
 
-Alpha-blends ``src_rect`` from ``src`` image to this image at coordinates ``dst``, clipped accordingly to both image bounds. This image and ``src`` image **must** have the same format. ``src_rect`` with not positive size is treated as empty.
+Alpha-blends ``src_rect`` from ``src`` image to this image at coordinates ``dst``, clipped accordingly to both image bounds. This image and ``src`` image **must** have the same format. ``src_rect`` with non-positive size is treated as empty.
 
 ----
 
@@ -504,7 +506,7 @@ Alpha-blends ``src_rect`` from ``src`` image to this image at coordinates ``dst`
 
 - void **blend_rect_mask** **(** :ref:`Image<class_Image>` src, :ref:`Image<class_Image>` mask, :ref:`Rect2i<class_Rect2i>` src_rect, :ref:`Vector2i<class_Vector2i>` dst **)**
 
-Alpha-blends ``src_rect`` from ``src`` image to this image using ``mask`` image at coordinates ``dst``, clipped accordingly to both image bounds. Alpha channels are required for both ``src`` and ``mask``. ``dst`` pixels and ``src`` pixels will blend if the corresponding mask pixel's alpha value is not 0. This image and ``src`` image **must** have the same format. ``src`` image and ``mask`` image **must** have the same size (width and height) but they can have different formats. ``src_rect`` with not positive size is treated as empty.
+Alpha-blends ``src_rect`` from ``src`` image to this image using ``mask`` image at coordinates ``dst``, clipped accordingly to both image bounds. Alpha channels are required for both ``src`` and ``mask``. ``dst`` pixels and ``src`` pixels will blend if the corresponding mask pixel's alpha value is not 0. This image and ``src`` image **must** have the same format. ``src`` image and ``mask`` image **must** have the same size (width and height) but they can have different formats. ``src_rect`` with non-positive size is treated as empty.
 
 ----
 
@@ -512,7 +514,7 @@ Alpha-blends ``src_rect`` from ``src`` image to this image using ``mask`` image
 
 - void **blit_rect** **(** :ref:`Image<class_Image>` src, :ref:`Rect2i<class_Rect2i>` src_rect, :ref:`Vector2i<class_Vector2i>` dst **)**
 
-Copies ``src_rect`` from ``src`` image to this image at coordinates ``dst``, clipped accordingly to both image bounds. This image and ``src`` image **must** have the same format. ``src_rect`` with not positive size is treated as empty.
+Copies ``src_rect`` from ``src`` image to this image at coordinates ``dst``, clipped accordingly to both image bounds. This image and ``src`` image **must** have the same format. ``src_rect`` with non-positive size is treated as empty.
 
 ----
 
@@ -520,7 +522,7 @@ Copies ``src_rect`` from ``src`` image to this image at coordinates ``dst``, cli
 
 - void **blit_rect_mask** **(** :ref:`Image<class_Image>` src, :ref:`Image<class_Image>` mask, :ref:`Rect2i<class_Rect2i>` src_rect, :ref:`Vector2i<class_Vector2i>` dst **)**
 
-Blits ``src_rect`` area from ``src`` image to this image at the coordinates given by ``dst``, clipped accordingly to both image bounds. ``src`` pixel is copied onto ``dst`` if the corresponding ``mask`` pixel's alpha value is not 0. This image and ``src`` image **must** have the same format. ``src`` image and ``mask`` image **must** have the same size (width and height) but they can have different formats. ``src_rect`` with not positive size is treated as empty.
+Blits ``src_rect`` area from ``src`` image to this image at the coordinates given by ``dst``, clipped accordingly to both image bounds. ``src`` pixel is copied onto ``dst`` if the corresponding ``mask`` pixel's alpha value is not 0. This image and ``src`` image **must** have the same format. ``src`` image and ``mask`` image **must** have the same size (width and height) but they can have different formats. ``src_rect`` with non-positive size is treated as empty.
 
 ----
 
@@ -582,7 +584,7 @@ Copies ``src`` image to this image.
 
 .. _class_Image_method_create:
 
-- void **create** **(** :ref:`int<class_int>` width, :ref:`int<class_int>` height, :ref:`bool<class_bool>` use_mipmaps, :ref:`Format<enum_Image_Format>` format **)**
+- :ref:`Image<class_Image>` **create** **(** :ref:`int<class_int>` width, :ref:`int<class_int>` height, :ref:`bool<class_bool>` use_mipmaps, :ref:`Format<enum_Image_Format>` format **)** |static|
 
 Creates an empty image of given size and format. See :ref:`Format<enum_Image_Format>` constants. If ``use_mipmaps`` is ``true`` then generate mipmaps for this image. See the :ref:`generate_mipmaps<class_Image_method_generate_mipmaps>`.
 
@@ -590,7 +592,7 @@ Creates an empty image of given size and format. See :ref:`Format<enum_Image_For
 
 .. _class_Image_method_create_from_data:
 
-- void **create_from_data** **(** :ref:`int<class_int>` width, :ref:`int<class_int>` height, :ref:`bool<class_bool>` use_mipmaps, :ref:`Format<enum_Image_Format>` format, :ref:`PackedByteArray<class_PackedByteArray>` data **)**
+- :ref:`Image<class_Image>` **create_from_data** **(** :ref:`int<class_int>` width, :ref:`int<class_int>` height, :ref:`bool<class_bool>` use_mipmaps, :ref:`Format<enum_Image_Format>` format, :ref:`PackedByteArray<class_PackedByteArray>` data **)** |static|
 
 Creates a new image of given size and format. See :ref:`Format<enum_Image_Format>` constants. Fills the image with the given raw data. If ``use_mipmaps`` is ``true`` then loads mipmaps for this image from ``data``. See :ref:`generate_mipmaps<class_Image_method_generate_mipmaps>`.
 
@@ -728,11 +730,11 @@ This is the same as :ref:`get_pixel<class_Image_method_get_pixel>`, but with a :
 
 ----
 
-.. _class_Image_method_get_rect:
+.. _class_Image_method_get_region:
 
-- :ref:`Image<class_Image>` **get_rect** **(** :ref:`Rect2i<class_Rect2i>` rect **)** |const|
+- :ref:`Image<class_Image>` **get_region** **(** :ref:`Rect2i<class_Rect2i>` region **)** |const|
 
-Returns a new image that is a copy of the image's area specified with ``rect``.
+Returns a new ``Image`` that is a copy of this ``Image``'s area specified with ``region``.
 
 ----
 
@@ -982,11 +984,21 @@ Saves the image as a WebP (Web Picture) file to a byte array. By default it will
 
 ----
 
+.. _class_Image_method_set_data:
+
+- void **set_data** **(** :ref:`int<class_int>` width, :ref:`int<class_int>` height, :ref:`bool<class_bool>` use_mipmaps, :ref:`Format<enum_Image_Format>` format, :ref:`PackedByteArray<class_PackedByteArray>` data **)**
+
+Overwrites data of an existing ``Image``. Non-static equivalent of :ref:`create_from_data<class_Image_method_create_from_data>`.
+
+----
+
 .. _class_Image_method_set_pixel:
 
 - void **set_pixel** **(** :ref:`int<class_int>` x, :ref:`int<class_int>` y, :ref:`Color<class_Color>` color **)**
 
-Sets the :ref:`Color<class_Color>` of the pixel at ``(x, y)`` to ``color``. Example:
+Sets the :ref:`Color<class_Color>` of the pixel at ``(x, y)`` to ``color``.
+
+\ **Example:**\ 
 
 
 .. tabs::
@@ -1019,7 +1031,9 @@ This is the same as :ref:`set_pixelv<class_Image_method_set_pixelv>`, but with a
 
 - void **set_pixelv** **(** :ref:`Vector2i<class_Vector2i>` point, :ref:`Color<class_Color>` color **)**
 
-Sets the :ref:`Color<class_Color>` of the pixel at ``point`` to ``color``. Example:
+Sets the :ref:`Color<class_Color>` of the pixel at ``point`` to ``color``.
+
+\ **Example:**\ 
 
 
 .. tabs::

+ 0 - 2
classes/class_importermesh.rst

@@ -19,8 +19,6 @@ Description
 
 ImporterMesh is a type of :ref:`Resource<class_Resource>` analogous to :ref:`ArrayMesh<class_ArrayMesh>`. It contains vertex array-based geometry, divided in *surfaces*. Each surface contains a completely separate array and a material used to draw it. Design wise, a mesh with multiple surfaces is preferred to a single surface, because objects created in 3D editing software commonly contain multiple materials.
 
-
-
 Unlike its runtime counterpart, ``ImporterMesh`` contains mesh data before various import steps, such as lod and shadow mesh generation, have taken place. Modify surface data by calling :ref:`clear<class_ImporterMesh_method_clear>`, followed by :ref:`add_surface<class_ImporterMesh_method_add_surface>` for each surface.
 
 Properties

+ 3 - 3
classes/class_input.rst

@@ -454,7 +454,7 @@ Returns the magnetic field strength in micro-Tesla for all axes of the device's
 
 - :ref:`MouseButton<enum_@GlobalScope_MouseButton>` **get_mouse_button_mask** **(** **)** |const|
 
-Returns mouse buttons as a bitmask. If multiple mouse buttons are pressed at the same time, the bits are added together.
+Returns mouse buttons as a bitmask. If multiple mouse buttons are pressed at the same time, the bits are added together. Equivalent to :ref:`DisplayServer.mouse_get_button_state<class_DisplayServer_method_mouse_get_button_state>`.
 
 ----
 
@@ -568,7 +568,7 @@ Returns ``true`` if you are pressing the key in the physical location on the 101
 
 Feeds an :ref:`InputEvent<class_InputEvent>` to the game. Can be used to artificially trigger input events from code. Also generates :ref:`Node._input<class_Node_method__input>` calls.
 
-Example:
+\ **Example:**\ 
 
 
 .. tabs::
@@ -707,7 +707,7 @@ Vibrate handheld devices.
 
 Sets the mouse position to the specified vector, provided in pixels and relative to an origin at the upper left corner of the currently focused Window Manager game window.
 
-Mouse position is clipped to the limits of the screen resolution, or to the limits of the game window if :ref:`MouseMode<enum_Input_MouseMode>` is set to ``MOUSE_MODE_CONFINED`` or ``MOUSE_MODE_CONFINED_HIDDEN``.
+Mouse position is clipped to the limits of the screen resolution, or to the limits of the game window if :ref:`MouseMode<enum_Input_MouseMode>` is set to :ref:`MOUSE_MODE_CONFINED<class_Input_constant_MOUSE_MODE_CONFINED>` or :ref:`MOUSE_MODE_CONFINED_HIDDEN<class_Input_constant_MOUSE_MODE_CONFINED_HIDDEN>`.
 
 .. |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_inputeventmidi.rst

@@ -141,7 +141,7 @@ The MIDI channel of this input event. There are 16 channels, so this value range
 | *Getter*  | get_controller_number()      |
 +-----------+------------------------------+
 
-If the message is ``MIDI_MESSAGE_CONTROL_CHANGE``, this indicates the controller number, otherwise this is zero. Controllers include devices such as pedals and levers.
+If the message is :ref:`@GlobalScope.MIDI_MESSAGE_CONTROL_CHANGE<class_@GlobalScope_constant_MIDI_MESSAGE_CONTROL_CHANGE>`, this indicates the controller number, otherwise this is zero. Controllers include devices such as pedals and levers.
 
 ----
 
@@ -157,7 +157,7 @@ If the message is ``MIDI_MESSAGE_CONTROL_CHANGE``, this indicates the controller
 | *Getter*  | get_controller_value()      |
 +-----------+-----------------------------+
 
-If the message is ``MIDI_MESSAGE_CONTROL_CHANGE``, this indicates the controller value, otherwise this is zero. Controllers include devices such as pedals and levers.
+If the message is :ref:`@GlobalScope.MIDI_MESSAGE_CONTROL_CHANGE<class_@GlobalScope_constant_MIDI_MESSAGE_CONTROL_CHANGE>`, this indicates the controller value, otherwise this is zero. Controllers include devices such as pedals and levers.
 
 ----
 
@@ -193,7 +193,7 @@ Returns a value indicating the type of message for this MIDI signal. This is a m
 
 For MIDI messages between 0x80 and 0xEF, only the left half of the bits are returned as this value, as the other part is the channel (ex: 0x94 becomes 0x9). For MIDI messages from 0xF0 to 0xFF, the value is returned as-is.
 
-Notes will return ``MIDI_MESSAGE_NOTE_ON`` when activated, but they might not always return ``MIDI_MESSAGE_NOTE_OFF`` when deactivated, therefore your code should treat the input as stopped if some period of time has passed.
+Notes will return :ref:`@GlobalScope.MIDI_MESSAGE_NOTE_ON<class_@GlobalScope_constant_MIDI_MESSAGE_NOTE_ON>` when activated, but they might not always return :ref:`@GlobalScope.MIDI_MESSAGE_NOTE_OFF<class_@GlobalScope_constant_MIDI_MESSAGE_NOTE_OFF>` when deactivated, therefore your code should treat the input as stopped if some period of time has passed.
 
 For more information, see the MIDI message status byte list chart linked above.
 
@@ -243,7 +243,7 @@ The pressure of the MIDI signal. This value ranges from 0 to 127. For many devic
 | *Getter*  | get_velocity()      |
 +-----------+---------------------+
 
-The velocity of the MIDI signal. This value ranges from 0 to 127. For a piano, this corresponds to how quickly the key was pressed, and is rarely above about 110 in practice.
+The velocity of the MIDI signal. This value ranges from 0 to 127. For a piano, this corresponds to how quickly the key was pressed, and is rarely above about 110 in practice. Note that some MIDI devices may send a :ref:`@GlobalScope.MIDI_MESSAGE_NOTE_ON<class_@GlobalScope_constant_MIDI_MESSAGE_NOTE_ON>` message with zero velocity and expect this to be treated the same as a :ref:`@GlobalScope.MIDI_MESSAGE_NOTE_OFF<class_@GlobalScope_constant_MIDI_MESSAGE_NOTE_OFF>` message, but device implementations vary so Godot reports event data exactly as received.
 
 .. |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.)`

+ 25 - 7
classes/class_inputeventscreentouch.rst

@@ -29,17 +29,35 @@ Tutorials
 Properties
 ----------
 
-+-------------------------------+----------------------------------------------------------------+-------------------+
-| :ref:`int<class_int>`         | :ref:`index<class_InputEventScreenTouch_property_index>`       | ``0``             |
-+-------------------------------+----------------------------------------------------------------+-------------------+
-| :ref:`Vector2<class_Vector2>` | :ref:`position<class_InputEventScreenTouch_property_position>` | ``Vector2(0, 0)`` |
-+-------------------------------+----------------------------------------------------------------+-------------------+
-| :ref:`bool<class_bool>`       | :ref:`pressed<class_InputEventScreenTouch_property_pressed>`   | ``false``         |
-+-------------------------------+----------------------------------------------------------------+-------------------+
++-------------------------------+--------------------------------------------------------------------+-------------------+
+| :ref:`bool<class_bool>`       | :ref:`double_tap<class_InputEventScreenTouch_property_double_tap>` | ``false``         |
++-------------------------------+--------------------------------------------------------------------+-------------------+
+| :ref:`int<class_int>`         | :ref:`index<class_InputEventScreenTouch_property_index>`           | ``0``             |
++-------------------------------+--------------------------------------------------------------------+-------------------+
+| :ref:`Vector2<class_Vector2>` | :ref:`position<class_InputEventScreenTouch_property_position>`     | ``Vector2(0, 0)`` |
++-------------------------------+--------------------------------------------------------------------+-------------------+
+| :ref:`bool<class_bool>`       | :ref:`pressed<class_InputEventScreenTouch_property_pressed>`       | ``false``         |
++-------------------------------+--------------------------------------------------------------------+-------------------+
 
 Property Descriptions
 ---------------------
 
+.. _class_InputEventScreenTouch_property_double_tap:
+
+- :ref:`bool<class_bool>` **double_tap**
+
++-----------+-----------------------+
+| *Default* | ``false``             |
++-----------+-----------------------+
+| *Setter*  | set_double_tap(value) |
++-----------+-----------------------+
+| *Getter*  | is_double_tap()       |
++-----------+-----------------------+
+
+If ``true``, the touch's state is a double tap.
+
+----
+
 .. _class_InputEventScreenTouch_property_index:
 
 - :ref:`int<class_int>` **index**

+ 21 - 13
classes/class_int.rst

@@ -103,8 +103,6 @@ Operators
 +-------------------------------------+------------------------------------------------------------------------------------------------------------+
 | :ref:`int<class_int>`               | :ref:`operator **<class_int_operator_pow_int>` **(** :ref:`int<class_int>` right **)**                     |
 +-------------------------------------+------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_String>`         | :ref:`operator +<class_int_operator_sum_String>` **(** :ref:`String<class_String>` right **)**             |
-+-------------------------------------+------------------------------------------------------------------------------------------------------------+
 | :ref:`float<class_float>`           | :ref:`operator +<class_int_operator_sum_float>` **(** :ref:`float<class_float>` right **)**                |
 +-------------------------------------+------------------------------------------------------------------------------------------------------------+
 | :ref:`int<class_int>`               | :ref:`operator +<class_int_operator_sum_int>` **(** :ref:`int<class_int>` right **)**                      |
@@ -186,13 +184,13 @@ Operator Descriptions
 
 - :ref:`bool<class_bool>` **operator !=** **(** :ref:`float<class_float>` right **)**
 
-Returns ``true`` if operands are different from each other.
+Returns ``true`` if this ``int`` is not equivalent to the given :ref:`float<class_float>`.
 
 ----
 
 - :ref:`bool<class_bool>` **operator !=** **(** :ref:`int<class_int>` right **)**
 
-Returns ``true`` if operands are different from each other.
+Returns ``true`` if the integers are not equal.
 
 ----
 
@@ -276,10 +274,14 @@ Multiplies each component of the :ref:`Vector3i<class_Vector3i>` by the given ``
 
 - :ref:`Vector4<class_Vector4>` **operator *** **(** :ref:`Vector4<class_Vector4>` right **)**
 
+Multiplies each component of the :ref:`Vector4<class_Vector4>` by the given ``int``.
+
 ----
 
 - :ref:`Vector4i<class_Vector4i>` **operator *** **(** :ref:`Vector4i<class_Vector4i>` right **)**
 
+Multiplies each component of the :ref:`Vector4i<class_Vector4i>` by the given ``int``.
+
 ----
 
 - :ref:`float<class_float>` **operator *** **(** :ref:`float<class_float>` right **)**
@@ -298,20 +300,26 @@ Multiplies two ``int``\ s.
 
 - :ref:`float<class_float>` **operator **** **(** :ref:`float<class_float>` right **)**
 
-----
+Raises an ``int`` to a power of a :ref:`float<class_float>`. The result is a :ref:`float<class_float>`.
 
-- :ref:`int<class_int>` **operator **** **(** :ref:`int<class_int>` right **)**
+::
+
+    print(8**0.25) # 1.68179283050743
 
 ----
 
-.. _class_int_operator_sum_String:
+- :ref:`int<class_int>` **operator **** **(** :ref:`int<class_int>` right **)**
 
-- :ref:`String<class_String>` **operator +** **(** :ref:`String<class_String>` right **)**
+Raises an ``int`` to a power of a ``int``.
 
-Adds Unicode character with code ``int`` to the :ref:`String<class_String>`.
+::
+
+    print(5**5) # 3125
 
 ----
 
+.. _class_int_operator_sum_float:
+
 - :ref:`float<class_float>` **operator +** **(** :ref:`float<class_float>` right **)**
 
 Adds an ``int`` and a :ref:`float<class_float>`. The result is a :ref:`float<class_float>`.
@@ -371,7 +379,7 @@ Returns ``true`` if this ``int`` is less than the given :ref:`float<class_float>
 
 - :ref:`bool<class_bool>` **operator <** **(** :ref:`int<class_int>` right **)**
 
-Returns ``true`` the left integer is less than the right one.
+Returns ``true`` if the left integer is less than the right one.
 
 ----
 
@@ -398,7 +406,7 @@ Returns ``true`` if this ``int`` is less than or equal to the given :ref:`float<
 
 - :ref:`bool<class_bool>` **operator <=** **(** :ref:`int<class_int>` right **)**
 
-Returns ``true`` the left integer is less than or equal to the right one.
+Returns ``true`` if the left integer is less than or equal to the right one.
 
 ----
 
@@ -426,7 +434,7 @@ Returns ``true`` if this ``int`` is greater than the given :ref:`float<class_flo
 
 - :ref:`bool<class_bool>` **operator >** **(** :ref:`int<class_int>` right **)**
 
-Returns ``true`` the left integer is greater than the right one.
+Returns ``true`` if the left integer is greater than the right one.
 
 ----
 
@@ -440,7 +448,7 @@ Returns ``true`` if this ``int`` is greater than or equal to the given :ref:`flo
 
 - :ref:`bool<class_bool>` **operator >=** **(** :ref:`int<class_int>` right **)**
 
-Returns ``true`` the left integer is greater than or equal to the right one.
+Returns ``true`` if the left integer is greater than or equal to the right one.
 
 ----
 

+ 1 - 1
classes/class_javascriptobject.rst

@@ -19,7 +19,7 @@ Description
 
 JavaScriptObject is used to interact with JavaScript objects retrieved or created via :ref:`JavaScriptBridge.get_interface<class_JavaScriptBridge_method_get_interface>`, :ref:`JavaScriptBridge.create_object<class_JavaScriptBridge_method_create_object>`, or :ref:`JavaScriptBridge.create_callback<class_JavaScriptBridge_method_create_callback>`.
 
-Example:
+\ **Example:**\ 
 
 ::
 

+ 1 - 1
classes/class_json.rst

@@ -122,7 +122,7 @@ Returns an empty string if the last call to :ref:`parse<class_JSON_method_parse>
 
 Attempts to parse the ``json_string`` provided.
 
-Returns an :ref:`Error<enum_@GlobalScope_Error>`. If the parse was successful, it returns ``OK`` and the result can be retrieved using :ref:`data<class_JSON_property_data>`. If unsuccessful, use :ref:`get_error_line<class_JSON_method_get_error_line>` and :ref:`get_error_message<class_JSON_method_get_error_message>` for identifying the source of the failure.
+Returns an :ref:`Error<enum_@GlobalScope_Error>`. If the parse was successful, it returns :ref:`@GlobalScope.OK<class_@GlobalScope_constant_OK>` and the result can be retrieved using :ref:`data<class_JSON_property_data>`. If unsuccessful, use :ref:`get_error_line<class_JSON_method_get_error_line>` and :ref:`get_error_message<class_JSON_method_get_error_message>` for identifying the source of the failure.
 
 Non-static variant of :ref:`parse_string<class_JSON_method_parse_string>`, if you want custom error handling.
 

+ 61 - 57
classes/class_label3d.rst

@@ -22,63 +22,67 @@ Label3D displays plain text in a 3D world. It gives you control over the horizon
 Properties
 ----------
 
-+-------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+-----------------------+
-| :ref:`AlphaCutMode<enum_Label3D_AlphaCutMode>`                    | :ref:`alpha_cut<class_Label3D_property_alpha_cut>`                                                         | ``0``                 |
-+-------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+-----------------------+
-| :ref:`float<class_float>`                                         | :ref:`alpha_scissor_threshold<class_Label3D_property_alpha_scissor_threshold>`                             | ``0.5``               |
-+-------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+-----------------------+
-| :ref:`AutowrapMode<enum_TextServer_AutowrapMode>`                 | :ref:`autowrap_mode<class_Label3D_property_autowrap_mode>`                                                 | ``0``                 |
-+-------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+-----------------------+
-| :ref:`BillboardMode<enum_BaseMaterial3D_BillboardMode>`           | :ref:`billboard<class_Label3D_property_billboard>`                                                         | ``0``                 |
-+-------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+-----------------------+
-| :ref:`bool<class_bool>`                                           | :ref:`double_sided<class_Label3D_property_double_sided>`                                                   | ``true``              |
-+-------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+-----------------------+
-| :ref:`bool<class_bool>`                                           | :ref:`fixed_size<class_Label3D_property_fixed_size>`                                                       | ``false``             |
-+-------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+-----------------------+
-| :ref:`Font<class_Font>`                                           | :ref:`font<class_Label3D_property_font>`                                                                   |                       |
-+-------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+-----------------------+
-| :ref:`int<class_int>`                                             | :ref:`font_size<class_Label3D_property_font_size>`                                                         | ``32``                |
-+-------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+-----------------------+
-| :ref:`HorizontalAlignment<enum_@GlobalScope_HorizontalAlignment>` | :ref:`horizontal_alignment<class_Label3D_property_horizontal_alignment>`                                   | ``1``                 |
-+-------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+-----------------------+
-| :ref:`String<class_String>`                                       | :ref:`language<class_Label3D_property_language>`                                                           | ``""``                |
-+-------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+-----------------------+
-| :ref:`float<class_float>`                                         | :ref:`line_spacing<class_Label3D_property_line_spacing>`                                                   | ``0.0``               |
-+-------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+-----------------------+
-| :ref:`Color<class_Color>`                                         | :ref:`modulate<class_Label3D_property_modulate>`                                                           | ``Color(1, 1, 1, 1)`` |
-+-------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+-----------------------+
-| :ref:`bool<class_bool>`                                           | :ref:`no_depth_test<class_Label3D_property_no_depth_test>`                                                 | ``false``             |
-+-------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+-----------------------+
-| :ref:`Vector2<class_Vector2>`                                     | :ref:`offset<class_Label3D_property_offset>`                                                               | ``Vector2(0, 0)``     |
-+-------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+-----------------------+
-| :ref:`Color<class_Color>`                                         | :ref:`outline_modulate<class_Label3D_property_outline_modulate>`                                           | ``Color(0, 0, 0, 1)`` |
-+-------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+-----------------------+
-| :ref:`int<class_int>`                                             | :ref:`outline_render_priority<class_Label3D_property_outline_render_priority>`                             | ``-1``                |
-+-------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+-----------------------+
-| :ref:`int<class_int>`                                             | :ref:`outline_size<class_Label3D_property_outline_size>`                                                   | ``12``                |
-+-------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+-----------------------+
-| :ref:`float<class_float>`                                         | :ref:`pixel_size<class_Label3D_property_pixel_size>`                                                       | ``0.005``             |
-+-------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+-----------------------+
-| :ref:`int<class_int>`                                             | :ref:`render_priority<class_Label3D_property_render_priority>`                                             | ``0``                 |
-+-------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+-----------------------+
-| :ref:`bool<class_bool>`                                           | :ref:`shaded<class_Label3D_property_shaded>`                                                               | ``false``             |
-+-------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+-----------------------+
-| :ref:`StructuredTextParser<enum_TextServer_StructuredTextParser>` | :ref:`structured_text_bidi_override<class_Label3D_property_structured_text_bidi_override>`                 | ``0``                 |
-+-------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+-----------------------+
-| :ref:`Array<class_Array>`                                         | :ref:`structured_text_bidi_override_options<class_Label3D_property_structured_text_bidi_override_options>` | ``[]``                |
-+-------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+-----------------------+
-| :ref:`String<class_String>`                                       | :ref:`text<class_Label3D_property_text>`                                                                   | ``""``                |
-+-------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+-----------------------+
-| :ref:`Direction<enum_TextServer_Direction>`                       | :ref:`text_direction<class_Label3D_property_text_direction>`                                               | ``0``                 |
-+-------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+-----------------------+
-| :ref:`TextureFilter<enum_BaseMaterial3D_TextureFilter>`           | :ref:`texture_filter<class_Label3D_property_texture_filter>`                                               | ``3``                 |
-+-------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+-----------------------+
-| :ref:`bool<class_bool>`                                           | :ref:`uppercase<class_Label3D_property_uppercase>`                                                         | ``false``             |
-+-------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+-----------------------+
-| :ref:`VerticalAlignment<enum_@GlobalScope_VerticalAlignment>`     | :ref:`vertical_alignment<class_Label3D_property_vertical_alignment>`                                       | ``1``                 |
-+-------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+-----------------------+
-| :ref:`float<class_float>`                                         | :ref:`width<class_Label3D_property_width>`                                                                 | ``500.0``             |
-+-------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+-----------------------+
++---------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------+
+| :ref:`AlphaCutMode<enum_Label3D_AlphaCutMode>`                            | :ref:`alpha_cut<class_Label3D_property_alpha_cut>`                                                         | ``0``                                                                                      |
++---------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                                                 | :ref:`alpha_scissor_threshold<class_Label3D_property_alpha_scissor_threshold>`                             | ``0.5``                                                                                    |
++---------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------+
+| :ref:`AutowrapMode<enum_TextServer_AutowrapMode>`                         | :ref:`autowrap_mode<class_Label3D_property_autowrap_mode>`                                                 | ``0``                                                                                      |
++---------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------+
+| :ref:`BillboardMode<enum_BaseMaterial3D_BillboardMode>`                   | :ref:`billboard<class_Label3D_property_billboard>`                                                         | ``0``                                                                                      |
++---------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------+
+| :ref:`ShadowCastingSetting<enum_GeometryInstance3D_ShadowCastingSetting>` | cast_shadow                                                                                                | ``0`` (overrides :ref:`GeometryInstance3D<class_GeometryInstance3D_property_cast_shadow>`) |
++---------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                                                   | :ref:`double_sided<class_Label3D_property_double_sided>`                                                   | ``true``                                                                                   |
++---------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                                                   | :ref:`fixed_size<class_Label3D_property_fixed_size>`                                                       | ``false``                                                                                  |
++---------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------+
+| :ref:`Font<class_Font>`                                                   | :ref:`font<class_Label3D_property_font>`                                                                   |                                                                                            |
++---------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                                                     | :ref:`font_size<class_Label3D_property_font_size>`                                                         | ``32``                                                                                     |
++---------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------+
+| :ref:`GIMode<enum_GeometryInstance3D_GIMode>`                             | gi_mode                                                                                                    | ``0`` (overrides :ref:`GeometryInstance3D<class_GeometryInstance3D_property_gi_mode>`)     |
++---------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------+
+| :ref:`HorizontalAlignment<enum_@GlobalScope_HorizontalAlignment>`         | :ref:`horizontal_alignment<class_Label3D_property_horizontal_alignment>`                                   | ``1``                                                                                      |
++---------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`                                               | :ref:`language<class_Label3D_property_language>`                                                           | ``""``                                                                                     |
++---------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                                                 | :ref:`line_spacing<class_Label3D_property_line_spacing>`                                                   | ``0.0``                                                                                    |
++---------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------+
+| :ref:`Color<class_Color>`                                                 | :ref:`modulate<class_Label3D_property_modulate>`                                                           | ``Color(1, 1, 1, 1)``                                                                      |
++---------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                                                   | :ref:`no_depth_test<class_Label3D_property_no_depth_test>`                                                 | ``false``                                                                                  |
++---------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------+
+| :ref:`Vector2<class_Vector2>`                                             | :ref:`offset<class_Label3D_property_offset>`                                                               | ``Vector2(0, 0)``                                                                          |
++---------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------+
+| :ref:`Color<class_Color>`                                                 | :ref:`outline_modulate<class_Label3D_property_outline_modulate>`                                           | ``Color(0, 0, 0, 1)``                                                                      |
++---------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                                                     | :ref:`outline_render_priority<class_Label3D_property_outline_render_priority>`                             | ``-1``                                                                                     |
++---------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                                                     | :ref:`outline_size<class_Label3D_property_outline_size>`                                                   | ``12``                                                                                     |
++---------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                                                 | :ref:`pixel_size<class_Label3D_property_pixel_size>`                                                       | ``0.005``                                                                                  |
++---------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                                                     | :ref:`render_priority<class_Label3D_property_render_priority>`                                             | ``0``                                                                                      |
++---------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                                                   | :ref:`shaded<class_Label3D_property_shaded>`                                                               | ``false``                                                                                  |
++---------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------+
+| :ref:`StructuredTextParser<enum_TextServer_StructuredTextParser>`         | :ref:`structured_text_bidi_override<class_Label3D_property_structured_text_bidi_override>`                 | ``0``                                                                                      |
++---------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------+
+| :ref:`Array<class_Array>`                                                 | :ref:`structured_text_bidi_override_options<class_Label3D_property_structured_text_bidi_override_options>` | ``[]``                                                                                     |
++---------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`                                               | :ref:`text<class_Label3D_property_text>`                                                                   | ``""``                                                                                     |
++---------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------+
+| :ref:`Direction<enum_TextServer_Direction>`                               | :ref:`text_direction<class_Label3D_property_text_direction>`                                               | ``0``                                                                                      |
++---------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------+
+| :ref:`TextureFilter<enum_BaseMaterial3D_TextureFilter>`                   | :ref:`texture_filter<class_Label3D_property_texture_filter>`                                               | ``3``                                                                                      |
++---------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                                                   | :ref:`uppercase<class_Label3D_property_uppercase>`                                                         | ``false``                                                                                  |
++---------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------+
+| :ref:`VerticalAlignment<enum_@GlobalScope_VerticalAlignment>`             | :ref:`vertical_alignment<class_Label3D_property_vertical_alignment>`                                       | ``1``                                                                                      |
++---------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                                                 | :ref:`width<class_Label3D_property_width>`                                                                 | ``500.0``                                                                                  |
++---------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------+
 
 Methods
 -------

+ 4 - 0
classes/class_light3d.rst

@@ -316,6 +316,8 @@ If ``true``, the light only appears in the editor and will not be visible at run
 
 The light's angular size in degrees. Increasing this will make shadows softer at greater distances. Only available for :ref:`DirectionalLight3D<class_DirectionalLight3D>`\ s. For reference, the Sun from the Earth is approximately ``0.5``.
 
+\ **Note:** :ref:`light_angular_distance<class_Light3D_property_light_angular_distance>` is not affected by :ref:`Node3D.scale<class_Node3D_property_scale>` (the light's scale or its parent's scale).
+
 ----
 
 .. _class_Light3D_property_light_bake_mode:
@@ -482,6 +484,8 @@ If ``true``, the light's effect is reversed, darkening areas and casting bright
 
 The size of the light in Godot units. Only available for :ref:`OmniLight3D<class_OmniLight3D>`\ s and :ref:`SpotLight3D<class_SpotLight3D>`\ s. Increasing this value will make the light fade out slower and shadows appear blurrier. This can be used to simulate area lights to an extent.
 
+\ **Note:** :ref:`light_size<class_Light3D_property_light_size>` is not affected by :ref:`Node3D.scale<class_Node3D_property_scale>` (the light's scale or its parent's scale).
+
 ----
 
 .. _class_Light3D_property_light_specular:

+ 18 - 0
classes/class_lineedit.rst

@@ -111,6 +111,8 @@ Properties
 +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
 | :ref:`String<class_String>`                                       | :ref:`secret_character<class_LineEdit_property_secret_character>`                                           | ``"•"``                                                                             |
 +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                                           | :ref:`select_all_on_focus<class_LineEdit_property_select_all_on_focus>`                                     | ``false``                                                                           |
++-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
 | :ref:`bool<class_bool>`                                           | :ref:`selecting_enabled<class_LineEdit_property_selecting_enabled>`                                         | ``true``                                                                            |
 +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
 | :ref:`bool<class_bool>`                                           | :ref:`shortcut_keys_enabled<class_LineEdit_property_shortcut_keys_enabled>`                                 | ``true``                                                                            |
@@ -746,6 +748,22 @@ The character to use to mask secret input (defaults to "•"). Only a single cha
 
 ----
 
+.. _class_LineEdit_property_select_all_on_focus:
+
+- :ref:`bool<class_bool>` **select_all_on_focus**
+
++-----------+--------------------------------+
+| *Default* | ``false``                      |
++-----------+--------------------------------+
+| *Setter*  | set_select_all_on_focus(value) |
++-----------+--------------------------------+
+| *Getter*  | is_select_all_on_focus()       |
++-----------+--------------------------------+
+
+If ``true``, the ``LineEdit`` will select the whole text when it gains focus.
+
+----
+
 .. _class_LineEdit_property_selecting_enabled:
 
 - :ref:`bool<class_bool>` **selecting_enabled**

+ 17 - 13
classes/class_linkbutton.rst

@@ -24,19 +24,23 @@ See also :ref:`BaseButton<class_BaseButton>` which contains common properties an
 Properties
 ----------
 
-+-------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------+--------+
-| :ref:`String<class_String>`                                       | :ref:`language<class_LinkButton_property_language>`                                                           | ``""`` |
-+-------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------+--------+
-| :ref:`StructuredTextParser<enum_TextServer_StructuredTextParser>` | :ref:`structured_text_bidi_override<class_LinkButton_property_structured_text_bidi_override>`                 | ``0``  |
-+-------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------+--------+
-| :ref:`Array<class_Array>`                                         | :ref:`structured_text_bidi_override_options<class_LinkButton_property_structured_text_bidi_override_options>` | ``[]`` |
-+-------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------+--------+
-| :ref:`String<class_String>`                                       | :ref:`text<class_LinkButton_property_text>`                                                                   | ``""`` |
-+-------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------+--------+
-| :ref:`TextDirection<enum_Control_TextDirection>`                  | :ref:`text_direction<class_LinkButton_property_text_direction>`                                               | ``0``  |
-+-------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------+--------+
-| :ref:`UnderlineMode<enum_LinkButton_UnderlineMode>`               | :ref:`underline<class_LinkButton_property_underline>`                                                         | ``0``  |
-+-------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------+--------+
++-------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
+| :ref:`FocusMode<enum_Control_FocusMode>`                          | focus_mode                                                                                                    | ``0`` (overrides :ref:`Control<class_Control_property_focus_mode>`)                 |
++-------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`                                       | :ref:`language<class_LinkButton_property_language>`                                                           | ``""``                                                                              |
++-------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
+| :ref:`CursorShape<enum_Control_CursorShape>`                      | mouse_default_cursor_shape                                                                                    | ``2`` (overrides :ref:`Control<class_Control_property_mouse_default_cursor_shape>`) |
++-------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
+| :ref:`StructuredTextParser<enum_TextServer_StructuredTextParser>` | :ref:`structured_text_bidi_override<class_LinkButton_property_structured_text_bidi_override>`                 | ``0``                                                                               |
++-------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
+| :ref:`Array<class_Array>`                                         | :ref:`structured_text_bidi_override_options<class_LinkButton_property_structured_text_bidi_override_options>` | ``[]``                                                                              |
++-------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`                                       | :ref:`text<class_LinkButton_property_text>`                                                                   | ``""``                                                                              |
++-------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
+| :ref:`TextDirection<enum_Control_TextDirection>`                  | :ref:`text_direction<class_LinkButton_property_text_direction>`                                               | ``0``                                                                               |
++-------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
+| :ref:`UnderlineMode<enum_LinkButton_UnderlineMode>`               | :ref:`underline<class_LinkButton_property_underline>`                                                         | ``0``                                                                               |
++-------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
 
 Theme Properties
 ----------------

+ 24 - 0
classes/class_marker3d.rst

@@ -19,6 +19,30 @@ Description
 
 Generic 3D position hint for editing. It's just like a plain :ref:`Node3D<class_Node3D>`, but it displays as a cross in the 3D editor at all times.
 
+Properties
+----------
+
++---------------------------+-------------------------------------------------------------+----------+
+| :ref:`float<class_float>` | :ref:`gizmo_extents<class_Marker3D_property_gizmo_extents>` | ``0.25`` |
++---------------------------+-------------------------------------------------------------+----------+
+
+Property Descriptions
+---------------------
+
+.. _class_Marker3D_property_gizmo_extents:
+
+- :ref:`float<class_float>` **gizmo_extents**
+
++-----------+--------------------------+
+| *Default* | ``0.25``                 |
++-----------+--------------------------+
+| *Setter*  | set_gizmo_extents(value) |
++-----------+--------------------------+
+| *Getter*  | get_gizmo_extents()      |
++-----------+--------------------------+
+
+Size of the gizmo cross that appears in the editor.
+
 .. |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.)`

+ 0 - 16
classes/class_menubar.rst

@@ -29,8 +29,6 @@ Properties
 +--------------------------------------------------+----------------------------------------------------------------------+-----------+
 | :ref:`bool<class_bool>`                          | :ref:`prefer_global_menu<class_MenuBar_property_prefer_global_menu>` | ``true``  |
 +--------------------------------------------------+----------------------------------------------------------------------+-----------+
-| :ref:`Node<class_Node>`                          | :ref:`shortcut_context<class_MenuBar_property_shortcut_context>`     |           |
-+--------------------------------------------------+----------------------------------------------------------------------+-----------+
 | :ref:`int<class_int>`                            | :ref:`start_index<class_MenuBar_property_start_index>`               | ``-1``    |
 +--------------------------------------------------+----------------------------------------------------------------------+-----------+
 | :ref:`bool<class_bool>`                          | :ref:`switch_on_hover<class_MenuBar_property_switch_on_hover>`       | ``true``  |
@@ -155,20 +153,6 @@ If ``true``, ``MenuBar`` will use system global menu when supported.
 
 ----
 
-.. _class_MenuBar_property_shortcut_context:
-
-- :ref:`Node<class_Node>` **shortcut_context**
-
-+----------+-----------------------------+
-| *Setter* | set_shortcut_context(value) |
-+----------+-----------------------------+
-| *Getter* | get_shortcut_context()      |
-+----------+-----------------------------+
-
-The :ref:`Node<class_Node>` which must be a parent of the focused GUI :ref:`Control<class_Control>` for the shortcut to be activated. If ``null``, the shortcut can be activated when any control is focused (a global shortcut). This allows shortcuts to be accepted only when the user has a certain area of the GUI focused.
-
-----
-
 .. _class_MenuBar_property_start_index:
 
 - :ref:`int<class_int>` **start_index**

+ 11 - 9
classes/class_mesh.rst

@@ -35,9 +35,9 @@ Tutorials
 Properties
 ----------
 
-+---------------------------------+-------------------------------------------------------------------+
-| :ref:`Vector2i<class_Vector2i>` | :ref:`lightmap_size_hint<class_Mesh_property_lightmap_size_hint>` |
-+---------------------------------+-------------------------------------------------------------------+
++---------------------------------+-------------------------------------------------------------------+--------------------+
+| :ref:`Vector2i<class_Vector2i>` | :ref:`lightmap_size_hint<class_Mesh_property_lightmap_size_hint>` | ``Vector2i(0, 0)`` |
++---------------------------------+-------------------------------------------------------------------+--------------------+
 
 Methods
 -------
@@ -354,11 +354,13 @@ Property Descriptions
 
 - :ref:`Vector2i<class_Vector2i>` **lightmap_size_hint**
 
-+----------+-------------------------------+
-| *Setter* | set_lightmap_size_hint(value) |
-+----------+-------------------------------+
-| *Getter* | get_lightmap_size_hint()      |
-+----------+-------------------------------+
++-----------+-------------------------------+
+| *Default* | ``Vector2i(0, 0)``            |
++-----------+-------------------------------+
+| *Setter*  | set_lightmap_size_hint(value) |
++-----------+-------------------------------+
+| *Getter*  | get_lightmap_size_hint()      |
++-----------+-------------------------------+
 
 Sets a hint to be used for lightmap resolution.
 
@@ -491,7 +493,7 @@ Generate a :ref:`TriangleMesh<class_TriangleMesh>` from the mesh. Considers only
 
 - :ref:`AABB<class_AABB>` **get_aabb** **(** **)** |const|
 
-Returns the smallest :ref:`AABB<class_AABB>` enclosing this mesh in local space. Not affected by ``custom_aabb``. See also :ref:`VisualInstance3D.get_transformed_aabb<class_VisualInstance3D_method_get_transformed_aabb>`.
+Returns the smallest :ref:`AABB<class_AABB>` enclosing this mesh in local space. Not affected by ``custom_aabb``.
 
 \ **Note:** This is only implemented for :ref:`ArrayMesh<class_ArrayMesh>` and :ref:`PrimitiveMesh<class_PrimitiveMesh>`.
 

+ 1 - 1
classes/class_mobilevrinterface.rst

@@ -21,7 +21,7 @@ This is a generic mobile VR implementation where you need to provide details abo
 
 Note that even though there is no positional tracking, the camera will assume the headset is at a height of 1.85 meters. You can change this by setting :ref:`eye_height<class_MobileVRInterface_property_eye_height>`.
 
-You can initialise this interface as follows:
+You can initialize this interface as follows:
 
 ::
 

+ 2 - 2
classes/class_moviewriter.rst

@@ -17,7 +17,7 @@ Abstract class for non-real-time video recording encoders.
 Description
 -----------
 
-Godot can record videos with non-real-time simulation. Like the ``--fixed-fps`` command line argument, this forces the reported ``delta`` in :ref:`Node._process<class_Node_method__process>` functions to be identical across frames, regardless of how long it actually took to render the frame. This can be used to record high-quality videos with perfect frame pacing regardless of your hardware's capabilities.
+Godot can record videos with non-real-time simulation. Like the ``--fixed-fps`` :doc:`command line argument <../tutorials/editor/command_line_tutorial>`, this forces the reported ``delta`` in :ref:`Node._process<class_Node_method__process>` functions to be identical across frames, regardless of how long it actually took to render the frame. This can be used to record high-quality videos with perfect frame pacing regardless of your hardware's capabilities.
 
 Godot has 2 built-in ``MovieWriter``\ s:
 
@@ -88,7 +88,7 @@ Called when the engine determines whether this ``MovieWriter`` is able to handle
 
 - :ref:`Error<enum_@GlobalScope_Error>` **_write_begin** **(** :ref:`Vector2i<class_Vector2i>` movie_size, :ref:`int<class_int>` fps, :ref:`String<class_String>` base_path **)** |virtual|
 
-Called once before the engine starts writing video and audio data. ``movie_size`` is the width and height of the video to save. ``fps`` is the number of frames per second specified in the project settings or using the ``--fixed-fps <fps>`` command line argument.
+Called once before the engine starts writing video and audio data. ``movie_size`` is the width and height of the video to save. ``fps`` is the number of frames per second specified in the project settings or using the ``--fixed-fps <fps>`` :doc:`command line argument <../tutorials/editor/command_line_tutorial>`.
 
 ----
 

+ 1 - 1
classes/class_multimesh.rst

@@ -253,7 +253,7 @@ Method Descriptions
 
 - :ref:`AABB<class_AABB>` **get_aabb** **(** **)** |const|
 
-Returns the visibility axis-aligned bounding box in local space. See also :ref:`VisualInstance3D.get_transformed_aabb<class_VisualInstance3D_method_get_transformed_aabb>`.
+Returns the visibility axis-aligned bounding box in local space.
 
 ----
 

+ 75 - 49
classes/class_multiplayerpeer.rst

@@ -14,14 +14,14 @@ MultiplayerPeer
 
 **Inherited By:** :ref:`ENetMultiplayerPeer<class_ENetMultiplayerPeer>`, :ref:`MultiplayerPeerExtension<class_MultiplayerPeerExtension>`, :ref:`WebRTCMultiplayerPeer<class_WebRTCMultiplayerPeer>`, :ref:`WebSocketMultiplayerPeer<class_WebSocketMultiplayerPeer>`
 
-A high-level network interface to simplify multiplayer interactions.
+Abstract class for specialized :ref:`PacketPeer<class_PacketPeer>`\ s used by the :ref:`MultiplayerAPI<class_MultiplayerAPI>`.
 
 Description
 -----------
 
-Manages the connection to multiplayer peers. Assigns unique IDs to each client connected to the server. See also :ref:`MultiplayerAPI<class_MultiplayerAPI>`.
+Manages the connection with one or more remote peers acting as server or client and assigning unique IDs to each of them. See also :ref:`MultiplayerAPI<class_MultiplayerAPI>`.
 
-\ **Note:** The high-level multiplayer API protocol is an implementation detail and isn't meant to be used by non-Godot servers. It may change without notice.
+\ **Note:** The :ref:`MultiplayerAPI<class_MultiplayerAPI>` protocol is an implementation detail and isn't meant to be used by non-Godot servers. It may change without notice.
 
 \ **Note:** When exporting to Android, make sure to enable the ``INTERNET`` permission in the Android export preset before exporting the project or using one-click deploy. Otherwise, network communication of any kind will be blocked by Android.
 
@@ -46,44 +46,38 @@ Properties
 Methods
 -------
 
-+----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                                          | :ref:`generate_unique_id<class_MultiplayerPeer_method_generate_unique_id>` **(** **)** |const|            |
-+----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------+
-| :ref:`ConnectionStatus<enum_MultiplayerPeer_ConnectionStatus>` | :ref:`get_connection_status<class_MultiplayerPeer_method_get_connection_status>` **(** **)** |const|      |
-+----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                                          | :ref:`get_packet_peer<class_MultiplayerPeer_method_get_packet_peer>` **(** **)** |const|                  |
-+----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                                          | :ref:`get_unique_id<class_MultiplayerPeer_method_get_unique_id>` **(** **)** |const|                      |
-+----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------+
-| void                                                           | :ref:`poll<class_MultiplayerPeer_method_poll>` **(** **)**                                                |
-+----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------+
-| void                                                           | :ref:`set_target_peer<class_MultiplayerPeer_method_set_target_peer>` **(** :ref:`int<class_int>` id **)** |
-+----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------+
++----------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                           | :ref:`close<class_MultiplayerPeer_method_close>` **(** **)**                                                                                     |
++----------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                           | :ref:`disconnect_peer<class_MultiplayerPeer_method_disconnect_peer>` **(** :ref:`int<class_int>` peer, :ref:`bool<class_bool>` force=false **)** |
++----------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                                          | :ref:`generate_unique_id<class_MultiplayerPeer_method_generate_unique_id>` **(** **)** |const|                                                   |
++----------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`ConnectionStatus<enum_MultiplayerPeer_ConnectionStatus>` | :ref:`get_connection_status<class_MultiplayerPeer_method_get_connection_status>` **(** **)** |const|                                             |
++----------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                                          | :ref:`get_packet_channel<class_MultiplayerPeer_method_get_packet_channel>` **(** **)** |const|                                                   |
++----------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`TransferMode<enum_MultiplayerPeer_TransferMode>`         | :ref:`get_packet_mode<class_MultiplayerPeer_method_get_packet_mode>` **(** **)** |const|                                                         |
++----------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                                          | :ref:`get_packet_peer<class_MultiplayerPeer_method_get_packet_peer>` **(** **)** |const|                                                         |
++----------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                                          | :ref:`get_unique_id<class_MultiplayerPeer_method_get_unique_id>` **(** **)** |const|                                                             |
++----------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                                        | :ref:`is_server_relay_supported<class_MultiplayerPeer_method_is_server_relay_supported>` **(** **)** |const|                                     |
++----------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                           | :ref:`poll<class_MultiplayerPeer_method_poll>` **(** **)**                                                                                       |
++----------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                           | :ref:`set_target_peer<class_MultiplayerPeer_method_set_target_peer>` **(** :ref:`int<class_int>` id **)**                                        |
++----------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
 
 Signals
 -------
 
-.. _class_MultiplayerPeer_signal_connection_failed:
-
-- **connection_failed** **(** **)**
-
-Emitted when a connection attempt fails.
-
-----
-
-.. _class_MultiplayerPeer_signal_connection_succeeded:
-
-- **connection_succeeded** **(** **)**
-
-Emitted when a connection attempt succeeds.
-
-----
-
 .. _class_MultiplayerPeer_signal_peer_connected:
 
 - **peer_connected** **(** :ref:`int<class_int>` id **)**
 
-Emitted by the server when a client connects.
+Emitted when a remote peer connects.
 
 ----
 
@@ -91,15 +85,7 @@ Emitted by the server when a client connects.
 
 - **peer_disconnected** **(** :ref:`int<class_int>` id **)**
 
-Emitted by the server when a client disconnects.
-
-----
-
-.. _class_MultiplayerPeer_signal_server_disconnected:
-
-- **server_disconnected** **(** **)**
-
-Emitted by clients when the server disconnects.
+Emitted when a remote peer has disconnected.
 
 Enumerations
 ------------
@@ -114,11 +100,11 @@ Enumerations
 
 enum **ConnectionStatus**:
 
-- **CONNECTION_DISCONNECTED** = **0** --- The ongoing connection disconnected.
+- **CONNECTION_DISCONNECTED** = **0** --- The MultiplayerPeer is disconnected.
 
-- **CONNECTION_CONNECTING** = **1** --- A connection attempt is ongoing.
+- **CONNECTION_CONNECTING** = **1** --- The MultiplayerPeer is currently connecting to a server.
 
-- **CONNECTION_CONNECTED** = **2** --- The connection attempt succeeded.
+- **CONNECTION_CONNECTED** = **2** --- This MultiplayerPeer is connected.
 
 ----
 
@@ -145,9 +131,9 @@ Constants
 
 .. _class_MultiplayerPeer_constant_TARGET_PEER_SERVER:
 
-- **TARGET_PEER_BROADCAST** = **0** --- Packets are sent to the server and then redistributed to other peers.
+- **TARGET_PEER_BROADCAST** = **0** --- Packets are sent to all connected peers.
 
-- **TARGET_PEER_SERVER** = **1** --- Packets are sent to the server alone.
+- **TARGET_PEER_SERVER** = **1** --- Packets are sent to the remote peer acting as server.
 
 Property Descriptions
 ---------------------
@@ -198,11 +184,27 @@ The channel to use to send packets. Many network APIs such as ENet and WebRTC al
 | *Getter*  | get_transfer_mode()      |
 +-----------+--------------------------+
 
-The manner in which to send packets to the ``target_peer``. See :ref:`TransferMode<enum_MultiplayerPeer_TransferMode>`.
+The manner in which to send packets to the target peer. See :ref:`TransferMode<enum_MultiplayerPeer_TransferMode>`, and the :ref:`set_target_peer<class_MultiplayerPeer_method_set_target_peer>` method.
 
 Method Descriptions
 -------------------
 
+.. _class_MultiplayerPeer_method_close:
+
+- void **close** **(** **)**
+
+Immediately close the multiplayer peer returning to the state :ref:`CONNECTION_DISCONNECTED<class_MultiplayerPeer_constant_CONNECTION_DISCONNECTED>`. Connected peers will be dropped without emitting :ref:`peer_disconnected<class_MultiplayerPeer_signal_peer_disconnected>`.
+
+----
+
+.. _class_MultiplayerPeer_method_disconnect_peer:
+
+- void **disconnect_peer** **(** :ref:`int<class_int>` peer, :ref:`bool<class_bool>` force=false **)**
+
+Disconnects the given ``peer`` from this host. If ``force`` is ``true`` the :ref:`peer_disconnected<class_MultiplayerPeer_signal_peer_disconnected>` signal will not be emitted for this peer.
+
+----
+
 .. _class_MultiplayerPeer_method_generate_unique_id:
 
 - :ref:`int<class_int>` **generate_unique_id** **(** **)** |const|
@@ -219,11 +221,27 @@ Returns the current state of the connection. See :ref:`ConnectionStatus<enum_Mul
 
 ----
 
+.. _class_MultiplayerPeer_method_get_packet_channel:
+
+- :ref:`int<class_int>` **get_packet_channel** **(** **)** |const|
+
+Returns the channel over which the next available packet was received. See :ref:`PacketPeer.get_available_packet_count<class_PacketPeer_method_get_available_packet_count>`.
+
+----
+
+.. _class_MultiplayerPeer_method_get_packet_mode:
+
+- :ref:`TransferMode<enum_MultiplayerPeer_TransferMode>` **get_packet_mode** **(** **)** |const|
+
+Returns the :ref:`TransferMode<enum_MultiplayerPeer_TransferMode>` the remote peer used to send the next available packet. See :ref:`PacketPeer.get_available_packet_count<class_PacketPeer_method_get_available_packet_count>`.
+
+----
+
 .. _class_MultiplayerPeer_method_get_packet_peer:
 
 - :ref:`int<class_int>` **get_packet_peer** **(** **)** |const|
 
-Returns the ID of the ``MultiplayerPeer`` who sent the most recent packet.
+Returns the ID of the ``MultiplayerPeer`` who sent the next available packet. See :ref:`PacketPeer.get_available_packet_count<class_PacketPeer_method_get_available_packet_count>`.
 
 ----
 
@@ -235,6 +253,14 @@ Returns the ID of this ``MultiplayerPeer``.
 
 ----
 
+.. _class_MultiplayerPeer_method_is_server_relay_supported:
+
+- :ref:`bool<class_bool>` **is_server_relay_supported** **(** **)** |const|
+
+Returns true if the server can act as a relay in the current configuration (i.e. if the higher level :ref:`MultiplayerAPI<class_MultiplayerAPI>` should notify connected clients of other peers, and implement a relay protocol to allow communication between them).
+
+----
+
 .. _class_MultiplayerPeer_method_poll:
 
 - void **poll** **(** **)**

+ 20 - 0
classes/class_multiplayerpeerextension.rst

@@ -22,6 +22,10 @@ This class is designed to be inherited from a GDExtension plugin to implement cu
 Methods
 -------
 
++----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                           | :ref:`_close<class_MultiplayerPeerExtension_method__close>` **(** **)** |virtual|                                                                                       |
++----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                           | :ref:`_disconnect_peer<class_MultiplayerPeerExtension_method__disconnect_peer>` **(** :ref:`int<class_int>` p_peer, :ref:`bool<class_bool>` p_force **)** |virtual|     |
 +----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`int<class_int>`                                          | :ref:`_get_available_packet_count<class_MultiplayerPeerExtension_method__get_available_packet_count>` **(** **)** |virtual| |const|                                     |
 +----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
@@ -63,6 +67,22 @@ Methods
 Method Descriptions
 -------------------
 
+.. _class_MultiplayerPeerExtension_method__close:
+
+- void **_close** **(** **)** |virtual|
+
+Called when the multiplayer peer should be immediately closed (see :ref:`MultiplayerPeer.close<class_MultiplayerPeer_method_close>`).
+
+----
+
+.. _class_MultiplayerPeerExtension_method__disconnect_peer:
+
+- void **_disconnect_peer** **(** :ref:`int<class_int>` p_peer, :ref:`bool<class_bool>` p_force **)** |virtual|
+
+Called when the connected ``p_peer`` should be forcibly disconnected (see :ref:`MultiplayerPeer.disconnect_peer<class_MultiplayerPeer_method_disconnect_peer>`).
+
+----
+
 .. _class_MultiplayerPeerExtension_method__get_available_packet_count:
 
 - :ref:`int<class_int>` **_get_available_packet_count** **(** **)** |virtual| |const|

+ 1 - 9
classes/class_multiplayerspawner.rst

@@ -21,8 +21,6 @@ Spawnable scenes can be configured in the editor or through code (see :ref:`add_
 
 Also supports custom node spawns through :ref:`spawn<class_MultiplayerSpawner_method_spawn>`, calling :ref:`_spawn_custom<class_MultiplayerSpawner_method__spawn_custom>` on all peers.
 
-
-
 Internally, ``MultiplayerSpawner`` uses :ref:`MultiplayerAPI.object_configuration_add<class_MultiplayerAPI_method_object_configuration_add>` to notify spawns passing the spawned node as the ``object`` and itself as the ``configuration``, and :ref:`MultiplayerAPI.object_configuration_remove<class_MultiplayerAPI_method_object_configuration_remove>` to notify despawns in a similar way.
 
 Properties
@@ -85,8 +83,6 @@ Property Descriptions
 
 Maximum nodes that is allowed to be spawned by this spawner. Includes both spawnable scenes and custom spawns.
 
-
-
 When set to ``0`` (the default), there is no limit.
 
 ----
@@ -114,9 +110,7 @@ Method Descriptions
 
 Method called on all peers when a custom spawn was requested by the authority using :ref:`spawn<class_MultiplayerSpawner_method_spawn>`. Should return a :ref:`Node<class_Node>` that is not in the scene tree.
 
-
-
-\ **Note:** Spawned nodes should **not** be added to the scene with `add_child`. This is done automatically.
+\ **Note:** Spawned nodes should **not** be added to the scene with :ref:`Node.add_child<class_Node_method_add_child>`. This is done automatically.
 
 ----
 
@@ -158,8 +152,6 @@ Returns the count of spawnable scene paths.
 
 Requests a custom spawn, with ``data`` passed to :ref:`_spawn_custom<class_MultiplayerSpawner_method__spawn_custom>` on all peers. Returns the locally spawned node instance already inside the scene tree, and added as a child of the node pointed by :ref:`spawn_path<class_MultiplayerSpawner_property_spawn_path>`.
 
-
-
 \ **Note:** Spawnable scenes are spawned automatically. :ref:`spawn<class_MultiplayerSpawner_method_spawn>` is only needed for custom spawns.
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`

+ 0 - 6
classes/class_multiplayersynchronizer.rst

@@ -21,12 +21,8 @@ By default, ``MultiplayerSynchronizer`` synchronizes configured properties to al
 
 Visibility can be handled directly with :ref:`set_visibility_for<class_MultiplayerSynchronizer_method_set_visibility_for>` or as-needed with :ref:`add_visibility_filter<class_MultiplayerSynchronizer_method_add_visibility_filter>` and :ref:`update_visibility<class_MultiplayerSynchronizer_method_update_visibility>`.
 
-
-
 \ :ref:`MultiplayerSpawner<class_MultiplayerSpawner>`\ s will handle nodes according to visibility of synchronizers as long as the node at :ref:`root_path<class_MultiplayerSynchronizer_property_root_path>` was spawned by one.
 
-
-
 Internally, ``MultiplayerSynchronizer`` uses :ref:`MultiplayerAPI.object_configuration_add<class_MultiplayerAPI_method_object_configuration_add>` to notify synchronization start passing the :ref:`Node<class_Node>` at :ref:`root_path<class_MultiplayerSynchronizer_property_root_path>` as the ``object`` and itself as the ``configuration``, and uses :ref:`MultiplayerAPI.object_configuration_remove<class_MultiplayerAPI_method_object_configuration_remove>` to notify synchronization end in a similar way.
 
 Properties
@@ -177,8 +173,6 @@ Method Descriptions
 
 Adds a peer visibility filter for this synchronizer.
 
-
-
 \ ``filter`` should take a peer id :ref:`int<class_int>` and return a :ref:`bool<class_bool>`.
 
 ----

+ 45 - 47
classes/class_navigationagent2d.rst

@@ -19,32 +19,34 @@ Description
 
 2D Agent that is used in navigation to reach a location while avoiding static and dynamic obstacles. The dynamic obstacles are avoided using RVO collision avoidance. The agent needs navigation data to work correctly. ``NavigationAgent2D`` is physics safe.
 
-\ **Note:** After :ref:`set_target_location<class_NavigationAgent2D_method_set_target_location>` is used it is required to use the :ref:`get_next_location<class_NavigationAgent2D_method_get_next_location>` function once every physics frame to update the internal path logic of the NavigationAgent. The returned vector position from this function should be used as the next movement position for the agent's parent Node.
+\ **Note:** After setting :ref:`target_location<class_NavigationAgent2D_property_target_location>` it is required to use the :ref:`get_next_location<class_NavigationAgent2D_method_get_next_location>` function once every physics frame to update the internal path logic of the NavigationAgent. The returned vector position from this function should be used as the next movement position for the agent's parent Node.
 
 Properties
 ----------
 
-+---------------------------+------------------------------------------------------------------------------------------+-----------+
-| :ref:`bool<class_bool>`   | :ref:`avoidance_enabled<class_NavigationAgent2D_property_avoidance_enabled>`             | ``false`` |
-+---------------------------+------------------------------------------------------------------------------------------+-----------+
-| :ref:`int<class_int>`     | :ref:`max_neighbors<class_NavigationAgent2D_property_max_neighbors>`                     | ``10``    |
-+---------------------------+------------------------------------------------------------------------------------------+-----------+
-| :ref:`float<class_float>` | :ref:`max_speed<class_NavigationAgent2D_property_max_speed>`                             | ``200.0`` |
-+---------------------------+------------------------------------------------------------------------------------------+-----------+
-| :ref:`int<class_int>`     | :ref:`navigation_layers<class_NavigationAgent2D_property_navigation_layers>`             | ``1``     |
-+---------------------------+------------------------------------------------------------------------------------------+-----------+
-| :ref:`float<class_float>` | :ref:`neighbor_distance<class_NavigationAgent2D_property_neighbor_distance>`             | ``500.0`` |
-+---------------------------+------------------------------------------------------------------------------------------+-----------+
-| :ref:`float<class_float>` | :ref:`path_desired_distance<class_NavigationAgent2D_property_path_desired_distance>`     | ``1.0``   |
-+---------------------------+------------------------------------------------------------------------------------------+-----------+
-| :ref:`float<class_float>` | :ref:`path_max_distance<class_NavigationAgent2D_property_path_max_distance>`             | ``3.0``   |
-+---------------------------+------------------------------------------------------------------------------------------+-----------+
-| :ref:`float<class_float>` | :ref:`radius<class_NavigationAgent2D_property_radius>`                                   | ``10.0``  |
-+---------------------------+------------------------------------------------------------------------------------------+-----------+
-| :ref:`float<class_float>` | :ref:`target_desired_distance<class_NavigationAgent2D_property_target_desired_distance>` | ``1.0``   |
-+---------------------------+------------------------------------------------------------------------------------------+-----------+
-| :ref:`float<class_float>` | :ref:`time_horizon<class_NavigationAgent2D_property_time_horizon>`                       | ``20.0``  |
-+---------------------------+------------------------------------------------------------------------------------------+-----------+
++-------------------------------+------------------------------------------------------------------------------------------+-------------------+
+| :ref:`bool<class_bool>`       | :ref:`avoidance_enabled<class_NavigationAgent2D_property_avoidance_enabled>`             | ``false``         |
++-------------------------------+------------------------------------------------------------------------------------------+-------------------+
+| :ref:`int<class_int>`         | :ref:`max_neighbors<class_NavigationAgent2D_property_max_neighbors>`                     | ``10``            |
++-------------------------------+------------------------------------------------------------------------------------------+-------------------+
+| :ref:`float<class_float>`     | :ref:`max_speed<class_NavigationAgent2D_property_max_speed>`                             | ``200.0``         |
++-------------------------------+------------------------------------------------------------------------------------------+-------------------+
+| :ref:`int<class_int>`         | :ref:`navigation_layers<class_NavigationAgent2D_property_navigation_layers>`             | ``1``             |
++-------------------------------+------------------------------------------------------------------------------------------+-------------------+
+| :ref:`float<class_float>`     | :ref:`neighbor_distance<class_NavigationAgent2D_property_neighbor_distance>`             | ``500.0``         |
++-------------------------------+------------------------------------------------------------------------------------------+-------------------+
+| :ref:`float<class_float>`     | :ref:`path_desired_distance<class_NavigationAgent2D_property_path_desired_distance>`     | ``1.0``           |
++-------------------------------+------------------------------------------------------------------------------------------+-------------------+
+| :ref:`float<class_float>`     | :ref:`path_max_distance<class_NavigationAgent2D_property_path_max_distance>`             | ``3.0``           |
++-------------------------------+------------------------------------------------------------------------------------------+-------------------+
+| :ref:`float<class_float>`     | :ref:`radius<class_NavigationAgent2D_property_radius>`                                   | ``10.0``          |
++-------------------------------+------------------------------------------------------------------------------------------+-------------------+
+| :ref:`float<class_float>`     | :ref:`target_desired_distance<class_NavigationAgent2D_property_target_desired_distance>` | ``1.0``           |
++-------------------------------+------------------------------------------------------------------------------------------+-------------------+
+| :ref:`Vector2<class_Vector2>` | :ref:`target_location<class_NavigationAgent2D_property_target_location>`                 | ``Vector2(0, 0)`` |
++-------------------------------+------------------------------------------------------------------------------------------+-------------------+
+| :ref:`float<class_float>`     | :ref:`time_horizon<class_NavigationAgent2D_property_time_horizon>`                       | ``20.0``          |
++-------------------------------+------------------------------------------------------------------------------------------+-------------------+
 
 Methods
 -------
@@ -66,8 +68,6 @@ Methods
 +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`RID<class_RID>`                               | :ref:`get_rid<class_NavigationAgent2D_method_get_rid>` **(** **)** |const|                                                                                                 |
 +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Vector2<class_Vector2>`                       | :ref:`get_target_location<class_NavigationAgent2D_method_get_target_location>` **(** **)** |const|                                                                         |
-+-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`bool<class_bool>`                             | :ref:`is_navigation_finished<class_NavigationAgent2D_method_is_navigation_finished>` **(** **)**                                                                           |
 +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`bool<class_bool>`                             | :ref:`is_target_reachable<class_NavigationAgent2D_method_is_target_reachable>` **(** **)**                                                                                 |
@@ -78,8 +78,6 @@ Methods
 +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                                                | :ref:`set_navigation_map<class_NavigationAgent2D_method_set_navigation_map>` **(** :ref:`RID<class_RID>` navigation_map **)**                                              |
 +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`set_target_location<class_NavigationAgent2D_method_set_target_location>` **(** :ref:`Vector2<class_Vector2>` location **)**                                          |
-+-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                                                | :ref:`set_velocity<class_NavigationAgent2D_method_set_velocity>` **(** :ref:`Vector2<class_Vector2>` velocity **)**                                                        |
 +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 
@@ -106,13 +104,13 @@ Notifies when the navigation path changes.
 
 - **target_reached** **(** **)**
 
-Notifies when the player defined target, set with :ref:`set_target_location<class_NavigationAgent2D_method_set_target_location>`, is reached.
+Notifies when the player-defined :ref:`target_location<class_NavigationAgent2D_property_target_location>` is reached.
 
 ----
 
 .. _class_NavigationAgent2D_signal_velocity_computed:
 
-- **velocity_computed** **(** :ref:`Vector3<class_Vector3>` safe_velocity **)**
+- **velocity_computed** **(** :ref:`Vector2<class_Vector2>` safe_velocity **)**
 
 Notifies when the collision avoidance velocity is calculated. Emitted by :ref:`set_velocity<class_NavigationAgent2D_method_set_velocity>`. Only emitted when :ref:`avoidance_enabled<class_NavigationAgent2D_property_avoidance_enabled>` is true.
 
@@ -265,6 +263,22 @@ The distance threshold before the final target point is considered to be reached
 
 ----
 
+.. _class_NavigationAgent2D_property_target_location:
+
+- :ref:`Vector2<class_Vector2>` **target_location**
+
++-----------+----------------------------+
+| *Default* | ``Vector2(0, 0)``          |
++-----------+----------------------------+
+| *Setter*  | set_target_location(value) |
++-----------+----------------------------+
+| *Getter*  | get_target_location()      |
++-----------+----------------------------+
+
+The user-defined target location. Setting this property will clear the current navigation path.
+
+----
+
 .. _class_NavigationAgent2D_property_time_horizon:
 
 - :ref:`float<class_float>` **time_horizon**
@@ -286,7 +300,7 @@ Method Descriptions
 
 - :ref:`float<class_float>` **distance_to_target** **(** **)** |const|
 
-Returns the distance to the target location, using the agent's global position. The user must set the target location with :ref:`set_target_location<class_NavigationAgent2D_method_set_target_location>` in order for this to be accurate.
+Returns the distance to the target location, using the agent's global position. The user must set :ref:`target_location<class_NavigationAgent2D_property_target_location>` in order for this to be accurate.
 
 ----
 
@@ -346,14 +360,6 @@ Returns the :ref:`RID<class_RID>` of this agent on the :ref:`NavigationServer2D<
 
 ----
 
-.. _class_NavigationAgent2D_method_get_target_location:
-
-- :ref:`Vector2<class_Vector2>` **get_target_location** **(** **)** |const|
-
-Returns the user defined :ref:`Vector2<class_Vector2>` after setting the target location.
-
-----
-
 .. _class_NavigationAgent2D_method_is_navigation_finished:
 
 - :ref:`bool<class_bool>` **is_navigation_finished** **(** **)**
@@ -366,7 +372,7 @@ Returns true if the navigation path's final location has been reached.
 
 - :ref:`bool<class_bool>` **is_target_reachable** **(** **)**
 
-Returns true if the target location is reachable. The target location is set using :ref:`set_target_location<class_NavigationAgent2D_method_set_target_location>`.
+Returns true if :ref:`target_location<class_NavigationAgent2D_property_target_location>` is reachable.
 
 ----
 
@@ -374,7 +380,7 @@ Returns true if the target location is reachable. The target location is set usi
 
 - :ref:`bool<class_bool>` **is_target_reached** **(** **)** |const|
 
-Returns true if the target location is reached. The target location is set using :ref:`set_target_location<class_NavigationAgent2D_method_set_target_location>`. It may not always be possible to reach the target location. It should always be possible to reach the final location though. See :ref:`get_final_location<class_NavigationAgent2D_method_get_final_location>`.
+Returns true if :ref:`target_location<class_NavigationAgent2D_property_target_location>` is reached. It may not always be possible to reach the target location. It should always be possible to reach the final location though. See :ref:`get_final_location<class_NavigationAgent2D_method_get_final_location>`.
 
 ----
 
@@ -394,14 +400,6 @@ Sets the :ref:`RID<class_RID>` of the navigation map this NavigationAgent node s
 
 ----
 
-.. _class_NavigationAgent2D_method_set_target_location:
-
-- void **set_target_location** **(** :ref:`Vector2<class_Vector2>` location **)**
-
-Sets the user desired final location. This will clear the current navigation path.
-
-----
-
 .. _class_NavigationAgent2D_method_set_velocity:
 
 - void **set_velocity** **(** :ref:`Vector2<class_Vector2>` velocity **)**

+ 48 - 50
classes/class_navigationagent3d.rst

@@ -19,36 +19,38 @@ Description
 
 3D Agent that is used in navigation to reach a location while avoiding static and dynamic obstacles. The dynamic obstacles are avoided using RVO collision avoidance. The agent needs navigation data to work correctly. ``NavigationAgent3D`` is physics safe.
 
-\ **Note:** After :ref:`set_target_location<class_NavigationAgent3D_method_set_target_location>` is used it is required to use the :ref:`get_next_location<class_NavigationAgent3D_method_get_next_location>` function once every physics frame to update the internal path logic of the NavigationAgent. The returned vector position from this function should be used as the next movement position for the agent's parent Node.
+\ **Note:** After setting :ref:`target_location<class_NavigationAgent3D_property_target_location>` it is required to use the :ref:`get_next_location<class_NavigationAgent3D_method_get_next_location>` function once every physics frame to update the internal path logic of the NavigationAgent. The returned vector position from this function should be used as the next movement position for the agent's parent Node.
 
 Properties
 ----------
 
-+---------------------------+------------------------------------------------------------------------------------------+-----------+
-| :ref:`float<class_float>` | :ref:`agent_height_offset<class_NavigationAgent3D_property_agent_height_offset>`         | ``0.0``   |
-+---------------------------+------------------------------------------------------------------------------------------+-----------+
-| :ref:`bool<class_bool>`   | :ref:`avoidance_enabled<class_NavigationAgent3D_property_avoidance_enabled>`             | ``false`` |
-+---------------------------+------------------------------------------------------------------------------------------+-----------+
-| :ref:`bool<class_bool>`   | :ref:`ignore_y<class_NavigationAgent3D_property_ignore_y>`                               | ``true``  |
-+---------------------------+------------------------------------------------------------------------------------------+-----------+
-| :ref:`int<class_int>`     | :ref:`max_neighbors<class_NavigationAgent3D_property_max_neighbors>`                     | ``10``    |
-+---------------------------+------------------------------------------------------------------------------------------+-----------+
-| :ref:`float<class_float>` | :ref:`max_speed<class_NavigationAgent3D_property_max_speed>`                             | ``10.0``  |
-+---------------------------+------------------------------------------------------------------------------------------+-----------+
-| :ref:`int<class_int>`     | :ref:`navigation_layers<class_NavigationAgent3D_property_navigation_layers>`             | ``1``     |
-+---------------------------+------------------------------------------------------------------------------------------+-----------+
-| :ref:`float<class_float>` | :ref:`neighbor_distance<class_NavigationAgent3D_property_neighbor_distance>`             | ``50.0``  |
-+---------------------------+------------------------------------------------------------------------------------------+-----------+
-| :ref:`float<class_float>` | :ref:`path_desired_distance<class_NavigationAgent3D_property_path_desired_distance>`     | ``1.0``   |
-+---------------------------+------------------------------------------------------------------------------------------+-----------+
-| :ref:`float<class_float>` | :ref:`path_max_distance<class_NavigationAgent3D_property_path_max_distance>`             | ``3.0``   |
-+---------------------------+------------------------------------------------------------------------------------------+-----------+
-| :ref:`float<class_float>` | :ref:`radius<class_NavigationAgent3D_property_radius>`                                   | ``1.0``   |
-+---------------------------+------------------------------------------------------------------------------------------+-----------+
-| :ref:`float<class_float>` | :ref:`target_desired_distance<class_NavigationAgent3D_property_target_desired_distance>` | ``1.0``   |
-+---------------------------+------------------------------------------------------------------------------------------+-----------+
-| :ref:`float<class_float>` | :ref:`time_horizon<class_NavigationAgent3D_property_time_horizon>`                       | ``5.0``   |
-+---------------------------+------------------------------------------------------------------------------------------+-----------+
++-------------------------------+------------------------------------------------------------------------------------------+----------------------+
+| :ref:`float<class_float>`     | :ref:`agent_height_offset<class_NavigationAgent3D_property_agent_height_offset>`         | ``0.0``              |
++-------------------------------+------------------------------------------------------------------------------------------+----------------------+
+| :ref:`bool<class_bool>`       | :ref:`avoidance_enabled<class_NavigationAgent3D_property_avoidance_enabled>`             | ``false``            |
++-------------------------------+------------------------------------------------------------------------------------------+----------------------+
+| :ref:`bool<class_bool>`       | :ref:`ignore_y<class_NavigationAgent3D_property_ignore_y>`                               | ``true``             |
++-------------------------------+------------------------------------------------------------------------------------------+----------------------+
+| :ref:`int<class_int>`         | :ref:`max_neighbors<class_NavigationAgent3D_property_max_neighbors>`                     | ``10``               |
++-------------------------------+------------------------------------------------------------------------------------------+----------------------+
+| :ref:`float<class_float>`     | :ref:`max_speed<class_NavigationAgent3D_property_max_speed>`                             | ``10.0``             |
++-------------------------------+------------------------------------------------------------------------------------------+----------------------+
+| :ref:`int<class_int>`         | :ref:`navigation_layers<class_NavigationAgent3D_property_navigation_layers>`             | ``1``                |
++-------------------------------+------------------------------------------------------------------------------------------+----------------------+
+| :ref:`float<class_float>`     | :ref:`neighbor_distance<class_NavigationAgent3D_property_neighbor_distance>`             | ``50.0``             |
++-------------------------------+------------------------------------------------------------------------------------------+----------------------+
+| :ref:`float<class_float>`     | :ref:`path_desired_distance<class_NavigationAgent3D_property_path_desired_distance>`     | ``1.0``              |
++-------------------------------+------------------------------------------------------------------------------------------+----------------------+
+| :ref:`float<class_float>`     | :ref:`path_max_distance<class_NavigationAgent3D_property_path_max_distance>`             | ``3.0``              |
++-------------------------------+------------------------------------------------------------------------------------------+----------------------+
+| :ref:`float<class_float>`     | :ref:`radius<class_NavigationAgent3D_property_radius>`                                   | ``1.0``              |
++-------------------------------+------------------------------------------------------------------------------------------+----------------------+
+| :ref:`float<class_float>`     | :ref:`target_desired_distance<class_NavigationAgent3D_property_target_desired_distance>` | ``1.0``              |
++-------------------------------+------------------------------------------------------------------------------------------+----------------------+
+| :ref:`Vector3<class_Vector3>` | :ref:`target_location<class_NavigationAgent3D_property_target_location>`                 | ``Vector3(0, 0, 0)`` |
++-------------------------------+------------------------------------------------------------------------------------------+----------------------+
+| :ref:`float<class_float>`     | :ref:`time_horizon<class_NavigationAgent3D_property_time_horizon>`                       | ``5.0``              |
++-------------------------------+------------------------------------------------------------------------------------------+----------------------+
 
 Methods
 -------
@@ -70,8 +72,6 @@ Methods
 +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`RID<class_RID>`                               | :ref:`get_rid<class_NavigationAgent3D_method_get_rid>` **(** **)** |const|                                                                                                 |
 +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Vector3<class_Vector3>`                       | :ref:`get_target_location<class_NavigationAgent3D_method_get_target_location>` **(** **)** |const|                                                                         |
-+-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`bool<class_bool>`                             | :ref:`is_navigation_finished<class_NavigationAgent3D_method_is_navigation_finished>` **(** **)**                                                                           |
 +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`bool<class_bool>`                             | :ref:`is_target_reachable<class_NavigationAgent3D_method_is_target_reachable>` **(** **)**                                                                                 |
@@ -82,8 +82,6 @@ Methods
 +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                                                | :ref:`set_navigation_map<class_NavigationAgent3D_method_set_navigation_map>` **(** :ref:`RID<class_RID>` navigation_map **)**                                              |
 +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`set_target_location<class_NavigationAgent3D_method_set_target_location>` **(** :ref:`Vector3<class_Vector3>` location **)**                                          |
-+-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                                                | :ref:`set_velocity<class_NavigationAgent3D_method_set_velocity>` **(** :ref:`Vector3<class_Vector3>` velocity **)**                                                        |
 +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 
@@ -110,7 +108,7 @@ Notifies when the navigation path changes.
 
 - **target_reached** **(** **)**
 
-Notifies when the player defined target, set with :ref:`set_target_location<class_NavigationAgent3D_method_set_target_location>`, is reached.
+Notifies when the player-defined :ref:`target_location<class_NavigationAgent3D_property_target_location>` is reached.
 
 ----
 
@@ -301,6 +299,22 @@ The distance threshold before the final target point is considered to be reached
 
 ----
 
+.. _class_NavigationAgent3D_property_target_location:
+
+- :ref:`Vector3<class_Vector3>` **target_location**
+
++-----------+----------------------------+
+| *Default* | ``Vector3(0, 0, 0)``       |
++-----------+----------------------------+
+| *Setter*  | set_target_location(value) |
++-----------+----------------------------+
+| *Getter*  | get_target_location()      |
++-----------+----------------------------+
+
+The user-defined target location. Setting this property will clear the current navigation path.
+
+----
+
 .. _class_NavigationAgent3D_property_time_horizon:
 
 - :ref:`float<class_float>` **time_horizon**
@@ -322,7 +336,7 @@ Method Descriptions
 
 - :ref:`float<class_float>` **distance_to_target** **(** **)** |const|
 
-Returns the distance to the target location, using the agent's global position. The user must set the target location with :ref:`set_target_location<class_NavigationAgent3D_method_set_target_location>` in order for this to be accurate.
+Returns the distance to the target location, using the agent's global position. The user must set :ref:`target_location<class_NavigationAgent3D_property_target_location>` in order for this to be accurate.
 
 ----
 
@@ -382,14 +396,6 @@ Returns the :ref:`RID<class_RID>` of this agent on the :ref:`NavigationServer3D<
 
 ----
 
-.. _class_NavigationAgent3D_method_get_target_location:
-
-- :ref:`Vector3<class_Vector3>` **get_target_location** **(** **)** |const|
-
-Returns the user defined :ref:`Vector3<class_Vector3>` after setting the target location.
-
-----
-
 .. _class_NavigationAgent3D_method_is_navigation_finished:
 
 - :ref:`bool<class_bool>` **is_navigation_finished** **(** **)**
@@ -402,7 +408,7 @@ Returns true if the navigation path's final location has been reached.
 
 - :ref:`bool<class_bool>` **is_target_reachable** **(** **)**
 
-Returns true if the target location is reachable. The target location is set using :ref:`set_target_location<class_NavigationAgent3D_method_set_target_location>`.
+Returns true if :ref:`target_location<class_NavigationAgent3D_property_target_location>` is reachable.
 
 ----
 
@@ -410,7 +416,7 @@ Returns true if the target location is reachable. The target location is set usi
 
 - :ref:`bool<class_bool>` **is_target_reached** **(** **)** |const|
 
-Returns true if the target location is reached. The target location is set using :ref:`set_target_location<class_NavigationAgent3D_method_set_target_location>`. It may not always be possible to reach the target location. It should always be possible to reach the final location though. See :ref:`get_final_location<class_NavigationAgent3D_method_get_final_location>`.
+Returns true if :ref:`target_location<class_NavigationAgent3D_property_target_location>` is reached. It may not always be possible to reach the target location. It should always be possible to reach the final location though. See :ref:`get_final_location<class_NavigationAgent3D_method_get_final_location>`.
 
 ----
 
@@ -430,14 +436,6 @@ Sets the :ref:`RID<class_RID>` of the navigation map this NavigationAgent node s
 
 ----
 
-.. _class_NavigationAgent3D_method_set_target_location:
-
-- void **set_target_location** **(** :ref:`Vector3<class_Vector3>` location **)**
-
-Sets the user desired final location. This will clear the current navigation path.
-
-----
-
 .. _class_NavigationAgent3D_method_set_velocity:
 
 - void **set_velocity** **(** :ref:`Vector3<class_Vector3>` velocity **)**

+ 6 - 6
classes/class_node.rst

@@ -181,7 +181,7 @@ Methods
 +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`bool<class_bool>`                           | :ref:`is_processing_unhandled_key_input<class_Node_method_is_processing_unhandled_key_input>` **(** **)** |const|                                                                                                              |
 +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                              | :ref:`move_child<class_Node_method_move_child>` **(** :ref:`Node<class_Node>` child_node, :ref:`int<class_int>` to_position **)**                                                                                              |
+| void                                              | :ref:`move_child<class_Node_method_move_child>` **(** :ref:`Node<class_Node>` child_node, :ref:`int<class_int>` to_index **)**                                                                                                 |
 +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                                              | :ref:`print_orphan_nodes<class_Node_method_print_orphan_nodes>` **(** **)**                                                                                                                                                    |
 +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
@@ -725,7 +725,7 @@ Corresponds to the :ref:`NOTIFICATION_EXIT_TREE<class_Node_constant_NOTIFICATION
 
 - :ref:`PackedStringArray<class_PackedStringArray>` **_get_configuration_warnings** **(** **)** |virtual| |const|
 
-The elements in the array returned from this method are displayed as warnings in the Scene Dock if the script that overrides it is a ``tool`` script.
+The elements in the array returned from this method are displayed as warnings in the Scene dock if the script that overrides it is a ``tool`` script.
 
 Returning an empty array produces no warnings.
 
@@ -1373,9 +1373,9 @@ Returns ``true`` if the node is processing unhandled key input (see :ref:`set_pr
 
 .. _class_Node_method_move_child:
 
-- void **move_child** **(** :ref:`Node<class_Node>` child_node, :ref:`int<class_int>` to_position **)**
+- void **move_child** **(** :ref:`Node<class_Node>` child_node, :ref:`int<class_int>` to_index **)**
 
-Moves a child node to a different position (order) among the other children. Since calls, signals, etc are performed by tree order, changing the order of children nodes may be useful. If ``to_position`` is negative, the index will be counted from the end.
+Moves a child node to a different index (order) among the other children. Since calls, signals, etc. are performed by tree order, changing the order of children nodes may be useful. If ``to_index`` is negative, the index will be counted from the end.
 
 \ **Note:** Internal children can only be moved within their expected "internal range" (see ``internal`` parameter in :ref:`add_child<class_Node_method_add_child>`).
 
@@ -1414,7 +1414,7 @@ Prints the tree to stdout. Used mainly for debugging purposes. This version disp
 
 - void **print_tree_pretty** **(** **)**
 
-Similar to :ref:`print_tree<class_Node_method_print_tree>`, this prints the tree to stdout. This version displays a more graphical representation similar to what is displayed in the scene inspector. It is useful for inspecting larger trees.
+Similar to :ref:`print_tree<class_Node_method_print_tree>`, this prints the tree to stdout. 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:**\ 
 
@@ -1497,7 +1497,7 @@ Requests that ``_ready`` be called again. Note that the method won't be called i
 
 - :ref:`Error<enum_@GlobalScope_Error>` **rpc** **(** :ref:`StringName<class_StringName>` method, ... **)** |vararg|
 
-Sends a remote procedure call request for the given ``method`` to peers on the network (and locally), optionally sending all additional arguments as arguments to the method called by the RPC. The call request will only be received by nodes with the same :ref:`NodePath<class_NodePath>`, including the exact same node name. Behaviour depends on the RPC configuration for the given method, see :ref:`rpc_config<class_Node_method_rpc_config>`. Methods are not exposed to RPCs by default. Returns ``null``.
+Sends a remote procedure call request for the given ``method`` to peers on the network (and locally), optionally sending all additional arguments as arguments to the method called by the RPC. The call request will only be received by nodes with the same :ref:`NodePath<class_NodePath>`, including the exact same node name. Behavior depends on the RPC configuration for the given method, see :ref:`rpc_config<class_Node_method_rpc_config>`. Methods are not exposed to RPCs by default. Returns ``null``.
 
 \ **Note:** You can only safely use RPCs on clients after you received the ``connected_to_server`` signal from the :ref:`MultiplayerAPI<class_MultiplayerAPI>`. You also need to keep track of the connection state, either by the :ref:`MultiplayerAPI<class_MultiplayerAPI>` signals like ``server_disconnected`` or by checking ``get_multiplayer().peer.get_connection_status() == CONNECTION_CONNECTED``.
 

+ 4 - 32
classes/class_node3d.rst

@@ -52,7 +52,7 @@ Properties
 +-------------------------------------------------------+---------------------------------------------------------------------+-----------------------------------------------------+
 | :ref:`RotationEditMode<enum_Node3D_RotationEditMode>` | :ref:`rotation_edit_mode<class_Node3D_property_rotation_edit_mode>` | ``0``                                               |
 +-------------------------------------------------------+---------------------------------------------------------------------+-----------------------------------------------------+
-| :ref:`RotationOrder<enum_Node3D_RotationOrder>`       | :ref:`rotation_order<class_Node3D_property_rotation_order>`         | ``2``                                               |
+| :ref:`EulerOrder<enum_@GlobalScope_EulerOrder>`       | :ref:`rotation_order<class_Node3D_property_rotation_order>`         | ``2``                                               |
 +-------------------------------------------------------+---------------------------------------------------------------------+-----------------------------------------------------+
 | :ref:`Vector3<class_Vector3>`                         | :ref:`scale<class_Node3D_property_scale>`                           | ``Vector3(1, 1, 1)``                                |
 +-------------------------------------------------------+---------------------------------------------------------------------+-----------------------------------------------------+
@@ -170,36 +170,6 @@ enum **RotationEditMode**:
 
 - **ROTATION_EDIT_MODE_BASIS** = **2**
 
-----
-
-.. _enum_Node3D_RotationOrder:
-
-.. _class_Node3D_constant_ROTATION_ORDER_XYZ:
-
-.. _class_Node3D_constant_ROTATION_ORDER_XZY:
-
-.. _class_Node3D_constant_ROTATION_ORDER_YXZ:
-
-.. _class_Node3D_constant_ROTATION_ORDER_YZX:
-
-.. _class_Node3D_constant_ROTATION_ORDER_ZXY:
-
-.. _class_Node3D_constant_ROTATION_ORDER_ZYX:
-
-enum **RotationOrder**:
-
-- **ROTATION_ORDER_XYZ** = **0**
-
-- **ROTATION_ORDER_XZY** = **1**
-
-- **ROTATION_ORDER_YXZ** = **2**
-
-- **ROTATION_ORDER_YZX** = **3**
-
-- **ROTATION_ORDER_ZXY** = **4**
-
-- **ROTATION_ORDER_ZYX** = **5**
-
 Constants
 ---------
 
@@ -354,7 +324,7 @@ Specify how rotation (and scale) will be presented in the editor.
 
 .. _class_Node3D_property_rotation_order:
 
-- :ref:`RotationOrder<enum_Node3D_RotationOrder>` **rotation_order**
+- :ref:`EulerOrder<enum_@GlobalScope_EulerOrder>` **rotation_order**
 
 +-----------+---------------------------+
 | *Default* | ``2``                     |
@@ -384,6 +354,8 @@ Scale part of the local transformation.
 
 \ **Note:** Mixed negative scales in 3D are not decomposable from the transformation matrix. Due to the way scale is represented with transformation matrices in Godot, the scale values will either be all positive or all negative.
 
+\ **Note:** Not all nodes are visually scaled by the :ref:`scale<class_Node3D_property_scale>` property. For example, :ref:`Light3D<class_Light3D>`\ s are not visually affected by :ref:`scale<class_Node3D_property_scale>`.
+
 ----
 
 .. _class_Node3D_property_top_level:

+ 1 - 1
classes/class_nodepath.rst

@@ -15,7 +15,7 @@ Pre-parsed scene tree path.
 Description
 -----------
 
-A pre-parsed relative or absolute path in a scene tree, for use with :ref:`Node.get_node<class_Node_method_get_node>` and similar functions. It can reference a node, a resource within a node, or a property of a node or resource. For instance, ``"Path2D/PathFollow2D/Sprite2D:texture:size"`` would refer to the ``size`` property of the ``texture`` resource on the node named ``"Sprite2D"`` which is a child of the other named nodes in the path.
+A pre-parsed relative or absolute path in a scene tree, for use with :ref:`Node.get_node<class_Node_method_get_node>` and similar functions. It can reference a node, a resource within a node, or a property of a node or resource. For example, ``"Path2D/PathFollow2D/Sprite2D:texture:size"`` would refer to the ``size`` property of the ``texture`` resource on the node named ``"Sprite2D"`` which is a child of the other named nodes in the path.
 
 You will usually just pass a string to :ref:`Node.get_node<class_Node_method_get_node>` and it will be automatically converted, but you may occasionally want to parse a path ahead of time with ``NodePath`` or the literal syntax ``^"path"``. Exporting a ``NodePath`` variable will give you a node selection widget in the properties panel of the editor, which can often be useful.
 

+ 23 - 13
classes/class_object.rst

@@ -107,7 +107,7 @@ Methods
 +---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`Dictionary[]<class_Dictionary>`             | :ref:`get_incoming_connections<class_Object_method_get_incoming_connections>` **(** **)** |const|                                                                                                                                  |
 +---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Variant<class_Variant>`                     | :ref:`get_indexed<class_Object_method_get_indexed>` **(** :ref:`NodePath<class_NodePath>` property **)** |const|                                                                                                                   |
+| :ref:`Variant<class_Variant>`                     | :ref:`get_indexed<class_Object_method_get_indexed>` **(** :ref:`NodePath<class_NodePath>` property_path **)** |const|                                                                                                              |
 +---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`int<class_int>`                             | :ref:`get_instance_id<class_Object_method_get_instance_id>` **(** **)** |const|                                                                                                                                                    |
 +---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
@@ -153,7 +153,7 @@ Methods
 +---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                                              | :ref:`set_deferred<class_Object_method_set_deferred>` **(** :ref:`StringName<class_StringName>` property, :ref:`Variant<class_Variant>` value **)**                                                                                |
 +---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                              | :ref:`set_indexed<class_Object_method_set_indexed>` **(** :ref:`NodePath<class_NodePath>` property, :ref:`Variant<class_Variant>` value **)**                                                                                      |
+| void                                              | :ref:`set_indexed<class_Object_method_set_indexed>` **(** :ref:`NodePath<class_NodePath>` property_path, :ref:`Variant<class_Variant>` value **)**                                                                                 |
 +---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                                              | :ref:`set_message_translation<class_Object_method_set_message_translation>` **(** :ref:`bool<class_bool>` enable **)**                                                                                                             |
 +---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
@@ -312,7 +312,9 @@ Adds a user-defined ``signal``. Arguments are optional, but can be added as an :
 
 - :ref:`Variant<class_Variant>` **call** **(** :ref:`StringName<class_StringName>` method, ... **)** |vararg|
 
-Calls the ``method`` on the object and returns the result. This method supports a variable number of arguments, so parameters are passed as a comma separated list. Example:
+Calls the ``method`` on the object and returns the result. This method supports a variable number of arguments, so parameters are passed as a comma separated list.
+
+\ **Example:**\ 
 
 
 .. tabs::
@@ -337,7 +339,9 @@ Calls the ``method`` on the object and returns the result. This method supports
 
 - :ref:`Variant<class_Variant>` **call_deferred** **(** :ref:`StringName<class_StringName>` method, ... **)** |vararg|
 
-Calls the ``method`` on the object during idle time. This method supports a variable number of arguments, so parameters are passed as a comma separated list. Example:
+Calls the ``method`` on the object during idle time. This method supports a variable number of arguments, so parameters are passed as a comma separated list.
+
+\ **Example:**\ 
 
 
 .. tabs::
@@ -568,7 +572,9 @@ If you try to disconnect a connection that does not exist, the method will print
 
 - :ref:`Error<enum_@GlobalScope_Error>` **emit_signal** **(** :ref:`StringName<class_StringName>` signal, ... **)** |vararg|
 
-Emits the given ``signal``. The signal must exist, so it should be a built-in signal of this class or one of its parent classes, or a user-defined signal. This method supports a variable number of arguments, so parameters are passed as a comma separated list. Example:
+Emits the given ``signal``. The signal must exist, so it should be a built-in signal of this class or one of its parent classes, or a user-defined signal. This method supports a variable number of arguments, so parameters are passed as a comma separated list.
+
+\ **Example:**\ 
 
 
 .. tabs::
@@ -633,9 +639,11 @@ Each :ref:`Dictionary<class_Dictionary>` contains three String entries:
 
 .. _class_Object_method_get_indexed:
 
-- :ref:`Variant<class_Variant>` **get_indexed** **(** :ref:`NodePath<class_NodePath>` property **)** |const|
+- :ref:`Variant<class_Variant>` **get_indexed** **(** :ref:`NodePath<class_NodePath>` property_path **)** |const|
 
-Gets the object's property indexed by the given :ref:`NodePath<class_NodePath>`. The node path should be relative to the current object and can use the colon character (``:``) to access nested properties. Examples: ``"position:x"`` or ``"material:next_pass:blend_mode"``.
+Gets the object's property indexed by the given ``property_path``. The path should be a :ref:`NodePath<class_NodePath>` relative to the current object and can use the colon character (``:``) to access nested properties.
+
+\ **Examples:** ``"position:x"`` or ``"material:next_pass:blend_mode"``.
 
 \ **Note:** Even though the method takes :ref:`NodePath<class_NodePath>` argument, it doesn't support actual paths to :ref:`Node<class_Node>`\ s in the scene tree, only colon-separated sub-property paths. For the purpose of nodes, use :ref:`Node.get_node_and_resource<class_Node_method_get_node_and_resource>` instead.
 
@@ -659,7 +667,7 @@ Returns the object's metadata entry for the given ``name``.
 
 Throws error if the entry does not exist, unless ``default`` is not ``null`` (in which case the default value will be returned). See also :ref:`has_meta<class_Object_method_has_meta>`, :ref:`set_meta<class_Object_method_set_meta>` and :ref:`remove_meta<class_Object_method_remove_meta>`.
 
-\ **Note:** Metadata that has a ``name`` starting with an underscore (``_``) is considered editor-only. Editor-only metadata is not displayed in the inspector and should not be edited.
+\ **Note:** Metadata that has a ``name`` starting with an underscore (``_``) is considered editor-only. Editor-only metadata is not displayed in the Inspector and should not be edited.
 
 ----
 
@@ -719,7 +727,7 @@ Returns the list of signals as an :ref:`Array<class_Array>` of dictionaries.
 
 Returns ``true`` if a metadata entry is found with the given ``name``. See also :ref:`get_meta<class_Object_method_get_meta>`, :ref:`set_meta<class_Object_method_set_meta>` and :ref:`remove_meta<class_Object_method_remove_meta>`.
 
-\ **Note:** Metadata that has a ``name`` starting with an underscore (``_``) is considered editor-only. Editor-only metadata is not displayed in the inspector and should not be edited.
+\ **Note:** Metadata that has a ``name`` starting with an underscore (``_``) is considered editor-only. Editor-only metadata is not displayed in the Inspector and should not be edited.
 
 ----
 
@@ -805,7 +813,7 @@ Notify the editor that the property list has changed by emitting the :ref:`prope
 
 Removes a given entry from the object's metadata. See also :ref:`has_meta<class_Object_method_has_meta>`, :ref:`get_meta<class_Object_method_get_meta>` and :ref:`set_meta<class_Object_method_set_meta>`.
 
-\ **Note:** Metadata that has a ``name`` starting with an underscore (``_``) is considered editor-only. Editor-only metadata is not displayed in the inspector and should not be edited.
+\ **Note:** Metadata that has a ``name`` starting with an underscore (``_``) is considered editor-only. Editor-only metadata is not displayed in the Inspector and should not be edited.
 
 ----
 
@@ -839,9 +847,11 @@ Assigns a new value to the given property, after the current frame's physics ste
 
 .. _class_Object_method_set_indexed:
 
-- void **set_indexed** **(** :ref:`NodePath<class_NodePath>` property, :ref:`Variant<class_Variant>` value **)**
+- void **set_indexed** **(** :ref:`NodePath<class_NodePath>` property_path, :ref:`Variant<class_Variant>` value **)**
+
+Assigns a new value to the property identified by the ``property_path``. The path should be a :ref:`NodePath<class_NodePath>` relative to the current object and can use the colon character (``:``) to access nested properties.
 
-Assigns a new value to the property identified by the :ref:`NodePath<class_NodePath>`. The node path should be relative to the current object and can use the colon character (``:``) to access nested properties. Example:
+\ **Example:**\ 
 
 
 .. tabs::
@@ -880,7 +890,7 @@ Adds, changes or removes a given entry in the object's metadata. Metadata are se
 
 To remove a given entry from the object's metadata, use :ref:`remove_meta<class_Object_method_remove_meta>`. Metadata is also removed if its value is set to ``null``. This means you can also use ``set_meta("name", null)`` to remove metadata for ``"name"``. See also :ref:`has_meta<class_Object_method_has_meta>` and :ref:`get_meta<class_Object_method_get_meta>`.
 
-\ **Note:** Metadata that has a ``name`` starting with an underscore (``_``) is considered editor-only. Editor-only metadata is not displayed in the inspector and should not be edited.
+\ **Note:** Metadata that has a ``name`` starting with an underscore (``_``) is considered editor-only. Editor-only metadata is not displayed in the Inspector and should not be edited.
 
 ----
 

Some files were not shown because too many files changed in this diff