Browse Source

classref: Sync with current master branch (cc5135959)

Rémi Verschelde 3 years ago
parent
commit
0c4087626b
100 changed files with 4393 additions and 2201 deletions
  1. 165 0
      classes/[email protected]
  2. 360 303
      classes/[email protected]
  3. 20 0
      classes/class_acceptdialog.rst
  4. 40 40
      classes/class_animationnode.rst
  5. 1 25
      classes/class_animationnodeadd2.rst
  6. 1 25
      classes/class_animationnodeadd3.rst
  7. 1 25
      classes/class_animationnodeblend2.rst
  8. 1 25
      classes/class_animationnodeblend3.rst
  9. 20 0
      classes/class_animationnodeblendspace1d.rst
  10. 20 0
      classes/class_animationnodeblendspace2d.rst
  11. 1 17
      classes/class_animationnodeoneshot.rst
  12. 49 13
      classes/class_animationnodestatemachinetransition.rst
  13. 49 0
      classes/class_animationnodesync.rst
  14. 24 6
      classes/class_animationnodetransition.rst
  15. 29 11
      classes/class_animationtree.rst
  16. 8 0
      classes/class_audioserver.rst
  17. 36 20
      classes/class_audiostream.rst
  18. 78 1
      classes/class_audiostreammp3.rst
  19. 48 0
      classes/class_audiostreamoggvorbis.rst
  20. 8 0
      classes/class_audiostreamplayback.rst
  21. 2 0
      classes/class_audiostreamplayer.rst
  22. 2 0
      classes/class_audiostreamplayer2d.rst
  23. 2 0
      classes/class_audiostreamplayer3d.rst
  24. 4 4
      classes/class_basematerial3d.rst
  25. 109 0
      classes/class_bonemap.rst
  26. 0 36
      classes/class_button.rst
  27. 6 4
      classes/class_camera3d.rst
  28. 136 106
      classes/class_canvasitem.rst
  29. 103 89
      classes/class_codeedit.rst
  30. 44 40
      classes/class_colorpicker.rst
  31. 26 7
      classes/class_confirmationdialog.rst
  32. 2 2
      classes/class_control.rst
  33. 17 9
      classes/class_decal.rst
  34. 3 3
      classes/class_editorexportplugin.rst
  35. 14 12
      classes/class_editorfiledialog.rst
  36. 25 0
      classes/class_editorplugin.rst
  37. 2 2
      classes/class_editorproperty.rst
  38. 7 3
      classes/class_editorscenepostimportplugin.rst
  39. 10 10
      classes/class_expression.rst
  40. 35 17
      classes/class_filedialog.rst
  41. 12 0
      classes/class_float.rst
  42. 180 231
      classes/class_font.rst
  43. 230 312
      classes/class_fontfile.rst
  44. 273 0
      classes/class_fontvariation.rst
  45. 0 30
      classes/class_graphnode.rst
  46. 3 2
      classes/class_httprequest.rst
  47. 45 15
      classes/class_image.rst
  48. 28 18
      classes/class_imagetexture.rst
  49. 2 0
      classes/class_input.rst
  50. 29 9
      classes/class_inputeventmousemotion.rst
  51. 12 0
      classes/class_int.rst
  52. 87 117
      classes/class_itemlist.rst
  53. 24 40
      classes/class_label.rst
  54. 2 32
      classes/class_label3d.rst
  55. 169 0
      classes/class_labelsettings.rst
  56. 2 0
      classes/class_light3d.rst
  57. 1 1
      classes/class_lightmapgi.rst
  58. 1 1
      classes/class_lightmapgidata.rst
  59. 29 59
      classes/class_lineedit.rst
  60. 0 36
      classes/class_linkbutton.rst
  61. 3 3
      classes/class_moviewriter.rst
  62. 3 1
      classes/class_multimesh.rst
  63. 53 33
      classes/class_multiplayerpeerextension.rst
  64. 0 16
      classes/class_multiplayerspawner.rst
  65. 111 7
      classes/class_multiplayersynchronizer.rst
  66. 3 1
      classes/class_navigationagent2d.rst
  67. 3 1
      classes/class_navigationagent3d.rst
  68. 34 0
      classes/class_node3d.rst
  69. 10 0
      classes/class_nodepath.rst
  70. 0 0
      classes/class_object.rst
  71. 2 2
      classes/class_openxrinterface.rst
  72. 2 2
      classes/class_openxripbinding.rst
  73. 24 0
      classes/class_os.rst
  74. 5 5
      classes/class_packedbytearray.rst
  75. 30 20
      classes/class_particlesmaterial.rst
  76. 7 7
      classes/class_plane.rst
  77. 0 30
      classes/class_popupmenu.rst
  78. 392 0
      classes/class_projection.rst
  79. 152 48
      classes/class_projectsettings.rst
  80. 2 2
      classes/class_renderingdevice.rst
  81. 86 26
      classes/class_renderingserver.rst
  82. 0 0
      classes/class_resource.rst
  83. 8 0
      classes/class_resourceformatloader.rst
  84. 24 0
      classes/class_resourceloader.rst
  85. 29 7
      classes/class_resourcesaver.rst
  86. 2 14
      classes/class_richtextlabel.rst
  87. 20 6
      classes/class_scenetree.rst
  88. 2 0
      classes/class_scriptcreatedialog.rst
  89. 13 1
      classes/class_scriptlanguageextension.rst
  90. 43 0
      classes/class_shaderinclude.rst
  91. 302 0
      classes/class_skeletonprofile.rst
  92. 35 0
      classes/class_skeletonprofilehumanoid.rst
  93. 0 16
      classes/class_spriteframes.rst
  94. 20 1
      classes/class_string.rst
  95. 2 2
      classes/class_stylebox.rst
  96. 202 0
      classes/class_systemfont.rst
  97. 47 77
      classes/class_tabbar.rst
  98. 43 37
      classes/class_textedit.rst
  99. 41 41
      classes/class_textline.rst
  100. 1 37
      classes/class_textmesh.rst

+ 165 - 0
classes/[email protected]

@@ -76,6 +76,169 @@ Constants
 
 \ **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.
 
+Annotations
+-----------
+
+.. _class_@GDScript_annotation_export:
+
+- :ref:`bool<class_bool>` **@export** **(** **)**
+
+----
+
+.. _class_@GDScript_annotation_export_category:
+
+- :ref:`bool<class_bool>` **@export_category** **(** :ref:`String<class_String>` name **)**
+
+----
+
+.. _class_@GDScript_annotation_export_color_no_alpha:
+
+- :ref:`bool<class_bool>` **@export_color_no_alpha** **(** **)**
+
+----
+
+.. _class_@GDScript_annotation_export_dir:
+
+- :ref:`bool<class_bool>` **@export_dir** **(** **)**
+
+----
+
+.. _class_@GDScript_annotation_export_enum:
+
+- :ref:`bool<class_bool>` **@export_enum** **(** :ref:`String<class_String>` names, ... **)** |vararg|
+
+----
+
+.. _class_@GDScript_annotation_export_exp_easing:
+
+- :ref:`bool<class_bool>` **@export_exp_easing** **(** :ref:`String<class_String>` hints="", ... **)** |vararg|
+
+----
+
+.. _class_@GDScript_annotation_export_file:
+
+- :ref:`bool<class_bool>` **@export_file** **(** :ref:`String<class_String>` filter="", ... **)** |vararg|
+
+----
+
+.. _class_@GDScript_annotation_export_flags:
+
+- :ref:`bool<class_bool>` **@export_flags** **(** :ref:`String<class_String>` names, ... **)** |vararg|
+
+----
+
+.. _class_@GDScript_annotation_export_flags_2d_navigation:
+
+- :ref:`bool<class_bool>` **@export_flags_2d_navigation** **(** **)**
+
+----
+
+.. _class_@GDScript_annotation_export_flags_2d_physics:
+
+- :ref:`bool<class_bool>` **@export_flags_2d_physics** **(** **)**
+
+----
+
+.. _class_@GDScript_annotation_export_flags_2d_render:
+
+- :ref:`bool<class_bool>` **@export_flags_2d_render** **(** **)**
+
+----
+
+.. _class_@GDScript_annotation_export_flags_3d_navigation:
+
+- :ref:`bool<class_bool>` **@export_flags_3d_navigation** **(** **)**
+
+----
+
+.. _class_@GDScript_annotation_export_flags_3d_physics:
+
+- :ref:`bool<class_bool>` **@export_flags_3d_physics** **(** **)**
+
+----
+
+.. _class_@GDScript_annotation_export_flags_3d_render:
+
+- :ref:`bool<class_bool>` **@export_flags_3d_render** **(** **)**
+
+----
+
+.. _class_@GDScript_annotation_export_global_dir:
+
+- :ref:`bool<class_bool>` **@export_global_dir** **(** **)**
+
+----
+
+.. _class_@GDScript_annotation_export_global_file:
+
+- :ref:`bool<class_bool>` **@export_global_file** **(** :ref:`String<class_String>` filter="", ... **)** |vararg|
+
+----
+
+.. _class_@GDScript_annotation_export_group:
+
+- :ref:`bool<class_bool>` **@export_group** **(** :ref:`String<class_String>` name, :ref:`String<class_String>` prefix="" **)**
+
+----
+
+.. _class_@GDScript_annotation_export_multiline:
+
+- :ref:`bool<class_bool>` **@export_multiline** **(** **)**
+
+----
+
+.. _class_@GDScript_annotation_export_node_path:
+
+- :ref:`bool<class_bool>` **@export_node_path** **(** :ref:`String<class_String>` type="", ... **)** |vararg|
+
+----
+
+.. _class_@GDScript_annotation_export_placeholder:
+
+- :ref:`bool<class_bool>` **@export_placeholder** **(** **)**
+
+----
+
+.. _class_@GDScript_annotation_export_range:
+
+- :ref:`bool<class_bool>` **@export_range** **(** :ref:`float<class_float>` min, :ref:`float<class_float>` max, :ref:`float<class_float>` step=1.0, :ref:`String<class_String>` extra_hints="", ... **)** |vararg|
+
+----
+
+.. _class_@GDScript_annotation_export_subgroup:
+
+- :ref:`bool<class_bool>` **@export_subgroup** **(** :ref:`String<class_String>` name, :ref:`String<class_String>` prefix="" **)**
+
+----
+
+.. _class_@GDScript_annotation_icon:
+
+- :ref:`bool<class_bool>` **@icon** **(** :ref:`String<class_String>` icon_path **)**
+
+----
+
+.. _class_@GDScript_annotation_onready:
+
+- :ref:`bool<class_bool>` **@onready** **(** **)**
+
+----
+
+.. _class_@GDScript_annotation_rpc:
+
+- :ref:`bool<class_bool>` **@rpc** **(** :ref:`String<class_String>` mode="", :ref:`String<class_String>` sync="", :ref:`String<class_String>` transfer_mode="", :ref:`int<class_int>` transfer_channel=0, ... **)** |vararg|
+
+----
+
+.. _class_@GDScript_annotation_tool:
+
+- :ref:`bool<class_bool>` **@tool** **(** **)**
+
+----
+
+.. _class_@GDScript_annotation_warning_ignore:
+
+- :ref:`bool<class_bool>` **@warning_ignore** **(** :ref:`String<class_String>` warning, ... **)** |vararg|
+
 Method Descriptions
 -------------------
 
@@ -241,6 +404,8 @@ Loads a resource from the filesystem located at ``path``. The resource is loaded
 
 This method 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>`.
+
 ----
 
 .. _class_@GDScript_method_preload:

+ 360 - 303
classes/[email protected]

@@ -93,191 +93,199 @@ Properties
 +---------------------------------------------------------------+-------------------------------------------------------------------------------------+
 | :ref:`VisualScriptCustomNodes<class_VisualScriptCustomNodes>` | :ref:`VisualScriptCustomNodes<class_@GlobalScope_property_VisualScriptCustomNodes>` |
 +---------------------------------------------------------------+-------------------------------------------------------------------------------------+
+| :ref:`WorkerThreadPool<class_WorkerThreadPool>`               | :ref:`WorkerThreadPool<class_@GlobalScope_property_WorkerThreadPool>`               |
++---------------------------------------------------------------+-------------------------------------------------------------------------------------+
 | :ref:`XRServer<class_XRServer>`                               | :ref:`XRServer<class_@GlobalScope_property_XRServer>`                               |
 +---------------------------------------------------------------+-------------------------------------------------------------------------------------+
 
 Methods
 -------
 
-+-------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Variant<class_Variant>`                   | :ref:`abs<class_@GlobalScope_method_abs>` **(** :ref:`Variant<class_Variant>` x **)**                                                                                                                                                           |
-+-------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                       | :ref:`absf<class_@GlobalScope_method_absf>` **(** :ref:`float<class_float>` x **)**                                                                                                                                                             |
-+-------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                           | :ref:`absi<class_@GlobalScope_method_absi>` **(** :ref:`int<class_int>` x **)**                                                                                                                                                                 |
-+-------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                       | :ref:`acos<class_@GlobalScope_method_acos>` **(** :ref:`float<class_float>` x **)**                                                                                                                                                             |
-+-------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                       | :ref:`asin<class_@GlobalScope_method_asin>` **(** :ref:`float<class_float>` x **)**                                                                                                                                                             |
-+-------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                       | :ref:`atan<class_@GlobalScope_method_atan>` **(** :ref:`float<class_float>` x **)**                                                                                                                                                             |
-+-------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                       | :ref:`atan2<class_@GlobalScope_method_atan2>` **(** :ref:`float<class_float>` y, :ref:`float<class_float>` x **)**                                                                                                                              |
-+-------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Variant<class_Variant>`                   | :ref:`bytes2var<class_@GlobalScope_method_bytes2var>` **(** :ref:`PackedByteArray<class_PackedByteArray>` bytes **)**                                                                                                                           |
-+-------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Variant<class_Variant>`                   | :ref:`bytes2var_with_objects<class_@GlobalScope_method_bytes2var_with_objects>` **(** :ref:`PackedByteArray<class_PackedByteArray>` bytes **)**                                                                                                 |
-+-------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                       | :ref:`ceil<class_@GlobalScope_method_ceil>` **(** :ref:`float<class_float>` x **)**                                                                                                                                                             |
-+-------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Variant<class_Variant>`                   | :ref:`clamp<class_@GlobalScope_method_clamp>` **(** :ref:`Variant<class_Variant>` value, :ref:`Variant<class_Variant>` min, :ref:`Variant<class_Variant>` max **)**                                                                             |
-+-------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                       | :ref:`clampf<class_@GlobalScope_method_clampf>` **(** :ref:`float<class_float>` value, :ref:`float<class_float>` min, :ref:`float<class_float>` max **)**                                                                                       |
-+-------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                           | :ref:`clampi<class_@GlobalScope_method_clampi>` **(** :ref:`int<class_int>` value, :ref:`int<class_int>` min, :ref:`int<class_int>` max **)**                                                                                                   |
-+-------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                       | :ref:`cos<class_@GlobalScope_method_cos>` **(** :ref:`float<class_float>` angle_rad **)**                                                                                                                                                       |
-+-------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                       | :ref:`cosh<class_@GlobalScope_method_cosh>` **(** :ref:`float<class_float>` x **)**                                                                                                                                                             |
-+-------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                       | :ref:`cubic_interpolate<class_@GlobalScope_method_cubic_interpolate>` **(** :ref:`float<class_float>` from, :ref:`float<class_float>` to, :ref:`float<class_float>` pre, :ref:`float<class_float>` post, :ref:`float<class_float>` weight **)** |
-+-------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                       | :ref:`db2linear<class_@GlobalScope_method_db2linear>` **(** :ref:`float<class_float>` db **)**                                                                                                                                                  |
-+-------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                       | :ref:`deg2rad<class_@GlobalScope_method_deg2rad>` **(** :ref:`float<class_float>` deg **)**                                                                                                                                                     |
-+-------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                       | :ref:`ease<class_@GlobalScope_method_ease>` **(** :ref:`float<class_float>` x, :ref:`float<class_float>` curve **)**                                                                                                                            |
-+-------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_String>`                     | :ref:`error_string<class_@GlobalScope_method_error_string>` **(** :ref:`int<class_int>` error **)**                                                                                                                                             |
-+-------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                       | :ref:`exp<class_@GlobalScope_method_exp>` **(** :ref:`float<class_float>` x **)**                                                                                                                                                               |
-+-------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                       | :ref:`floor<class_@GlobalScope_method_floor>` **(** :ref:`float<class_float>` x **)**                                                                                                                                                           |
-+-------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                       | :ref:`fmod<class_@GlobalScope_method_fmod>` **(** :ref:`float<class_float>` x, :ref:`float<class_float>` y **)**                                                                                                                                |
-+-------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                       | :ref:`fposmod<class_@GlobalScope_method_fposmod>` **(** :ref:`float<class_float>` x, :ref:`float<class_float>` y **)**                                                                                                                          |
-+-------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                           | :ref:`hash<class_@GlobalScope_method_hash>` **(** :ref:`Variant<class_Variant>` variable **)**                                                                                                                                                  |
-+-------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Object<class_Object>`                     | :ref:`instance_from_id<class_@GlobalScope_method_instance_from_id>` **(** :ref:`int<class_int>` instance_id **)**                                                                                                                               |
-+-------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                       | :ref:`inverse_lerp<class_@GlobalScope_method_inverse_lerp>` **(** :ref:`float<class_float>` from, :ref:`float<class_float>` to, :ref:`float<class_float>` weight **)**                                                                          |
-+-------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                         | :ref:`is_equal_approx<class_@GlobalScope_method_is_equal_approx>` **(** :ref:`float<class_float>` a, :ref:`float<class_float>` b **)**                                                                                                          |
-+-------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                         | :ref:`is_inf<class_@GlobalScope_method_is_inf>` **(** :ref:`float<class_float>` x **)**                                                                                                                                                         |
-+-------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                         | :ref:`is_instance_id_valid<class_@GlobalScope_method_is_instance_id_valid>` **(** :ref:`int<class_int>` id **)**                                                                                                                                |
-+-------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                         | :ref:`is_instance_valid<class_@GlobalScope_method_is_instance_valid>` **(** :ref:`Variant<class_Variant>` instance **)**                                                                                                                        |
-+-------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                         | :ref:`is_nan<class_@GlobalScope_method_is_nan>` **(** :ref:`float<class_float>` x **)**                                                                                                                                                         |
-+-------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                         | :ref:`is_zero_approx<class_@GlobalScope_method_is_zero_approx>` **(** :ref:`float<class_float>` x **)**                                                                                                                                         |
-+-------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                       | :ref:`lerp<class_@GlobalScope_method_lerp>` **(** :ref:`float<class_float>` from, :ref:`float<class_float>` to, :ref:`float<class_float>` weight **)**                                                                                          |
-+-------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                       | :ref:`lerp_angle<class_@GlobalScope_method_lerp_angle>` **(** :ref:`float<class_float>` from, :ref:`float<class_float>` to, :ref:`float<class_float>` weight **)**                                                                              |
-+-------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                       | :ref:`linear2db<class_@GlobalScope_method_linear2db>` **(** :ref:`float<class_float>` lin **)**                                                                                                                                                 |
-+-------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                       | :ref:`log<class_@GlobalScope_method_log>` **(** :ref:`float<class_float>` x **)**                                                                                                                                                               |
-+-------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Variant<class_Variant>`                   | :ref:`max<class_@GlobalScope_method_max>` **(** ... **)** |vararg|                                                                                                                                                                              |
-+-------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                       | :ref:`maxf<class_@GlobalScope_method_maxf>` **(** :ref:`float<class_float>` a, :ref:`float<class_float>` b **)**                                                                                                                                |
-+-------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                           | :ref:`maxi<class_@GlobalScope_method_maxi>` **(** :ref:`int<class_int>` a, :ref:`int<class_int>` b **)**                                                                                                                                        |
-+-------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Variant<class_Variant>`                   | :ref:`min<class_@GlobalScope_method_min>` **(** ... **)** |vararg|                                                                                                                                                                              |
-+-------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                       | :ref:`minf<class_@GlobalScope_method_minf>` **(** :ref:`float<class_float>` a, :ref:`float<class_float>` b **)**                                                                                                                                |
-+-------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                           | :ref:`mini<class_@GlobalScope_method_mini>` **(** :ref:`int<class_int>` a, :ref:`int<class_int>` b **)**                                                                                                                                        |
-+-------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                       | :ref:`move_toward<class_@GlobalScope_method_move_toward>` **(** :ref:`float<class_float>` from, :ref:`float<class_float>` to, :ref:`float<class_float>` delta **)**                                                                             |
-+-------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                           | :ref:`nearest_po2<class_@GlobalScope_method_nearest_po2>` **(** :ref:`int<class_int>` value **)**                                                                                                                                               |
-+-------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                       | :ref:`pingpong<class_@GlobalScope_method_pingpong>` **(** :ref:`float<class_float>` value, :ref:`float<class_float>` length **)**                                                                                                               |
-+-------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                           | :ref:`posmod<class_@GlobalScope_method_posmod>` **(** :ref:`int<class_int>` x, :ref:`int<class_int>` y **)**                                                                                                                                    |
-+-------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                       | :ref:`pow<class_@GlobalScope_method_pow>` **(** :ref:`float<class_float>` base, :ref:`float<class_float>` exp **)**                                                                                                                             |
-+-------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                            | :ref:`print<class_@GlobalScope_method_print>` **(** ... **)** |vararg|                                                                                                                                                                          |
-+-------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                            | :ref:`print_verbose<class_@GlobalScope_method_print_verbose>` **(** ... **)** |vararg|                                                                                                                                                          |
-+-------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                            | :ref:`printerr<class_@GlobalScope_method_printerr>` **(** ... **)** |vararg|                                                                                                                                                                    |
-+-------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                            | :ref:`printraw<class_@GlobalScope_method_printraw>` **(** ... **)** |vararg|                                                                                                                                                                    |
-+-------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                            | :ref:`prints<class_@GlobalScope_method_prints>` **(** ... **)** |vararg|                                                                                                                                                                        |
-+-------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                            | :ref:`printt<class_@GlobalScope_method_printt>` **(** ... **)** |vararg|                                                                                                                                                                        |
-+-------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                            | :ref:`push_error<class_@GlobalScope_method_push_error>` **(** ... **)** |vararg|                                                                                                                                                                |
-+-------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                            | :ref:`push_warning<class_@GlobalScope_method_push_warning>` **(** ... **)** |vararg|                                                                                                                                                            |
-+-------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                       | :ref:`rad2deg<class_@GlobalScope_method_rad2deg>` **(** :ref:`float<class_float>` rad **)**                                                                                                                                                     |
-+-------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`PackedInt64Array<class_PackedInt64Array>` | :ref:`rand_from_seed<class_@GlobalScope_method_rand_from_seed>` **(** :ref:`int<class_int>` seed **)**                                                                                                                                          |
-+-------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                       | :ref:`randf<class_@GlobalScope_method_randf>` **(** **)**                                                                                                                                                                                       |
-+-------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                       | :ref:`randf_range<class_@GlobalScope_method_randf_range>` **(** :ref:`float<class_float>` from, :ref:`float<class_float>` to **)**                                                                                                              |
-+-------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                       | :ref:`randfn<class_@GlobalScope_method_randfn>` **(** :ref:`float<class_float>` mean, :ref:`float<class_float>` deviation **)**                                                                                                                 |
-+-------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                           | :ref:`randi<class_@GlobalScope_method_randi>` **(** **)**                                                                                                                                                                                       |
-+-------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                           | :ref:`randi_range<class_@GlobalScope_method_randi_range>` **(** :ref:`int<class_int>` from, :ref:`int<class_int>` to **)**                                                                                                                      |
-+-------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                            | :ref:`randomize<class_@GlobalScope_method_randomize>` **(** **)**                                                                                                                                                                               |
-+-------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                       | :ref:`range_lerp<class_@GlobalScope_method_range_lerp>` **(** :ref:`float<class_float>` value, :ref:`float<class_float>` istart, :ref:`float<class_float>` istop, :ref:`float<class_float>` ostart, :ref:`float<class_float>` ostop **)**       |
-+-------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                           | :ref:`rid_allocate_id<class_@GlobalScope_method_rid_allocate_id>` **(** **)**                                                                                                                                                                   |
-+-------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`RID<class_RID>`                           | :ref:`rid_from_int64<class_@GlobalScope_method_rid_from_int64>` **(** :ref:`int<class_int>` base **)**                                                                                                                                          |
-+-------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                       | :ref:`round<class_@GlobalScope_method_round>` **(** :ref:`float<class_float>` x **)**                                                                                                                                                           |
-+-------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                            | :ref:`seed<class_@GlobalScope_method_seed>` **(** :ref:`int<class_int>` base **)**                                                                                                                                                              |
-+-------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Variant<class_Variant>`                   | :ref:`sign<class_@GlobalScope_method_sign>` **(** :ref:`Variant<class_Variant>` x **)**                                                                                                                                                         |
-+-------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                       | :ref:`signf<class_@GlobalScope_method_signf>` **(** :ref:`float<class_float>` x **)**                                                                                                                                                           |
-+-------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                           | :ref:`signi<class_@GlobalScope_method_signi>` **(** :ref:`int<class_int>` x **)**                                                                                                                                                               |
-+-------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                       | :ref:`sin<class_@GlobalScope_method_sin>` **(** :ref:`float<class_float>` angle_rad **)**                                                                                                                                                       |
-+-------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                       | :ref:`sinh<class_@GlobalScope_method_sinh>` **(** :ref:`float<class_float>` x **)**                                                                                                                                                             |
-+-------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                       | :ref:`smoothstep<class_@GlobalScope_method_smoothstep>` **(** :ref:`float<class_float>` from, :ref:`float<class_float>` to, :ref:`float<class_float>` x **)**                                                                                   |
-+-------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                       | :ref:`snapped<class_@GlobalScope_method_snapped>` **(** :ref:`float<class_float>` x, :ref:`float<class_float>` step **)**                                                                                                                       |
-+-------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                       | :ref:`sqrt<class_@GlobalScope_method_sqrt>` **(** :ref:`float<class_float>` x **)**                                                                                                                                                             |
-+-------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                           | :ref:`step_decimals<class_@GlobalScope_method_step_decimals>` **(** :ref:`float<class_float>` x **)**                                                                                                                                           |
-+-------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_String>`                     | :ref:`str<class_@GlobalScope_method_str>` **(** ... **)** |vararg|                                                                                                                                                                              |
-+-------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Variant<class_Variant>`                   | :ref:`str2var<class_@GlobalScope_method_str2var>` **(** :ref:`String<class_String>` string **)**                                                                                                                                                |
-+-------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                       | :ref:`tan<class_@GlobalScope_method_tan>` **(** :ref:`float<class_float>` angle_rad **)**                                                                                                                                                       |
-+-------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                       | :ref:`tanh<class_@GlobalScope_method_tanh>` **(** :ref:`float<class_float>` x **)**                                                                                                                                                             |
-+-------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                           | :ref:`typeof<class_@GlobalScope_method_typeof>` **(** :ref:`Variant<class_Variant>` variable **)**                                                                                                                                              |
-+-------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`PackedByteArray<class_PackedByteArray>`   | :ref:`var2bytes<class_@GlobalScope_method_var2bytes>` **(** :ref:`Variant<class_Variant>` variable **)**                                                                                                                                        |
-+-------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`PackedByteArray<class_PackedByteArray>`   | :ref:`var2bytes_with_objects<class_@GlobalScope_method_var2bytes_with_objects>` **(** :ref:`Variant<class_Variant>` variable **)**                                                                                                              |
-+-------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_String>`                     | :ref:`var2str<class_@GlobalScope_method_var2str>` **(** :ref:`Variant<class_Variant>` variable **)**                                                                                                                                            |
-+-------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Variant<class_Variant>`                   | :ref:`weakref<class_@GlobalScope_method_weakref>` **(** :ref:`Variant<class_Variant>` obj **)**                                                                                                                                                 |
-+-------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                       | :ref:`wrapf<class_@GlobalScope_method_wrapf>` **(** :ref:`float<class_float>` value, :ref:`float<class_float>` min, :ref:`float<class_float>` max **)**                                                                                         |
-+-------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                           | :ref:`wrapi<class_@GlobalScope_method_wrapi>` **(** :ref:`int<class_int>` value, :ref:`int<class_int>` min, :ref:`int<class_int>` max **)**                                                                                                     |
-+-------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
++-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Variant<class_Variant>`                   | :ref:`abs<class_@GlobalScope_method_abs>` **(** :ref:`Variant<class_Variant>` x **)**                                                                                                                                                                     |
++-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                       | :ref:`absf<class_@GlobalScope_method_absf>` **(** :ref:`float<class_float>` x **)**                                                                                                                                                                       |
++-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                           | :ref:`absi<class_@GlobalScope_method_absi>` **(** :ref:`int<class_int>` x **)**                                                                                                                                                                           |
++-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                       | :ref:`acos<class_@GlobalScope_method_acos>` **(** :ref:`float<class_float>` x **)**                                                                                                                                                                       |
++-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                       | :ref:`asin<class_@GlobalScope_method_asin>` **(** :ref:`float<class_float>` x **)**                                                                                                                                                                       |
++-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                       | :ref:`atan<class_@GlobalScope_method_atan>` **(** :ref:`float<class_float>` x **)**                                                                                                                                                                       |
++-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                       | :ref:`atan2<class_@GlobalScope_method_atan2>` **(** :ref:`float<class_float>` y, :ref:`float<class_float>` x **)**                                                                                                                                        |
++-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                       | :ref:`bezier_interpolate<class_@GlobalScope_method_bezier_interpolate>` **(** :ref:`float<class_float>` start, :ref:`float<class_float>` control_1, :ref:`float<class_float>` control_2, :ref:`float<class_float>` end, :ref:`float<class_float>` t **)** |
++-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Variant<class_Variant>`                   | :ref:`bytes2var<class_@GlobalScope_method_bytes2var>` **(** :ref:`PackedByteArray<class_PackedByteArray>` bytes **)**                                                                                                                                     |
++-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Variant<class_Variant>`                   | :ref:`bytes2var_with_objects<class_@GlobalScope_method_bytes2var_with_objects>` **(** :ref:`PackedByteArray<class_PackedByteArray>` bytes **)**                                                                                                           |
++-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                       | :ref:`ceil<class_@GlobalScope_method_ceil>` **(** :ref:`float<class_float>` x **)**                                                                                                                                                                       |
++-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Variant<class_Variant>`                   | :ref:`clamp<class_@GlobalScope_method_clamp>` **(** :ref:`Variant<class_Variant>` value, :ref:`Variant<class_Variant>` min, :ref:`Variant<class_Variant>` max **)**                                                                                       |
++-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                       | :ref:`clampf<class_@GlobalScope_method_clampf>` **(** :ref:`float<class_float>` value, :ref:`float<class_float>` min, :ref:`float<class_float>` max **)**                                                                                                 |
++-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                           | :ref:`clampi<class_@GlobalScope_method_clampi>` **(** :ref:`int<class_int>` value, :ref:`int<class_int>` min, :ref:`int<class_int>` max **)**                                                                                                             |
++-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                       | :ref:`cos<class_@GlobalScope_method_cos>` **(** :ref:`float<class_float>` angle_rad **)**                                                                                                                                                                 |
++-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                       | :ref:`cosh<class_@GlobalScope_method_cosh>` **(** :ref:`float<class_float>` x **)**                                                                                                                                                                       |
++-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                       | :ref:`cubic_interpolate<class_@GlobalScope_method_cubic_interpolate>` **(** :ref:`float<class_float>` from, :ref:`float<class_float>` to, :ref:`float<class_float>` pre, :ref:`float<class_float>` post, :ref:`float<class_float>` weight **)**           |
++-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                       | :ref:`db2linear<class_@GlobalScope_method_db2linear>` **(** :ref:`float<class_float>` db **)**                                                                                                                                                            |
++-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                       | :ref:`deg2rad<class_@GlobalScope_method_deg2rad>` **(** :ref:`float<class_float>` deg **)**                                                                                                                                                               |
++-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                       | :ref:`ease<class_@GlobalScope_method_ease>` **(** :ref:`float<class_float>` x, :ref:`float<class_float>` curve **)**                                                                                                                                      |
++-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`                     | :ref:`error_string<class_@GlobalScope_method_error_string>` **(** :ref:`int<class_int>` error **)**                                                                                                                                                       |
++-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                       | :ref:`exp<class_@GlobalScope_method_exp>` **(** :ref:`float<class_float>` x **)**                                                                                                                                                                         |
++-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                       | :ref:`floor<class_@GlobalScope_method_floor>` **(** :ref:`float<class_float>` x **)**                                                                                                                                                                     |
++-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                       | :ref:`fmod<class_@GlobalScope_method_fmod>` **(** :ref:`float<class_float>` x, :ref:`float<class_float>` y **)**                                                                                                                                          |
++-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                       | :ref:`fposmod<class_@GlobalScope_method_fposmod>` **(** :ref:`float<class_float>` x, :ref:`float<class_float>` y **)**                                                                                                                                    |
++-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                           | :ref:`hash<class_@GlobalScope_method_hash>` **(** :ref:`Variant<class_Variant>` variable **)**                                                                                                                                                            |
++-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Object<class_Object>`                     | :ref:`instance_from_id<class_@GlobalScope_method_instance_from_id>` **(** :ref:`int<class_int>` instance_id **)**                                                                                                                                         |
++-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                       | :ref:`inverse_lerp<class_@GlobalScope_method_inverse_lerp>` **(** :ref:`float<class_float>` from, :ref:`float<class_float>` to, :ref:`float<class_float>` weight **)**                                                                                    |
++-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                         | :ref:`is_equal_approx<class_@GlobalScope_method_is_equal_approx>` **(** :ref:`float<class_float>` a, :ref:`float<class_float>` b **)**                                                                                                                    |
++-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                         | :ref:`is_inf<class_@GlobalScope_method_is_inf>` **(** :ref:`float<class_float>` x **)**                                                                                                                                                                   |
++-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                         | :ref:`is_instance_id_valid<class_@GlobalScope_method_is_instance_id_valid>` **(** :ref:`int<class_int>` id **)**                                                                                                                                          |
++-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                         | :ref:`is_instance_valid<class_@GlobalScope_method_is_instance_valid>` **(** :ref:`Variant<class_Variant>` instance **)**                                                                                                                                  |
++-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                         | :ref:`is_nan<class_@GlobalScope_method_is_nan>` **(** :ref:`float<class_float>` x **)**                                                                                                                                                                   |
++-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                         | :ref:`is_zero_approx<class_@GlobalScope_method_is_zero_approx>` **(** :ref:`float<class_float>` x **)**                                                                                                                                                   |
++-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                       | :ref:`lerp<class_@GlobalScope_method_lerp>` **(** :ref:`float<class_float>` from, :ref:`float<class_float>` to, :ref:`float<class_float>` weight **)**                                                                                                    |
++-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                       | :ref:`lerp_angle<class_@GlobalScope_method_lerp_angle>` **(** :ref:`float<class_float>` from, :ref:`float<class_float>` to, :ref:`float<class_float>` weight **)**                                                                                        |
++-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                       | :ref:`linear2db<class_@GlobalScope_method_linear2db>` **(** :ref:`float<class_float>` lin **)**                                                                                                                                                           |
++-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                       | :ref:`log<class_@GlobalScope_method_log>` **(** :ref:`float<class_float>` x **)**                                                                                                                                                                         |
++-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Variant<class_Variant>`                   | :ref:`max<class_@GlobalScope_method_max>` **(** ... **)** |vararg|                                                                                                                                                                                        |
++-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                       | :ref:`maxf<class_@GlobalScope_method_maxf>` **(** :ref:`float<class_float>` a, :ref:`float<class_float>` b **)**                                                                                                                                          |
++-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                           | :ref:`maxi<class_@GlobalScope_method_maxi>` **(** :ref:`int<class_int>` a, :ref:`int<class_int>` b **)**                                                                                                                                                  |
++-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Variant<class_Variant>`                   | :ref:`min<class_@GlobalScope_method_min>` **(** ... **)** |vararg|                                                                                                                                                                                        |
++-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                       | :ref:`minf<class_@GlobalScope_method_minf>` **(** :ref:`float<class_float>` a, :ref:`float<class_float>` b **)**                                                                                                                                          |
++-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                           | :ref:`mini<class_@GlobalScope_method_mini>` **(** :ref:`int<class_int>` a, :ref:`int<class_int>` b **)**                                                                                                                                                  |
++-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                       | :ref:`move_toward<class_@GlobalScope_method_move_toward>` **(** :ref:`float<class_float>` from, :ref:`float<class_float>` to, :ref:`float<class_float>` delta **)**                                                                                       |
++-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                           | :ref:`nearest_po2<class_@GlobalScope_method_nearest_po2>` **(** :ref:`int<class_int>` value **)**                                                                                                                                                         |
++-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                       | :ref:`pingpong<class_@GlobalScope_method_pingpong>` **(** :ref:`float<class_float>` value, :ref:`float<class_float>` length **)**                                                                                                                         |
++-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                           | :ref:`posmod<class_@GlobalScope_method_posmod>` **(** :ref:`int<class_int>` x, :ref:`int<class_int>` y **)**                                                                                                                                              |
++-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                       | :ref:`pow<class_@GlobalScope_method_pow>` **(** :ref:`float<class_float>` base, :ref:`float<class_float>` exp **)**                                                                                                                                       |
++-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                            | :ref:`print<class_@GlobalScope_method_print>` **(** ... **)** |vararg|                                                                                                                                                                                    |
++-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                            | :ref:`print_rich<class_@GlobalScope_method_print_rich>` **(** ... **)** |vararg|                                                                                                                                                                          |
++-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                            | :ref:`print_verbose<class_@GlobalScope_method_print_verbose>` **(** ... **)** |vararg|                                                                                                                                                                    |
++-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                            | :ref:`printerr<class_@GlobalScope_method_printerr>` **(** ... **)** |vararg|                                                                                                                                                                              |
++-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                            | :ref:`printraw<class_@GlobalScope_method_printraw>` **(** ... **)** |vararg|                                                                                                                                                                              |
++-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                            | :ref:`prints<class_@GlobalScope_method_prints>` **(** ... **)** |vararg|                                                                                                                                                                                  |
++-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                            | :ref:`printt<class_@GlobalScope_method_printt>` **(** ... **)** |vararg|                                                                                                                                                                                  |
++-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                            | :ref:`push_error<class_@GlobalScope_method_push_error>` **(** ... **)** |vararg|                                                                                                                                                                          |
++-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                            | :ref:`push_warning<class_@GlobalScope_method_push_warning>` **(** ... **)** |vararg|                                                                                                                                                                      |
++-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                       | :ref:`rad2deg<class_@GlobalScope_method_rad2deg>` **(** :ref:`float<class_float>` rad **)**                                                                                                                                                               |
++-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`PackedInt64Array<class_PackedInt64Array>` | :ref:`rand_from_seed<class_@GlobalScope_method_rand_from_seed>` **(** :ref:`int<class_int>` seed **)**                                                                                                                                                    |
++-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                       | :ref:`randf<class_@GlobalScope_method_randf>` **(** **)**                                                                                                                                                                                                 |
++-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                       | :ref:`randf_range<class_@GlobalScope_method_randf_range>` **(** :ref:`float<class_float>` from, :ref:`float<class_float>` to **)**                                                                                                                        |
++-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                       | :ref:`randfn<class_@GlobalScope_method_randfn>` **(** :ref:`float<class_float>` mean, :ref:`float<class_float>` deviation **)**                                                                                                                           |
++-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                           | :ref:`randi<class_@GlobalScope_method_randi>` **(** **)**                                                                                                                                                                                                 |
++-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                           | :ref:`randi_range<class_@GlobalScope_method_randi_range>` **(** :ref:`int<class_int>` from, :ref:`int<class_int>` to **)**                                                                                                                                |
++-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                            | :ref:`randomize<class_@GlobalScope_method_randomize>` **(** **)**                                                                                                                                                                                         |
++-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                       | :ref:`range_lerp<class_@GlobalScope_method_range_lerp>` **(** :ref:`float<class_float>` value, :ref:`float<class_float>` istart, :ref:`float<class_float>` istop, :ref:`float<class_float>` ostart, :ref:`float<class_float>` ostop **)**                 |
++-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                           | :ref:`rid_allocate_id<class_@GlobalScope_method_rid_allocate_id>` **(** **)**                                                                                                                                                                             |
++-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`RID<class_RID>`                           | :ref:`rid_from_int64<class_@GlobalScope_method_rid_from_int64>` **(** :ref:`int<class_int>` base **)**                                                                                                                                                    |
++-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                       | :ref:`round<class_@GlobalScope_method_round>` **(** :ref:`float<class_float>` x **)**                                                                                                                                                                     |
++-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                            | :ref:`seed<class_@GlobalScope_method_seed>` **(** :ref:`int<class_int>` base **)**                                                                                                                                                                        |
++-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Variant<class_Variant>`                   | :ref:`sign<class_@GlobalScope_method_sign>` **(** :ref:`Variant<class_Variant>` x **)**                                                                                                                                                                   |
++-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                       | :ref:`signf<class_@GlobalScope_method_signf>` **(** :ref:`float<class_float>` x **)**                                                                                                                                                                     |
++-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                           | :ref:`signi<class_@GlobalScope_method_signi>` **(** :ref:`int<class_int>` x **)**                                                                                                                                                                         |
++-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                       | :ref:`sin<class_@GlobalScope_method_sin>` **(** :ref:`float<class_float>` angle_rad **)**                                                                                                                                                                 |
++-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                       | :ref:`sinh<class_@GlobalScope_method_sinh>` **(** :ref:`float<class_float>` x **)**                                                                                                                                                                       |
++-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                       | :ref:`smoothstep<class_@GlobalScope_method_smoothstep>` **(** :ref:`float<class_float>` from, :ref:`float<class_float>` to, :ref:`float<class_float>` x **)**                                                                                             |
++-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                       | :ref:`snapped<class_@GlobalScope_method_snapped>` **(** :ref:`float<class_float>` x, :ref:`float<class_float>` step **)**                                                                                                                                 |
++-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                       | :ref:`sqrt<class_@GlobalScope_method_sqrt>` **(** :ref:`float<class_float>` x **)**                                                                                                                                                                       |
++-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                           | :ref:`step_decimals<class_@GlobalScope_method_step_decimals>` **(** :ref:`float<class_float>` x **)**                                                                                                                                                     |
++-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`                     | :ref:`str<class_@GlobalScope_method_str>` **(** ... **)** |vararg|                                                                                                                                                                                        |
++-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Variant<class_Variant>`                   | :ref:`str2var<class_@GlobalScope_method_str2var>` **(** :ref:`String<class_String>` string **)**                                                                                                                                                          |
++-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                       | :ref:`tan<class_@GlobalScope_method_tan>` **(** :ref:`float<class_float>` angle_rad **)**                                                                                                                                                                 |
++-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                       | :ref:`tanh<class_@GlobalScope_method_tanh>` **(** :ref:`float<class_float>` x **)**                                                                                                                                                                       |
++-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                           | :ref:`typeof<class_@GlobalScope_method_typeof>` **(** :ref:`Variant<class_Variant>` variable **)**                                                                                                                                                        |
++-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`PackedByteArray<class_PackedByteArray>`   | :ref:`var2bytes<class_@GlobalScope_method_var2bytes>` **(** :ref:`Variant<class_Variant>` variable **)**                                                                                                                                                  |
++-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`PackedByteArray<class_PackedByteArray>`   | :ref:`var2bytes_with_objects<class_@GlobalScope_method_var2bytes_with_objects>` **(** :ref:`Variant<class_Variant>` variable **)**                                                                                                                        |
++-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`                     | :ref:`var2str<class_@GlobalScope_method_var2str>` **(** :ref:`Variant<class_Variant>` variable **)**                                                                                                                                                      |
++-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Variant<class_Variant>`                   | :ref:`weakref<class_@GlobalScope_method_weakref>` **(** :ref:`Variant<class_Variant>` obj **)**                                                                                                                                                           |
++-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Variant<class_Variant>`                   | :ref:`wrap<class_@GlobalScope_method_wrap>` **(** :ref:`Variant<class_Variant>` value, :ref:`Variant<class_Variant>` min, :ref:`Variant<class_Variant>` max **)**                                                                                         |
++-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                       | :ref:`wrapf<class_@GlobalScope_method_wrapf>` **(** :ref:`float<class_float>` value, :ref:`float<class_float>` min, :ref:`float<class_float>` max **)**                                                                                                   |
++-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                           | :ref:`wrapi<class_@GlobalScope_method_wrapi>` **(** :ref:`int<class_int>` value, :ref:`int<class_int>` min, :ref:`int<class_int>` max **)**                                                                                                               |
++-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 
 Enumerations
 ------------
@@ -2075,12 +2083,8 @@ Since :ref:`OK<class_@GlobalScope_constant_OK>` has value 0, and all other failu
 
 .. _class_@GlobalScope_constant_PROPERTY_HINT_EXP_EASING:
 
-.. _class_@GlobalScope_constant_PROPERTY_HINT_LENGTH:
-
 .. _class_@GlobalScope_constant_PROPERTY_HINT_LINK:
 
-.. _class_@GlobalScope_constant_PROPERTY_HINT_KEY_ACCEL:
-
 .. _class_@GlobalScope_constant_PROPERTY_HINT_FLAGS:
 
 .. _class_@GlobalScope_constant_PROPERTY_HINT_LAYERS_2D_RENDER:
@@ -2107,6 +2111,8 @@ Since :ref:`OK<class_@GlobalScope_constant_OK>` has value 0, and all other failu
 
 .. _class_@GlobalScope_constant_PROPERTY_HINT_MULTILINE_TEXT:
 
+.. _class_@GlobalScope_constant_PROPERTY_HINT_EXPRESSION:
+
 .. _class_@GlobalScope_constant_PROPERTY_HINT_PLACEHOLDER_TEXT:
 
 .. _class_@GlobalScope_constant_PROPERTY_HINT_COLOR_NO_ALPHA:
@@ -2155,6 +2161,8 @@ Since :ref:`OK<class_@GlobalScope_constant_OK>` has value 0, and all other failu
 
 .. _class_@GlobalScope_constant_PROPERTY_HINT_LOCALIZABLE_STRING:
 
+.. _class_@GlobalScope_constant_PROPERTY_HINT_NODE_TYPE:
+
 .. _class_@GlobalScope_constant_PROPERTY_HINT_MAX:
 
 enum **PropertyHint**:
@@ -2163,7 +2171,7 @@ enum **PropertyHint**:
 
 - **PROPERTY_HINT_RANGE** = **1** --- Hints that an integer or float property should be within a range specified via the hint string ``"min,max"`` or ``"min,max,step"``. The hint string can optionally include ``"or_greater"`` and/or ``"or_lesser"`` to allow manual input going respectively above the max or below the min values. Example: ``"-360,360,1,or_greater,or_lesser"``.
 
-Additionally, other keywords can be included: "exp" for exponential range editing, "radians" for editing radian angles in degrees, "degrees" to hint at an angle and "noslider" to hide the slider.
+Additionally, other keywords can be included: "exp" for exponential range editing, "radians" for editing radian angles in degrees, "degrees" to hint at an angle and "no_slider" to hide the slider.
 
 - **PROPERTY_HINT_ENUM** = **2** --- Hints that an integer, float or string property is an enumerated value to pick in a list specified via a hint string.
 
@@ -2175,49 +2183,47 @@ Unlike :ref:`PROPERTY_HINT_ENUM<class_@GlobalScope_constant_PROPERTY_HINT_ENUM>`
 
 - **PROPERTY_HINT_EXP_EASING** = **4** --- Hints that a float property should be edited via an exponential easing function. The hint string can include ``"attenuation"`` to flip the curve horizontally and/or ``"inout"`` to also include in/out easing.
 
-- **PROPERTY_HINT_LENGTH** = **5** --- Deprecated hint, unused.
-
-- **PROPERTY_HINT_LINK** = **6** --- Hints that a vector property should allow linking values (e.g. to edit both ``x`` and ``y`` together).
+- **PROPERTY_HINT_LINK** = **5** --- Hints that a vector property should allow linking values (e.g. to edit both ``x`` and ``y`` together).
 
-- **PROPERTY_HINT_KEY_ACCEL** = **7** --- Deprecated hint, unused.
+- **PROPERTY_HINT_FLAGS** = **6** --- Hints that an integer property is a bitmask with named bit flags. For example, to allow toggling bits 0, 1, 2 and 4, the hint could be something like ``"Bit0,Bit1,Bit2,,Bit4"``.
 
-- **PROPERTY_HINT_FLAGS** = **8** --- Hints that an integer property is a bitmask with named bit flags. For example, to allow toggling bits 0, 1, 2 and 4, the hint could be something like ``"Bit0,Bit1,Bit2,,Bit4"``.
+- **PROPERTY_HINT_LAYERS_2D_RENDER** = **7** --- Hints that an integer property is a bitmask using the optionally named 2D render layers.
 
-- **PROPERTY_HINT_LAYERS_2D_RENDER** = **9** --- Hints that an integer property is a bitmask using the optionally named 2D render layers.
+- **PROPERTY_HINT_LAYERS_2D_PHYSICS** = **8** --- Hints that an integer property is a bitmask using the optionally named 2D physics layers.
 
-- **PROPERTY_HINT_LAYERS_2D_PHYSICS** = **10** --- Hints that an integer property is a bitmask using the optionally named 2D physics layers.
+- **PROPERTY_HINT_LAYERS_2D_NAVIGATION** = **9** --- Hints that an integer property is a bitmask using the optionally named 2D navigation layers.
 
-- **PROPERTY_HINT_LAYERS_2D_NAVIGATION** = **11** --- Hints that an integer property is a bitmask using the optionally named 2D navigation layers.
+- **PROPERTY_HINT_LAYERS_3D_RENDER** = **10** --- Hints that an integer property is a bitmask using the optionally named 3D render layers.
 
-- **PROPERTY_HINT_LAYERS_3D_RENDER** = **12** --- Hints that an integer property is a bitmask using the optionally named 3D render layers.
+- **PROPERTY_HINT_LAYERS_3D_PHYSICS** = **11** --- Hints that an integer property is a bitmask using the optionally named 3D physics layers.
 
-- **PROPERTY_HINT_LAYERS_3D_PHYSICS** = **13** --- Hints that an integer property is a bitmask using the optionally named 3D physics layers.
+- **PROPERTY_HINT_LAYERS_3D_NAVIGATION** = **12** --- Hints that an integer property is a bitmask using the optionally named 3D navigation layers.
 
-- **PROPERTY_HINT_LAYERS_3D_NAVIGATION** = **14** --- Hints that an integer property is a bitmask using the optionally named 3D navigation layers.
+- **PROPERTY_HINT_FILE** = **13** --- Hints that a string property is a path to a file. Editing it will show a file dialog for picking the path. The hint string can be a set of filters with wildcards like ``"*.png,*.jpg"``.
 
-- **PROPERTY_HINT_FILE** = **15** --- Hints that a string property is a path to a file. Editing it will show a file dialog for picking the path. The hint string can be a set of filters with wildcards like ``"*.png,*.jpg"``.
+- **PROPERTY_HINT_DIR** = **14** --- Hints that a string property is a path to a directory. Editing it will show a file dialog for picking the path.
 
-- **PROPERTY_HINT_DIR** = **16** --- Hints that a string property is a path to a directory. Editing it will show a file dialog for picking the path.
+- **PROPERTY_HINT_GLOBAL_FILE** = **15** --- Hints that a string property is an absolute path to a file outside the project folder. Editing it will show a file dialog for picking the path. The hint string can be a set of filters with wildcards like ``"*.png,*.jpg"``.
 
-- **PROPERTY_HINT_GLOBAL_FILE** = **17** --- Hints that a string property is an absolute path to a file outside the project folder. Editing it will show a file dialog for picking the path. The hint string can be a set of filters with wildcards like ``"*.png,*.jpg"``.
+- **PROPERTY_HINT_GLOBAL_DIR** = **16** --- Hints that a string property is an absolute path to a directory outside the project folder. Editing it will show a file dialog for picking the path.
 
-- **PROPERTY_HINT_GLOBAL_DIR** = **18** --- Hints that a string property is an absolute path to a directory outside the project folder. Editing it will show a file dialog for picking the path.
+- **PROPERTY_HINT_RESOURCE_TYPE** = **17** --- Hints that a property is an instance of a :ref:`Resource<class_Resource>`-derived type, optionally specified via the hint string (e.g. ``"Texture2D"``). Editing it will show a popup menu of valid resource types to instantiate.
 
-- **PROPERTY_HINT_RESOURCE_TYPE** = **19** --- Hints that a property is an instance of a :ref:`Resource<class_Resource>`-derived type, optionally specified via the hint string (e.g. ``"Texture2D"``). Editing it will show a popup menu of valid resource types to instantiate.
+- **PROPERTY_HINT_MULTILINE_TEXT** = **18** --- Hints that a string property is text with line breaks. Editing it will show a text input field where line breaks can be typed.
 
-- **PROPERTY_HINT_MULTILINE_TEXT** = **20** --- Hints that a string property is text with line breaks. Editing it will show a text input field where line breaks can be typed.
+- **PROPERTY_HINT_EXPRESSION** = **19** --- Hints that a string property is an :ref:`Expression<class_Expression>`.
 
-- **PROPERTY_HINT_PLACEHOLDER_TEXT** = **21** --- Hints that a string property should have a placeholder text visible on its input field, whenever the property is empty. The hint string is the placeholder text to use.
+- **PROPERTY_HINT_PLACEHOLDER_TEXT** = **20** --- Hints that a string property should have a placeholder text visible on its input field, whenever the property is empty. The hint string is the placeholder text to use.
 
-- **PROPERTY_HINT_COLOR_NO_ALPHA** = **22** --- Hints that a color property should be edited without changing its alpha component, i.e. only R, G and B channels are edited.
+- **PROPERTY_HINT_COLOR_NO_ALPHA** = **21** --- Hints that a color property should be edited without changing its alpha component, i.e. only R, G and B channels are edited.
 
-- **PROPERTY_HINT_IMAGE_COMPRESS_LOSSY** = **23** --- Hints that an image is compressed using lossy compression.
+- **PROPERTY_HINT_IMAGE_COMPRESS_LOSSY** = **22** --- Hints that an image is compressed using lossy compression.
 
-- **PROPERTY_HINT_IMAGE_COMPRESS_LOSSLESS** = **24** --- Hints that an image is compressed using lossless compression.
+- **PROPERTY_HINT_IMAGE_COMPRESS_LOSSLESS** = **23** --- Hints that an image is compressed using lossless compression.
 
-- **PROPERTY_HINT_OBJECT_ID** = **25**
+- **PROPERTY_HINT_OBJECT_ID** = **24**
 
-- **PROPERTY_HINT_TYPE_STRING** = **26** --- Hint that a property represents a particular type. If a property is :ref:`TYPE_STRING<class_@GlobalScope_constant_TYPE_STRING>`, allows to set a type from the create dialog. If you need to create an :ref:`Array<class_Array>` to contain elements of a specific type, the ``hint_string`` must encode nested types using ``":"`` and ``"/"`` for specifying :ref:`Resource<class_Resource>` types. For instance:
+- **PROPERTY_HINT_TYPE_STRING** = **25** --- Hint that a property represents a particular type. If a property is :ref:`TYPE_STRING<class_@GlobalScope_constant_TYPE_STRING>`, allows to set a type from the create dialog. If you need to create an :ref:`Array<class_Array>` to contain elements of a specific type, the ``hint_string`` must encode nested types using ``":"`` and ``"/"`` for specifying :ref:`Resource<class_Resource>` types. For instance:
 
 ::
 
@@ -2228,41 +2234,43 @@ Unlike :ref:`PROPERTY_HINT_ENUM<class_@GlobalScope_constant_PROPERTY_HINT_ENUM>`
 
 \ **Note:** The final colon is required to specify for properly detecting built-in types.
 
-- **PROPERTY_HINT_NODE_PATH_TO_EDITED_NODE** = **27**
+- **PROPERTY_HINT_NODE_PATH_TO_EDITED_NODE** = **26**
+
+- **PROPERTY_HINT_METHOD_OF_VARIANT_TYPE** = **27**
 
-- **PROPERTY_HINT_METHOD_OF_VARIANT_TYPE** = **28**
+- **PROPERTY_HINT_METHOD_OF_BASE_TYPE** = **28**
 
-- **PROPERTY_HINT_METHOD_OF_BASE_TYPE** = **29**
+- **PROPERTY_HINT_METHOD_OF_INSTANCE** = **29**
 
-- **PROPERTY_HINT_METHOD_OF_INSTANCE** = **30**
+- **PROPERTY_HINT_METHOD_OF_SCRIPT** = **30**
 
-- **PROPERTY_HINT_METHOD_OF_SCRIPT** = **31**
+- **PROPERTY_HINT_PROPERTY_OF_VARIANT_TYPE** = **31**
 
-- **PROPERTY_HINT_PROPERTY_OF_VARIANT_TYPE** = **32**
+- **PROPERTY_HINT_PROPERTY_OF_BASE_TYPE** = **32**
 
-- **PROPERTY_HINT_PROPERTY_OF_BASE_TYPE** = **33**
+- **PROPERTY_HINT_PROPERTY_OF_INSTANCE** = **33**
 
-- **PROPERTY_HINT_PROPERTY_OF_INSTANCE** = **34**
+- **PROPERTY_HINT_PROPERTY_OF_SCRIPT** = **34**
 
-- **PROPERTY_HINT_PROPERTY_OF_SCRIPT** = **35**
+- **PROPERTY_HINT_OBJECT_TOO_BIG** = **35**
 
-- **PROPERTY_HINT_OBJECT_TOO_BIG** = **36**
+- **PROPERTY_HINT_NODE_PATH_VALID_TYPES** = **36**
 
-- **PROPERTY_HINT_NODE_PATH_VALID_TYPES** = **37**
+- **PROPERTY_HINT_SAVE_FILE** = **37**
 
-- **PROPERTY_HINT_SAVE_FILE** = **38**
+- **PROPERTY_HINT_GLOBAL_SAVE_FILE** = **38**
 
-- **PROPERTY_HINT_GLOBAL_SAVE_FILE** = **39**
+- **PROPERTY_HINT_INT_IS_OBJECTID** = **39**
 
-- **PROPERTY_HINT_INT_IS_OBJECTID** = **40**
+- **PROPERTY_HINT_INT_IS_POINTER** = **41**
 
-- **PROPERTY_HINT_INT_IS_POINTER** = **42**
+- **PROPERTY_HINT_ARRAY_TYPE** = **40**
 
-- **PROPERTY_HINT_ARRAY_TYPE** = **41**
+- **PROPERTY_HINT_LOCALE_ID** = **42** --- Hints that a string property is a locale code. Editing it will show a locale dialog for picking language and country.
 
-- **PROPERTY_HINT_LOCALE_ID** = **43** --- Hints that a string property is a locale code. Editing it will show a locale dialog for picking language and country.
+- **PROPERTY_HINT_LOCALIZABLE_STRING** = **43** --- Hints that a dictionary property is string translation map. Dictionary keys are locale codes and, values are translated strings.
 
-- **PROPERTY_HINT_LOCALIZABLE_STRING** = **44** --- Hints that a dictionary property is string translation map. Dictionary keys are locale codes and, values are translated strings.
+- **PROPERTY_HINT_NODE_TYPE** = **44**
 
 - **PROPERTY_HINT_MAX** = **45**
 
@@ -2276,10 +2284,6 @@ Unlike :ref:`PROPERTY_HINT_ENUM<class_@GlobalScope_constant_PROPERTY_HINT_ENUM>`
 
 .. _class_@GlobalScope_constant_PROPERTY_USAGE_EDITOR:
 
-.. _class_@GlobalScope_constant_PROPERTY_USAGE_NETWORK:
-
-.. _class_@GlobalScope_constant_PROPERTY_USAGE_EDITOR_HELPER:
-
 .. _class_@GlobalScope_constant_PROPERTY_USAGE_CHECKABLE:
 
 .. _class_@GlobalScope_constant_PROPERTY_USAGE_CHECKED:
@@ -2292,6 +2296,8 @@ Unlike :ref:`PROPERTY_HINT_ENUM<class_@GlobalScope_constant_PROPERTY_HINT_ENUM>`
 
 .. _class_@GlobalScope_constant_PROPERTY_USAGE_SUBGROUP:
 
+.. _class_@GlobalScope_constant_PROPERTY_USAGE_CLASS_IS_BITFIELD:
+
 .. _class_@GlobalScope_constant_PROPERTY_USAGE_NO_INSTANCE_STATE:
 
 .. _class_@GlobalScope_constant_PROPERTY_USAGE_RESTART_IF_CHANGED:
@@ -2340,69 +2346,67 @@ enum **PropertyUsageFlags**:
 
 - **PROPERTY_USAGE_NONE** = **0**
 
-- **PROPERTY_USAGE_STORAGE** = **1** --- The property is serialized and saved in the scene file (default).
-
-- **PROPERTY_USAGE_EDITOR** = **2** --- The property is shown in the editor inspector (default).
+- **PROPERTY_USAGE_STORAGE** = **2** --- The property is serialized and saved in the scene file (default).
 
-- **PROPERTY_USAGE_NETWORK** = **4** --- Deprecated usage flag, unused.
+- **PROPERTY_USAGE_EDITOR** = **4** --- The property is shown in the editor inspector (default).
 
-- **PROPERTY_USAGE_EDITOR_HELPER** = **8** --- Deprecated usage flag, unused.
+- **PROPERTY_USAGE_CHECKABLE** = **8** --- The property can be checked in the editor inspector.
 
-- **PROPERTY_USAGE_CHECKABLE** = **16** --- The property can be checked in the editor inspector.
+- **PROPERTY_USAGE_CHECKED** = **16** --- The property is checked in the editor inspector.
 
-- **PROPERTY_USAGE_CHECKED** = **32** --- The property is checked in the editor inspector.
+- **PROPERTY_USAGE_INTERNATIONALIZED** = **32** --- The property is a translatable string.
 
-- **PROPERTY_USAGE_INTERNATIONALIZED** = **64** --- The property is a translatable string.
+- **PROPERTY_USAGE_GROUP** = **64** --- Used to group properties together in the editor. See :ref:`EditorInspector<class_EditorInspector>`.
 
-- **PROPERTY_USAGE_GROUP** = **128** --- Used to group properties together in the editor. See :ref:`EditorInspector<class_EditorInspector>`.
+- **PROPERTY_USAGE_CATEGORY** = **128** --- Used to categorize properties together in the editor.
 
-- **PROPERTY_USAGE_CATEGORY** = **256** --- Used to categorize properties together in the editor.
+- **PROPERTY_USAGE_SUBGROUP** = **256** --- Used to group properties together in the editor in a subgroup (under a group). See :ref:`EditorInspector<class_EditorInspector>`.
 
-- **PROPERTY_USAGE_SUBGROUP** = **512** --- Used to group properties together in the editor in a subgroup (under a group). See :ref:`EditorInspector<class_EditorInspector>`.
+- **PROPERTY_USAGE_CLASS_IS_BITFIELD** = **512**
 
-- **PROPERTY_USAGE_NO_INSTANCE_STATE** = **2048** --- The property does not save its state in :ref:`PackedScene<class_PackedScene>`.
+- **PROPERTY_USAGE_NO_INSTANCE_STATE** = **1024** --- The property does not save its state in :ref:`PackedScene<class_PackedScene>`.
 
-- **PROPERTY_USAGE_RESTART_IF_CHANGED** = **4096** --- Editing the property prompts the user for restarting the editor.
+- **PROPERTY_USAGE_RESTART_IF_CHANGED** = **2048** --- Editing the property prompts the user for restarting the editor.
 
-- **PROPERTY_USAGE_SCRIPT_VARIABLE** = **8192** --- The property is a script variable which should be serialized and saved in the scene file.
+- **PROPERTY_USAGE_SCRIPT_VARIABLE** = **4096** --- The property is a script variable which should be serialized and saved in the scene file.
 
-- **PROPERTY_USAGE_STORE_IF_NULL** = **16384**
+- **PROPERTY_USAGE_STORE_IF_NULL** = **8192**
 
-- **PROPERTY_USAGE_ANIMATE_AS_TRIGGER** = **32768**
+- **PROPERTY_USAGE_ANIMATE_AS_TRIGGER** = **16384**
 
-- **PROPERTY_USAGE_UPDATE_ALL_IF_MODIFIED** = **65536**
+- **PROPERTY_USAGE_UPDATE_ALL_IF_MODIFIED** = **32768**
 
-- **PROPERTY_USAGE_SCRIPT_DEFAULT_VALUE** = **131072**
+- **PROPERTY_USAGE_SCRIPT_DEFAULT_VALUE** = **65536**
 
-- **PROPERTY_USAGE_CLASS_IS_ENUM** = **262144**
+- **PROPERTY_USAGE_CLASS_IS_ENUM** = **131072**
 
-- **PROPERTY_USAGE_NIL_IS_VARIANT** = **524288**
+- **PROPERTY_USAGE_NIL_IS_VARIANT** = **262144**
 
-- **PROPERTY_USAGE_INTERNAL** = **1048576**
+- **PROPERTY_USAGE_INTERNAL** = **524288**
 
-- **PROPERTY_USAGE_DO_NOT_SHARE_ON_DUPLICATE** = **2097152**
+- **PROPERTY_USAGE_DO_NOT_SHARE_ON_DUPLICATE** = **1048576**
 
-- **PROPERTY_USAGE_HIGH_END_GFX** = **4194304**
+- **PROPERTY_USAGE_HIGH_END_GFX** = **2097152**
 
-- **PROPERTY_USAGE_NODE_PATH_FROM_SCENE_ROOT** = **8388608**
+- **PROPERTY_USAGE_NODE_PATH_FROM_SCENE_ROOT** = **4194304**
 
-- **PROPERTY_USAGE_RESOURCE_NOT_PERSISTENT** = **16777216**
+- **PROPERTY_USAGE_RESOURCE_NOT_PERSISTENT** = **8388608**
 
-- **PROPERTY_USAGE_KEYING_INCREMENTS** = **33554432**
+- **PROPERTY_USAGE_KEYING_INCREMENTS** = **16777216**
 
-- **PROPERTY_USAGE_DEFERRED_SET_RESOURCE** = **67108864**
+- **PROPERTY_USAGE_DEFERRED_SET_RESOURCE** = **33554432**
 
-- **PROPERTY_USAGE_EDITOR_INSTANTIATE_OBJECT** = **134217728**
+- **PROPERTY_USAGE_EDITOR_INSTANTIATE_OBJECT** = **67108864**
 
-- **PROPERTY_USAGE_EDITOR_BASIC_SETTING** = **268435456**
+- **PROPERTY_USAGE_EDITOR_BASIC_SETTING** = **134217728**
 
-- **PROPERTY_USAGE_ARRAY** = **1073741824**
+- **PROPERTY_USAGE_ARRAY** = **536870912**
 
-- **PROPERTY_USAGE_DEFAULT** = **7** --- Default usage (storage, editor and network).
+- **PROPERTY_USAGE_DEFAULT** = **6** --- Default usage (storage, editor and network).
 
-- **PROPERTY_USAGE_DEFAULT_INTL** = **71** --- Default usage for translatable strings (storage, editor, network and internationalized).
+- **PROPERTY_USAGE_DEFAULT_INTL** = **38** --- Default usage for translatable strings (storage, editor, network and internationalized).
 
-- **PROPERTY_USAGE_NO_EDITOR** = **5** --- Default usage but without showing the property in the editor (storage, network).
+- **PROPERTY_USAGE_NO_EDITOR** = **2** --- Default usage but without showing the property in the editor (storage, network).
 
 ----
 
@@ -2412,16 +2416,10 @@ enum **PropertyUsageFlags**:
 
 .. _class_@GlobalScope_constant_METHOD_FLAG_EDITOR:
 
-.. _class_@GlobalScope_constant_METHOD_FLAG_NOSCRIPT:
-
 .. _class_@GlobalScope_constant_METHOD_FLAG_CONST:
 
-.. _class_@GlobalScope_constant_METHOD_FLAG_REVERSE:
-
 .. _class_@GlobalScope_constant_METHOD_FLAG_VIRTUAL:
 
-.. _class_@GlobalScope_constant_METHOD_FLAG_FROM_SCRIPT:
-
 .. _class_@GlobalScope_constant_METHOD_FLAG_VARARG:
 
 .. _class_@GlobalScope_constant_METHOD_FLAG_STATIC:
@@ -2436,21 +2434,15 @@ enum **MethodFlags**:
 
 - **METHOD_FLAG_EDITOR** = **2** --- Flag for an editor method.
 
-- **METHOD_FLAG_NOSCRIPT** = **4** --- Deprecated method flag, unused.
+- **METHOD_FLAG_CONST** = **4** --- Flag for a constant method.
 
-- **METHOD_FLAG_CONST** = **8** --- Flag for a constant method.
+- **METHOD_FLAG_VIRTUAL** = **8** --- Flag for a virtual method.
 
-- **METHOD_FLAG_REVERSE** = **16** --- Deprecated method flag, unused.
+- **METHOD_FLAG_VARARG** = **16**
 
-- **METHOD_FLAG_VIRTUAL** = **32** --- Flag for a virtual method.
+- **METHOD_FLAG_STATIC** = **32**
 
-- **METHOD_FLAG_FROM_SCRIPT** = **64** --- Deprecated method flag, unused.
-
-- **METHOD_FLAG_VARARG** = **128**
-
-- **METHOD_FLAG_STATIC** = **256**
-
-- **METHOD_FLAG_OBJECT_CORE** = **512** --- Used internally. Allows to not dump core virtuals such as ``_notification`` to the JSON API.
+- **METHOD_FLAG_OBJECT_CORE** = **64** --- Used internally. Allows to not dump core virtuals such as ``_notification`` to the JSON API.
 
 - **METHOD_FLAGS_DEFAULT** = **1** --- Default method flags.
 
@@ -2518,6 +2510,10 @@ enum **TransferMode**:
 
 .. _class_@GlobalScope_constant_TYPE_TRANSFORM2D:
 
+.. _class_@GlobalScope_constant_TYPE_VECTOR4:
+
+.. _class_@GlobalScope_constant_TYPE_VECTOR4I:
+
 .. _class_@GlobalScope_constant_TYPE_PLANE:
 
 .. _class_@GlobalScope_constant_TYPE_QUATERNION:
@@ -2528,6 +2524,8 @@ enum **TransferMode**:
 
 .. _class_@GlobalScope_constant_TYPE_TRANSFORM3D:
 
+.. _class_@GlobalScope_constant_TYPE_PROJECTION:
+
 .. _class_@GlobalScope_constant_TYPE_COLOR:
 
 .. _class_@GlobalScope_constant_TYPE_STRING_NAME:
@@ -2592,53 +2590,59 @@ enum **Variant.Type**:
 
 - **TYPE_TRANSFORM2D** = **11** --- Variable is of type :ref:`Transform2D<class_Transform2D>`.
 
-- **TYPE_PLANE** = **12** --- Variable is of type :ref:`Plane<class_Plane>`.
+- **TYPE_VECTOR4** = **12**
+
+- **TYPE_VECTOR4I** = **13**
 
-- **TYPE_QUATERNION** = **13** --- Variable is of type :ref:`Quaternion<class_Quaternion>`.
+- **TYPE_PLANE** = **14** --- Variable is of type :ref:`Plane<class_Plane>`.
 
-- **TYPE_AABB** = **14** --- Variable is of type :ref:`AABB<class_AABB>`.
+- **TYPE_QUATERNION** = **15** --- Variable is of type :ref:`Quaternion<class_Quaternion>`.
 
-- **TYPE_BASIS** = **15** --- Variable is of type :ref:`Basis<class_Basis>`.
+- **TYPE_AABB** = **16** --- Variable is of type :ref:`AABB<class_AABB>`.
 
-- **TYPE_TRANSFORM3D** = **16** --- Variable is of type :ref:`Transform3D<class_Transform3D>`.
+- **TYPE_BASIS** = **17** --- Variable is of type :ref:`Basis<class_Basis>`.
 
-- **TYPE_COLOR** = **17** --- Variable is of type :ref:`Color<class_Color>`.
+- **TYPE_TRANSFORM3D** = **18** --- Variable is of type :ref:`Transform3D<class_Transform3D>`.
 
-- **TYPE_STRING_NAME** = **18** --- Variable is of type :ref:`StringName<class_StringName>`.
+- **TYPE_PROJECTION** = **19**
 
-- **TYPE_NODE_PATH** = **19** --- Variable is of type :ref:`NodePath<class_NodePath>`.
+- **TYPE_COLOR** = **20** --- Variable is of type :ref:`Color<class_Color>`.
 
-- **TYPE_RID** = **20** --- Variable is of type :ref:`RID<class_RID>`.
+- **TYPE_STRING_NAME** = **21** --- Variable is of type :ref:`StringName<class_StringName>`.
 
-- **TYPE_OBJECT** = **21** --- Variable is of type :ref:`Object<class_Object>`.
+- **TYPE_NODE_PATH** = **22** --- Variable is of type :ref:`NodePath<class_NodePath>`.
 
-- **TYPE_CALLABLE** = **22** --- Variable is of type :ref:`Callable<class_Callable>`.
+- **TYPE_RID** = **23** --- Variable is of type :ref:`RID<class_RID>`.
 
-- **TYPE_SIGNAL** = **23** --- Variable is of type :ref:`Signal<class_Signal>`.
+- **TYPE_OBJECT** = **24** --- Variable is of type :ref:`Object<class_Object>`.
 
-- **TYPE_DICTIONARY** = **24** --- Variable is of type :ref:`Dictionary<class_Dictionary>`.
+- **TYPE_CALLABLE** = **25** --- Variable is of type :ref:`Callable<class_Callable>`.
 
-- **TYPE_ARRAY** = **25** --- Variable is of type :ref:`Array<class_Array>`.
+- **TYPE_SIGNAL** = **26** --- Variable is of type :ref:`Signal<class_Signal>`.
 
-- **TYPE_PACKED_BYTE_ARRAY** = **26** --- Variable is of type :ref:`PackedByteArray<class_PackedByteArray>`.
+- **TYPE_DICTIONARY** = **27** --- Variable is of type :ref:`Dictionary<class_Dictionary>`.
 
-- **TYPE_PACKED_INT32_ARRAY** = **27** --- Variable is of type :ref:`PackedInt32Array<class_PackedInt32Array>`.
+- **TYPE_ARRAY** = **28** --- Variable is of type :ref:`Array<class_Array>`.
 
-- **TYPE_PACKED_INT64_ARRAY** = **28** --- Variable is of type :ref:`PackedInt64Array<class_PackedInt64Array>`.
+- **TYPE_PACKED_BYTE_ARRAY** = **29** --- Variable is of type :ref:`PackedByteArray<class_PackedByteArray>`.
 
-- **TYPE_PACKED_FLOAT32_ARRAY** = **29** --- Variable is of type :ref:`PackedFloat32Array<class_PackedFloat32Array>`.
+- **TYPE_PACKED_INT32_ARRAY** = **30** --- Variable is of type :ref:`PackedInt32Array<class_PackedInt32Array>`.
 
-- **TYPE_PACKED_FLOAT64_ARRAY** = **30** --- Variable is of type :ref:`PackedFloat64Array<class_PackedFloat64Array>`.
+- **TYPE_PACKED_INT64_ARRAY** = **31** --- Variable is of type :ref:`PackedInt64Array<class_PackedInt64Array>`.
 
-- **TYPE_PACKED_STRING_ARRAY** = **31** --- Variable is of type :ref:`PackedStringArray<class_PackedStringArray>`.
+- **TYPE_PACKED_FLOAT32_ARRAY** = **32** --- Variable is of type :ref:`PackedFloat32Array<class_PackedFloat32Array>`.
 
-- **TYPE_PACKED_VECTOR2_ARRAY** = **32** --- Variable is of type :ref:`PackedVector2Array<class_PackedVector2Array>`.
+- **TYPE_PACKED_FLOAT64_ARRAY** = **33** --- Variable is of type :ref:`PackedFloat64Array<class_PackedFloat64Array>`.
 
-- **TYPE_PACKED_VECTOR3_ARRAY** = **33** --- Variable is of type :ref:`PackedVector3Array<class_PackedVector3Array>`.
+- **TYPE_PACKED_STRING_ARRAY** = **34** --- Variable is of type :ref:`PackedStringArray<class_PackedStringArray>`.
 
-- **TYPE_PACKED_COLOR_ARRAY** = **34** --- Variable is of type :ref:`PackedColorArray<class_PackedColorArray>`.
+- **TYPE_PACKED_VECTOR2_ARRAY** = **35** --- Variable is of type :ref:`PackedVector2Array<class_PackedVector2Array>`.
 
-- **TYPE_MAX** = **35** --- Represents the size of the :ref:`Variant.Type<enum_@GlobalScope_Variant.Type>` enum.
+- **TYPE_PACKED_VECTOR3_ARRAY** = **36** --- Variable is of type :ref:`PackedVector3Array<class_PackedVector3Array>`.
+
+- **TYPE_PACKED_COLOR_ARRAY** = **37** --- Variable is of type :ref:`PackedColorArray<class_PackedColorArray>`.
+
+- **TYPE_MAX** = **38** --- Represents the size of the :ref:`Variant.Type<enum_@GlobalScope_Variant.Type>` enum.
 
 ----
 
@@ -3009,6 +3013,12 @@ The :ref:`VisualScriptCustomNodes<class_VisualScriptCustomNodes>` singleton.
 
 ----
 
+.. _class_@GlobalScope_property_WorkerThreadPool:
+
+- :ref:`WorkerThreadPool<class_WorkerThreadPool>` **WorkerThreadPool**
+
+----
+
 .. _class_@GlobalScope_property_XRServer:
 
 - :ref:`XRServer<class_XRServer>` **XRServer**
@@ -3128,6 +3138,14 @@ Important note: The Y coordinate comes first, by convention.
 
 ----
 
+.. _class_@GlobalScope_method_bezier_interpolate:
+
+- :ref:`float<class_float>` **bezier_interpolate** **(** :ref:`float<class_float>` start, :ref:`float<class_float>` control_1, :ref:`float<class_float>` control_2, :ref:`float<class_float>` end, :ref:`float<class_float>` t **)**
+
+Returns the point at the given ``t`` on a one-dimnesional `Bezier curve <https://en.wikipedia.org/wiki/B%C3%A9zier_curve>`__ defined by the given ``control_1``, ``control_2``, and ``end`` points.
+
+----
+
 .. _class_@GlobalScope_method_bytes2var:
 
 - :ref:`Variant<class_Variant>` **bytes2var** **(** :ref:`PackedByteArray<class_PackedByteArray>` bytes **)**
@@ -3743,6 +3761,22 @@ Converts one or more arguments of any type to string in the best way possible an
 
 ----
 
+.. _class_@GlobalScope_method_print_rich:
+
+- void **print_rich** **(** ... **)** |vararg|
+
+Converts one or more arguments of any type to string in the best way possible and prints them to the console. The following BBCode tags are supported: b, i, u, s, indent, code, url, center, right, color, bgcolor, fgcolor. Color tags only support named colors such as ``red``, *not* hexadecimal color codes. Unsupported tags will be left as-is in standard output.
+
+When printing to standard output, the supported subset of BBCode is converted to ANSI escape codes for the terminal emulator to display. Displaying ANSI escape codes is currently only supported on Linux and macOS. Support for ANSI escape codes may vary across terminal emulators, especially for italic and strikethrough.
+
+::
+
+    print_rich("[code][b]Hello world![/b]``") # Prints out: **Hello world!**\ 
+
+\ **Note:** Consider using :ref:`push_error<class_@GlobalScope_method_push_error>` and :ref:`push_warning<class_@GlobalScope_method_push_warning>` to print error and warning messages instead of :ref:`print<class_@GlobalScope_method_print>` or :ref:`print_rich<class_@GlobalScope_method_print_rich>`. This distinguishes them from print messages used for debugging purposes, while also displaying a stack trace when an error or warning is printed.
+
+----
+
 .. _class_@GlobalScope_method_print_verbose:
 
 - void **print_verbose** **(** ... **)** |vararg|
@@ -4228,6 +4262,29 @@ A weak reference to an object is not enough to keep the object alive: when the o
 
 ----
 
+.. _class_@GlobalScope_method_wrap:
+
+- :ref:`Variant<class_Variant>` **wrap** **(** :ref:`Variant<class_Variant>` value, :ref:`Variant<class_Variant>` min, :ref:`Variant<class_Variant>` max **)**
+
+Wraps the :ref:`Variant<class_Variant>` ``value`` between ``min`` and ``max``.
+
+Usable for creating loop-alike behavior or infinite surfaces.
+
+Variant types :ref:`int<class_int>` and :ref:`float<class_float>` (real) are supported. If any of the argument is :ref:`float<class_float>` the result will be :ref:`float<class_float>`, otherwise it is :ref:`int<class_int>`.
+
+::
+
+    var a = wrap(4, 5, 10)
+    # a is 9 (int)
+    
+    var a = wrap(7, 5, 10)
+    # a is 7 (int)
+    
+    var a = wrap(10.5, 5, 10)
+    # a is 5.5 (float)
+
+----
+
 .. _class_@GlobalScope_method_wrapf:
 
 - :ref:`float<class_float>` **wrapf** **(** :ref:`float<class_float>` value, :ref:`float<class_float>` min, :ref:`float<class_float>` max **)**

+ 20 - 0
classes/class_acceptdialog.rst

@@ -34,6 +34,8 @@ Properties
 +-----------------------------+-----------------------------------------------------------------------------------+-------------------------------------------------------------------------+
 | :ref:`bool<class_bool>`     | exclusive                                                                         | ``true`` (overrides :ref:`Window<class_Window_property_exclusive>`)     |
 +-----------------------------+-----------------------------------------------------------------------------------+-------------------------------------------------------------------------+
+| :ref:`String<class_String>` | :ref:`ok_button_text<class_AcceptDialog_property_ok_button_text>`                 | ``"OK"``                                                                |
++-----------------------------+-----------------------------------------------------------------------------------+-------------------------------------------------------------------------+
 | :ref:`String<class_String>` | title                                                                             | ``"Alert!"`` (overrides :ref:`Window<class_Window_property_title>`)     |
 +-----------------------------+-----------------------------------------------------------------------------------+-------------------------------------------------------------------------+
 | :ref:`bool<class_bool>`     | transient                                                                         | ``true`` (overrides :ref:`Window<class_Window_property_transient>`)     |
@@ -123,6 +125,8 @@ Sets autowrapping for the text in the dialog.
 | *Getter*  | get_close_on_escape()      |
 +-----------+----------------------------+
 
+If ``true``, the dialog will be hidden when the escape key (:ref:`@GlobalScope.KEY_ESCAPE<class_@GlobalScope_constant_KEY_ESCAPE>`) is pressed.
+
 ----
 
 .. _class_AcceptDialog_property_dialog_hide_on_ok:
@@ -157,6 +161,22 @@ If ``true``, the dialog is hidden when the OK button is pressed. You can set it
 
 The text displayed by the dialog.
 
+----
+
+.. _class_AcceptDialog_property_ok_button_text:
+
+- :ref:`String<class_String>` **ok_button_text**
+
++-----------+---------------------------+
+| *Default* | ``"OK"``                  |
++-----------+---------------------------+
+| *Setter*  | set_ok_button_text(value) |
++-----------+---------------------------+
+| *Getter*  | get_ok_button_text()      |
++-----------+---------------------------+
+
+The text displayed by the OK button (see :ref:`get_ok_button<class_AcceptDialog_method_get_ok_button>`).
+
 Method Descriptions
 -------------------
 

+ 40 - 40
classes/class_animationnode.rst

@@ -11,7 +11,7 @@ AnimationNode
 
 **Inherits:** :ref:`Resource<class_Resource>` **<** :ref:`RefCounted<class_RefCounted>` **<** :ref:`Object<class_Object>`
 
-**Inherited By:** :ref:`AnimationNodeAdd2<class_AnimationNodeAdd2>`, :ref:`AnimationNodeAdd3<class_AnimationNodeAdd3>`, :ref:`AnimationNodeBlend2<class_AnimationNodeBlend2>`, :ref:`AnimationNodeBlend3<class_AnimationNodeBlend3>`, :ref:`AnimationNodeOneShot<class_AnimationNodeOneShot>`, :ref:`AnimationNodeOutput<class_AnimationNodeOutput>`, :ref:`AnimationNodeTimeScale<class_AnimationNodeTimeScale>`, :ref:`AnimationNodeTimeSeek<class_AnimationNodeTimeSeek>`, :ref:`AnimationNodeTransition<class_AnimationNodeTransition>`, :ref:`AnimationRootNode<class_AnimationRootNode>`
+**Inherited By:** :ref:`AnimationNodeOutput<class_AnimationNodeOutput>`, :ref:`AnimationNodeSync<class_AnimationNodeSync>`, :ref:`AnimationNodeTimeScale<class_AnimationNodeTimeScale>`, :ref:`AnimationNodeTimeSeek<class_AnimationNodeTimeSeek>`, :ref:`AnimationRootNode<class_AnimationRootNode>`
 
 Base resource for :ref:`AnimationTree<class_AnimationTree>` nodes.
 
@@ -37,43 +37,43 @@ Properties
 Methods
 -------
 
-+-------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_String>`               | :ref:`_get_caption<class_AnimationNode_method__get_caption>` **(** **)** |virtual| |const|                                                                                                                                                                                                                                                                                                            |
-+-------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`AnimationNode<class_AnimationNode>` | :ref:`_get_child_by_name<class_AnimationNode_method__get_child_by_name>` **(** :ref:`StringName<class_StringName>` name **)** |virtual| |const|                                                                                                                                                                                                                                                       |
-+-------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Dictionary<class_Dictionary>`       | :ref:`_get_child_nodes<class_AnimationNode_method__get_child_nodes>` **(** **)** |virtual| |const|                                                                                                                                                                                                                                                                                                    |
-+-------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Variant<class_Variant>`             | :ref:`_get_parameter_default_value<class_AnimationNode_method__get_parameter_default_value>` **(** :ref:`StringName<class_StringName>` parameter **)** |virtual| |const|                                                                                                                                                                                                                              |
-+-------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Array<class_Array>`                 | :ref:`_get_parameter_list<class_AnimationNode_method__get_parameter_list>` **(** **)** |virtual| |const|                                                                                                                                                                                                                                                                                              |
-+-------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                   | :ref:`_has_filter<class_AnimationNode_method__has_filter>` **(** **)** |virtual| |const|                                                                                                                                                                                                                                                                                                              |
-+-------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                 | :ref:`_process<class_AnimationNode_method__process>` **(** :ref:`float<class_float>` time, :ref:`bool<class_bool>` seek, :ref:`bool<class_bool>` seek_root **)** |virtual| |const|                                                                                                                                                                                                                    |
-+-------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                      | :ref:`add_input<class_AnimationNode_method_add_input>` **(** :ref:`String<class_String>` name **)**                                                                                                                                                                                                                                                                                                   |
-+-------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                      | :ref:`blend_animation<class_AnimationNode_method_blend_animation>` **(** :ref:`StringName<class_StringName>` animation, :ref:`float<class_float>` time, :ref:`float<class_float>` delta, :ref:`bool<class_bool>` seeked, :ref:`bool<class_bool>` seek_root, :ref:`float<class_float>` blend, :ref:`int<class_int>` pingponged=0 **)**                                                                 |
-+-------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                 | :ref:`blend_input<class_AnimationNode_method_blend_input>` **(** :ref:`int<class_int>` input_index, :ref:`float<class_float>` time, :ref:`bool<class_bool>` seek, :ref:`bool<class_bool>` seek_root, :ref:`float<class_float>` blend, :ref:`FilterAction<enum_AnimationNode_FilterAction>` filter=0, :ref:`bool<class_bool>` optimize=true **)**                                                      |
-+-------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                 | :ref:`blend_node<class_AnimationNode_method_blend_node>` **(** :ref:`StringName<class_StringName>` name, :ref:`AnimationNode<class_AnimationNode>` node, :ref:`float<class_float>` time, :ref:`bool<class_bool>` seek, :ref:`bool<class_bool>` seek_root, :ref:`float<class_float>` blend, :ref:`FilterAction<enum_AnimationNode_FilterAction>` filter=0, :ref:`bool<class_bool>` optimize=true **)** |
-+-------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                     | :ref:`get_input_count<class_AnimationNode_method_get_input_count>` **(** **)** |const|                                                                                                                                                                                                                                                                                                                |
-+-------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_String>`               | :ref:`get_input_name<class_AnimationNode_method_get_input_name>` **(** :ref:`int<class_int>` input **)**                                                                                                                                                                                                                                                                                              |
-+-------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Variant<class_Variant>`             | :ref:`get_parameter<class_AnimationNode_method_get_parameter>` **(** :ref:`StringName<class_StringName>` name **)** |const|                                                                                                                                                                                                                                                                           |
-+-------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                   | :ref:`is_path_filtered<class_AnimationNode_method_is_path_filtered>` **(** :ref:`NodePath<class_NodePath>` path **)** |const|                                                                                                                                                                                                                                                                         |
-+-------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                      | :ref:`remove_input<class_AnimationNode_method_remove_input>` **(** :ref:`int<class_int>` index **)**                                                                                                                                                                                                                                                                                                  |
-+-------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                      | :ref:`set_filter_path<class_AnimationNode_method_set_filter_path>` **(** :ref:`NodePath<class_NodePath>` path, :ref:`bool<class_bool>` enable **)**                                                                                                                                                                                                                                                   |
-+-------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                      | :ref:`set_parameter<class_AnimationNode_method_set_parameter>` **(** :ref:`StringName<class_StringName>` name, :ref:`Variant<class_Variant>` value **)**                                                                                                                                                                                                                                              |
-+-------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
++-------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`               | :ref:`_get_caption<class_AnimationNode_method__get_caption>` **(** **)** |virtual| |const|                                                                                                                                                                                                                                                                                                        |
++-------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`AnimationNode<class_AnimationNode>` | :ref:`_get_child_by_name<class_AnimationNode_method__get_child_by_name>` **(** :ref:`StringName<class_StringName>` name **)** |virtual| |const|                                                                                                                                                                                                                                                   |
++-------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Dictionary<class_Dictionary>`       | :ref:`_get_child_nodes<class_AnimationNode_method__get_child_nodes>` **(** **)** |virtual| |const|                                                                                                                                                                                                                                                                                                |
++-------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Variant<class_Variant>`             | :ref:`_get_parameter_default_value<class_AnimationNode_method__get_parameter_default_value>` **(** :ref:`StringName<class_StringName>` parameter **)** |virtual| |const|                                                                                                                                                                                                                          |
++-------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Array<class_Array>`                 | :ref:`_get_parameter_list<class_AnimationNode_method__get_parameter_list>` **(** **)** |virtual| |const|                                                                                                                                                                                                                                                                                          |
++-------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                   | :ref:`_has_filter<class_AnimationNode_method__has_filter>` **(** **)** |virtual| |const|                                                                                                                                                                                                                                                                                                          |
++-------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                 | :ref:`_process<class_AnimationNode_method__process>` **(** :ref:`float<class_float>` time, :ref:`bool<class_bool>` seek, :ref:`bool<class_bool>` seek_root **)** |virtual| |const|                                                                                                                                                                                                                |
++-------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                      | :ref:`add_input<class_AnimationNode_method_add_input>` **(** :ref:`String<class_String>` name **)**                                                                                                                                                                                                                                                                                               |
++-------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                      | :ref:`blend_animation<class_AnimationNode_method_blend_animation>` **(** :ref:`StringName<class_StringName>` animation, :ref:`float<class_float>` time, :ref:`float<class_float>` delta, :ref:`bool<class_bool>` seeked, :ref:`bool<class_bool>` seek_root, :ref:`float<class_float>` blend, :ref:`int<class_int>` pingponged=0 **)**                                                             |
++-------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                 | :ref:`blend_input<class_AnimationNode_method_blend_input>` **(** :ref:`int<class_int>` input_index, :ref:`float<class_float>` time, :ref:`bool<class_bool>` seek, :ref:`bool<class_bool>` seek_root, :ref:`float<class_float>` blend, :ref:`FilterAction<enum_AnimationNode_FilterAction>` filter=0, :ref:`bool<class_bool>` sync=true **)**                                                      |
++-------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                 | :ref:`blend_node<class_AnimationNode_method_blend_node>` **(** :ref:`StringName<class_StringName>` name, :ref:`AnimationNode<class_AnimationNode>` node, :ref:`float<class_float>` time, :ref:`bool<class_bool>` seek, :ref:`bool<class_bool>` seek_root, :ref:`float<class_float>` blend, :ref:`FilterAction<enum_AnimationNode_FilterAction>` filter=0, :ref:`bool<class_bool>` sync=true **)** |
++-------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                     | :ref:`get_input_count<class_AnimationNode_method_get_input_count>` **(** **)** |const|                                                                                                                                                                                                                                                                                                            |
++-------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`               | :ref:`get_input_name<class_AnimationNode_method_get_input_name>` **(** :ref:`int<class_int>` input **)**                                                                                                                                                                                                                                                                                          |
++-------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Variant<class_Variant>`             | :ref:`get_parameter<class_AnimationNode_method_get_parameter>` **(** :ref:`StringName<class_StringName>` name **)** |const|                                                                                                                                                                                                                                                                       |
++-------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                   | :ref:`is_path_filtered<class_AnimationNode_method_is_path_filtered>` **(** :ref:`NodePath<class_NodePath>` path **)** |const|                                                                                                                                                                                                                                                                     |
++-------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                      | :ref:`remove_input<class_AnimationNode_method_remove_input>` **(** :ref:`int<class_int>` index **)**                                                                                                                                                                                                                                                                                              |
++-------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                      | :ref:`set_filter_path<class_AnimationNode_method_set_filter_path>` **(** :ref:`NodePath<class_NodePath>` path, :ref:`bool<class_bool>` enable **)**                                                                                                                                                                                                                                               |
++-------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                      | :ref:`set_parameter<class_AnimationNode_method_set_parameter>` **(** :ref:`StringName<class_StringName>` name, :ref:`Variant<class_Variant>` value **)**                                                                                                                                                                                                                                          |
++-------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 
 Signals
 -------
@@ -211,7 +211,7 @@ Blend an animation by ``blend`` amount (name must be valid in the linked :ref:`A
 
 .. _class_AnimationNode_method_blend_input:
 
-- :ref:`float<class_float>` **blend_input** **(** :ref:`int<class_int>` input_index, :ref:`float<class_float>` time, :ref:`bool<class_bool>` seek, :ref:`bool<class_bool>` seek_root, :ref:`float<class_float>` blend, :ref:`FilterAction<enum_AnimationNode_FilterAction>` filter=0, :ref:`bool<class_bool>` optimize=true **)**
+- :ref:`float<class_float>` **blend_input** **(** :ref:`int<class_int>` input_index, :ref:`float<class_float>` time, :ref:`bool<class_bool>` seek, :ref:`bool<class_bool>` seek_root, :ref:`float<class_float>` blend, :ref:`FilterAction<enum_AnimationNode_FilterAction>` filter=0, :ref:`bool<class_bool>` sync=true **)**
 
 Blend an input. This is only useful for nodes created for an :ref:`AnimationNodeBlendTree<class_AnimationNodeBlendTree>`. The ``time`` parameter is a relative delta, unless ``seek`` is ``true``, in which case it is absolute. A filter mode may be optionally passed (see :ref:`FilterAction<enum_AnimationNode_FilterAction>` for options).
 
@@ -219,7 +219,7 @@ Blend an input. This is only useful for nodes created for an :ref:`AnimationNode
 
 .. _class_AnimationNode_method_blend_node:
 
-- :ref:`float<class_float>` **blend_node** **(** :ref:`StringName<class_StringName>` name, :ref:`AnimationNode<class_AnimationNode>` node, :ref:`float<class_float>` time, :ref:`bool<class_bool>` seek, :ref:`bool<class_bool>` seek_root, :ref:`float<class_float>` blend, :ref:`FilterAction<enum_AnimationNode_FilterAction>` filter=0, :ref:`bool<class_bool>` optimize=true **)**
+- :ref:`float<class_float>` **blend_node** **(** :ref:`StringName<class_StringName>` name, :ref:`AnimationNode<class_AnimationNode>` node, :ref:`float<class_float>` time, :ref:`bool<class_bool>` seek, :ref:`bool<class_bool>` seek_root, :ref:`float<class_float>` blend, :ref:`FilterAction<enum_AnimationNode_FilterAction>` filter=0, :ref:`bool<class_bool>` sync=true **)**
 
 Blend another animation node (in case this node contains children animation nodes). This function is only useful if you inherit from :ref:`AnimationRootNode<class_AnimationRootNode>` instead, else editors will not display your node for addition.
 

+ 1 - 25
classes/class_animationnodeadd2.rst

@@ -9,7 +9,7 @@
 AnimationNodeAdd2
 =================
 
-**Inherits:** :ref:`AnimationNode<class_AnimationNode>` **<** :ref:`Resource<class_Resource>` **<** :ref:`RefCounted<class_RefCounted>` **<** :ref:`Object<class_Object>`
+**Inherits:** :ref:`AnimationNodeSync<class_AnimationNodeSync>` **<** :ref:`AnimationNode<class_AnimationNode>` **<** :ref:`Resource<class_Resource>` **<** :ref:`RefCounted<class_RefCounted>` **<** :ref:`Object<class_Object>`
 
 Blends two animations additively inside of an :ref:`AnimationNodeBlendTree<class_AnimationNodeBlendTree>`.
 
@@ -23,30 +23,6 @@ Tutorials
 
 - :doc:`AnimationTree <../tutorials/animation/animation_tree>`
 
-Properties
-----------
-
-+-------------------------+----------------------------------------------------+-----------+
-| :ref:`bool<class_bool>` | :ref:`sync<class_AnimationNodeAdd2_property_sync>` | ``false`` |
-+-------------------------+----------------------------------------------------+-----------+
-
-Property Descriptions
----------------------
-
-.. _class_AnimationNodeAdd2_property_sync:
-
-- :ref:`bool<class_bool>` **sync**
-
-+-----------+---------------------+
-| *Default* | ``false``           |
-+-----------+---------------------+
-| *Setter*  | set_use_sync(value) |
-+-----------+---------------------+
-| *Getter*  | is_using_sync()     |
-+-----------+---------------------+
-
-If ``true``, sets the ``optimization`` to ``false`` when calling :ref:`AnimationNode.blend_input<class_AnimationNode_method_blend_input>`, forcing the blended animations to update every frame.
-
 .. |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 - 25
classes/class_animationnodeadd3.rst

@@ -9,7 +9,7 @@
 AnimationNodeAdd3
 =================
 
-**Inherits:** :ref:`AnimationNode<class_AnimationNode>` **<** :ref:`Resource<class_Resource>` **<** :ref:`RefCounted<class_RefCounted>` **<** :ref:`Object<class_Object>`
+**Inherits:** :ref:`AnimationNodeSync<class_AnimationNodeSync>` **<** :ref:`AnimationNode<class_AnimationNode>` **<** :ref:`Resource<class_Resource>` **<** :ref:`RefCounted<class_RefCounted>` **<** :ref:`Object<class_Object>`
 
 Blends two of three animations additively inside of an :ref:`AnimationNodeBlendTree<class_AnimationNodeBlendTree>`.
 
@@ -33,30 +33,6 @@ Tutorials
 
 - `Third Person Shooter Demo <https://godotengine.org/asset-library/asset/678>`__
 
-Properties
-----------
-
-+-------------------------+----------------------------------------------------+-----------+
-| :ref:`bool<class_bool>` | :ref:`sync<class_AnimationNodeAdd3_property_sync>` | ``false`` |
-+-------------------------+----------------------------------------------------+-----------+
-
-Property Descriptions
----------------------
-
-.. _class_AnimationNodeAdd3_property_sync:
-
-- :ref:`bool<class_bool>` **sync**
-
-+-----------+---------------------+
-| *Default* | ``false``           |
-+-----------+---------------------+
-| *Setter*  | set_use_sync(value) |
-+-----------+---------------------+
-| *Getter*  | is_using_sync()     |
-+-----------+---------------------+
-
-If ``true``, sets the ``optimization`` to ``false`` when calling :ref:`AnimationNode.blend_input<class_AnimationNode_method_blend_input>`, forcing the blended animations to update every frame.
-
 .. |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 - 25
classes/class_animationnodeblend2.rst

@@ -9,7 +9,7 @@
 AnimationNodeBlend2
 ===================
 
-**Inherits:** :ref:`AnimationNode<class_AnimationNode>` **<** :ref:`Resource<class_Resource>` **<** :ref:`RefCounted<class_RefCounted>` **<** :ref:`Object<class_Object>`
+**Inherits:** :ref:`AnimationNodeSync<class_AnimationNodeSync>` **<** :ref:`AnimationNode<class_AnimationNode>` **<** :ref:`Resource<class_Resource>` **<** :ref:`RefCounted<class_RefCounted>` **<** :ref:`Object<class_Object>`
 
 Blends two animations linearly inside of an :ref:`AnimationNodeBlendTree<class_AnimationNodeBlendTree>`.
 
@@ -27,30 +27,6 @@ Tutorials
 
 - `Third Person Shooter Demo <https://godotengine.org/asset-library/asset/678>`__
 
-Properties
-----------
-
-+-------------------------+------------------------------------------------------+-----------+
-| :ref:`bool<class_bool>` | :ref:`sync<class_AnimationNodeBlend2_property_sync>` | ``false`` |
-+-------------------------+------------------------------------------------------+-----------+
-
-Property Descriptions
----------------------
-
-.. _class_AnimationNodeBlend2_property_sync:
-
-- :ref:`bool<class_bool>` **sync**
-
-+-----------+---------------------+
-| *Default* | ``false``           |
-+-----------+---------------------+
-| *Setter*  | set_use_sync(value) |
-+-----------+---------------------+
-| *Getter*  | is_using_sync()     |
-+-----------+---------------------+
-
-If ``true``, sets the ``optimization`` to ``false`` when calling :ref:`AnimationNode.blend_input<class_AnimationNode_method_blend_input>`, forcing the blended animations to update every frame.
-
 .. |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 - 25
classes/class_animationnodeblend3.rst

@@ -9,7 +9,7 @@
 AnimationNodeBlend3
 ===================
 
-**Inherits:** :ref:`AnimationNode<class_AnimationNode>` **<** :ref:`Resource<class_Resource>` **<** :ref:`RefCounted<class_RefCounted>` **<** :ref:`Object<class_Object>`
+**Inherits:** :ref:`AnimationNodeSync<class_AnimationNodeSync>` **<** :ref:`AnimationNode<class_AnimationNode>` **<** :ref:`Resource<class_Resource>` **<** :ref:`RefCounted<class_RefCounted>` **<** :ref:`Object<class_Object>`
 
 Blends two of three animations linearly inside of an :ref:`AnimationNodeBlendTree<class_AnimationNodeBlendTree>`.
 
@@ -31,30 +31,6 @@ Tutorials
 
 - :doc:`AnimationTree <../tutorials/animation/animation_tree>`
 
-Properties
-----------
-
-+-------------------------+------------------------------------------------------+-----------+
-| :ref:`bool<class_bool>` | :ref:`sync<class_AnimationNodeBlend3_property_sync>` | ``false`` |
-+-------------------------+------------------------------------------------------+-----------+
-
-Property Descriptions
----------------------
-
-.. _class_AnimationNodeBlend3_property_sync:
-
-- :ref:`bool<class_bool>` **sync**
-
-+-----------+---------------------+
-| *Default* | ``false``           |
-+-----------+---------------------+
-| *Setter*  | set_use_sync(value) |
-+-----------+---------------------+
-| *Getter*  | is_using_sync()     |
-+-----------+---------------------+
-
-If ``true``, sets the ``optimization`` to ``false`` when calling :ref:`AnimationNode.blend_input<class_AnimationNode_method_blend_input>`, forcing the blended animations to update every frame.
-
 .. |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.)`

+ 20 - 0
classes/class_animationnodeblendspace1d.rst

@@ -39,6 +39,8 @@ Properties
 +-----------------------------+--------------------------------------------------------------------------+-------------+
 | :ref:`float<class_float>`   | :ref:`snap<class_AnimationNodeBlendSpace1D_property_snap>`               | ``0.1``     |
 +-----------------------------+--------------------------------------------------------------------------+-------------+
+| :ref:`bool<class_bool>`     | :ref:`sync<class_AnimationNodeBlendSpace1D_property_sync>`               | ``false``   |
++-----------------------------+--------------------------------------------------------------------------+-------------+
 | :ref:`String<class_String>` | :ref:`value_label<class_AnimationNodeBlendSpace1D_property_value_label>` | ``"value"`` |
 +-----------------------------+--------------------------------------------------------------------------+-------------+
 
@@ -112,6 +114,24 @@ Position increment to snap to when moving a point on the axis.
 
 ----
 
+.. _class_AnimationNodeBlendSpace1D_property_sync:
+
+- :ref:`bool<class_bool>` **sync**
+
++-----------+---------------------+
+| *Default* | ``false``           |
++-----------+---------------------+
+| *Setter*  | set_use_sync(value) |
++-----------+---------------------+
+| *Getter*  | is_using_sync()     |
++-----------+---------------------+
+
+If ``false``, the blended animations' frame are stopped when the blend value is ``0``.
+
+If ``true``, forcing the blended animations to advance frame.
+
+----
+
 .. _class_AnimationNodeBlendSpace1D_property_value_label:
 
 - :ref:`String<class_String>` **value_label**

+ 20 - 0
classes/class_animationnodeblendspace2d.rst

@@ -43,6 +43,8 @@ Properties
 +------------------------------------------------------------+--------------------------------------------------------------------------------+-----------------------+
 | :ref:`Vector2<class_Vector2>`                              | :ref:`snap<class_AnimationNodeBlendSpace2D_property_snap>`                     | ``Vector2(0.1, 0.1)`` |
 +------------------------------------------------------------+--------------------------------------------------------------------------------+-----------------------+
+| :ref:`bool<class_bool>`                                    | :ref:`sync<class_AnimationNodeBlendSpace2D_property_sync>`                     | ``false``             |
++------------------------------------------------------------+--------------------------------------------------------------------------------+-----------------------+
 | :ref:`String<class_String>`                                | :ref:`x_label<class_AnimationNodeBlendSpace2D_property_x_label>`               | ``"x"``               |
 +------------------------------------------------------------+--------------------------------------------------------------------------------+-----------------------+
 | :ref:`String<class_String>`                                | :ref:`y_label<class_AnimationNodeBlendSpace2D_property_y_label>`               | ``"y"``               |
@@ -186,6 +188,24 @@ Position increment to snap to when moving a point.
 
 ----
 
+.. _class_AnimationNodeBlendSpace2D_property_sync:
+
+- :ref:`bool<class_bool>` **sync**
+
++-----------+---------------------+
+| *Default* | ``false``           |
++-----------+---------------------+
+| *Setter*  | set_use_sync(value) |
++-----------+---------------------+
+| *Getter*  | is_using_sync()     |
++-----------+---------------------+
+
+If ``false``, the blended animations' frame are stopped when the blend value is ``0``.
+
+If ``true``, forcing the blended animations to advance frame.
+
+----
+
 .. _class_AnimationNodeBlendSpace2D_property_x_label:
 
 - :ref:`String<class_String>` **x_label**

+ 1 - 17
classes/class_animationnodeoneshot.rst

@@ -9,7 +9,7 @@
 AnimationNodeOneShot
 ====================
 
-**Inherits:** :ref:`AnimationNode<class_AnimationNode>` **<** :ref:`Resource<class_Resource>` **<** :ref:`RefCounted<class_RefCounted>` **<** :ref:`Object<class_Object>`
+**Inherits:** :ref:`AnimationNodeSync<class_AnimationNodeSync>` **<** :ref:`AnimationNode<class_AnimationNode>` **<** :ref:`Resource<class_Resource>` **<** :ref:`RefCounted<class_RefCounted>` **<** :ref:`Object<class_Object>`
 
 Plays an animation once in :ref:`AnimationNodeBlendTree<class_AnimationNodeBlendTree>`.
 
@@ -41,8 +41,6 @@ Properties
 +---------------------------------------------------+-----------------------------------------------------------------------------------------------+-----------+
 | :ref:`MixMode<enum_AnimationNodeOneShot_MixMode>` | :ref:`mix_mode<class_AnimationNodeOneShot_property_mix_mode>`                                 | ``0``     |
 +---------------------------------------------------+-----------------------------------------------------------------------------------------------+-----------+
-| :ref:`bool<class_bool>`                           | :ref:`sync<class_AnimationNodeOneShot_property_sync>`                                         | ``false`` |
-+---------------------------------------------------+-----------------------------------------------------------------------------------------------+-----------+
 
 Enumerations
 ------------
@@ -150,20 +148,6 @@ If :ref:`autorestart<class_AnimationNodeOneShot_property_autorestart>` is ``true
 | *Getter*  | get_mix_mode()      |
 +-----------+---------------------+
 
-----
-
-.. _class_AnimationNodeOneShot_property_sync:
-
-- :ref:`bool<class_bool>` **sync**
-
-+-----------+---------------------+
-| *Default* | ``false``           |
-+-----------+---------------------+
-| *Setter*  | set_use_sync(value) |
-+-----------+---------------------+
-| *Getter*  | is_using_sync()     |
-+-----------+---------------------+
-
 .. |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.)`

+ 49 - 13
classes/class_animationnodestatemachinetransition.rst

@@ -21,19 +21,23 @@ Tutorials
 Properties
 ----------
 
-+------------------------------------------------------------------------+------------------------------------------------------------------------------------------------+-----------+
-| :ref:`StringName<class_StringName>`                                    | :ref:`advance_condition<class_AnimationNodeStateMachineTransition_property_advance_condition>` | ``&""``   |
-+------------------------------------------------------------------------+------------------------------------------------------------------------------------------------+-----------+
-| :ref:`bool<class_bool>`                                                | :ref:`auto_advance<class_AnimationNodeStateMachineTransition_property_auto_advance>`           | ``false`` |
-+------------------------------------------------------------------------+------------------------------------------------------------------------------------------------+-----------+
-| :ref:`bool<class_bool>`                                                | :ref:`disabled<class_AnimationNodeStateMachineTransition_property_disabled>`                   | ``false`` |
-+------------------------------------------------------------------------+------------------------------------------------------------------------------------------------+-----------+
-| :ref:`int<class_int>`                                                  | :ref:`priority<class_AnimationNodeStateMachineTransition_property_priority>`                   | ``1``     |
-+------------------------------------------------------------------------+------------------------------------------------------------------------------------------------+-----------+
-| :ref:`SwitchMode<enum_AnimationNodeStateMachineTransition_SwitchMode>` | :ref:`switch_mode<class_AnimationNodeStateMachineTransition_property_switch_mode>`             | ``0``     |
-+------------------------------------------------------------------------+------------------------------------------------------------------------------------------------+-----------+
-| :ref:`float<class_float>`                                              | :ref:`xfade_time<class_AnimationNodeStateMachineTransition_property_xfade_time>`               | ``0.0``   |
-+------------------------------------------------------------------------+------------------------------------------------------------------------------------------------+-----------+
++------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+------------------+
+| :ref:`StringName<class_StringName>`                                    | :ref:`advance_condition<class_AnimationNodeStateMachineTransition_property_advance_condition>`                       | ``&""``          |
++------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+------------------+
+| :ref:`String<class_String>`                                            | :ref:`advance_expression<class_AnimationNodeStateMachineTransition_property_advance_expression>`                     | ``""``           |
++------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+------------------+
+| :ref:`NodePath<class_NodePath>`                                        | :ref:`advance_expression_base_node<class_AnimationNodeStateMachineTransition_property_advance_expression_base_node>` | ``NodePath("")`` |
++------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+------------------+
+| :ref:`bool<class_bool>`                                                | :ref:`auto_advance<class_AnimationNodeStateMachineTransition_property_auto_advance>`                                 | ``false``        |
++------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+------------------+
+| :ref:`bool<class_bool>`                                                | :ref:`disabled<class_AnimationNodeStateMachineTransition_property_disabled>`                                         | ``false``        |
++------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+------------------+
+| :ref:`int<class_int>`                                                  | :ref:`priority<class_AnimationNodeStateMachineTransition_property_priority>`                                         | ``1``            |
++------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+------------------+
+| :ref:`SwitchMode<enum_AnimationNodeStateMachineTransition_SwitchMode>` | :ref:`switch_mode<class_AnimationNodeStateMachineTransition_property_switch_mode>`                                   | ``0``            |
++------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+------------------+
+| :ref:`float<class_float>`                                              | :ref:`xfade_time<class_AnimationNodeStateMachineTransition_property_xfade_time>`                                     | ``0.0``          |
++------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+------------------+
 
 Signals
 -------
@@ -93,6 +97,38 @@ Turn on auto advance when this condition is set. The provided name will become a
 
 
 
+----
+
+.. _class_AnimationNodeStateMachineTransition_property_advance_expression:
+
+- :ref:`String<class_String>` **advance_expression**
+
++-----------+-------------------------------+
+| *Default* | ``""``                        |
++-----------+-------------------------------+
+| *Setter*  | set_advance_expression(value) |
++-----------+-------------------------------+
+| *Getter*  | get_advance_expression()      |
++-----------+-------------------------------+
+
+Use an expression as a condition for state machine transitions. It is possible to create complex animation advance conditions for switching between states and gives much greater flexibility for creating complex state machines by directly interfacing with the script code.
+
+----
+
+.. _class_AnimationNodeStateMachineTransition_property_advance_expression_base_node:
+
+- :ref:`NodePath<class_NodePath>` **advance_expression_base_node**
+
++-----------+-----------------------------------------+
+| *Default* | ``NodePath("")``                        |
++-----------+-----------------------------------------+
+| *Setter*  | set_advance_expression_base_node(value) |
++-----------+-----------------------------------------+
+| *Getter*  | get_advance_expression_base_node()      |
++-----------+-----------------------------------------+
+
+The path to the :ref:`Node<class_Node>` used to evaluate an :ref:`Expression<class_Expression>` if one is not explicitly specified internally.
+
 ----
 
 .. _class_AnimationNodeStateMachineTransition_property_auto_advance:

+ 49 - 0
classes/class_animationnodesync.rst

@@ -0,0 +1,49 @@
+:github_url: hide
+
+.. Generated automatically by doc/tools/make_rst.py in Godot's source tree.
+.. DO NOT EDIT THIS FILE, but the AnimationNodeSync.xml source instead.
+.. The source is found in doc/classes or modules/<name>/doc_classes.
+
+.. _class_AnimationNodeSync:
+
+AnimationNodeSync
+=================
+
+**Inherits:** :ref:`AnimationNode<class_AnimationNode>` **<** :ref:`Resource<class_Resource>` **<** :ref:`RefCounted<class_RefCounted>` **<** :ref:`Object<class_Object>`
+
+**Inherited By:** :ref:`AnimationNodeAdd2<class_AnimationNodeAdd2>`, :ref:`AnimationNodeAdd3<class_AnimationNodeAdd3>`, :ref:`AnimationNodeBlend2<class_AnimationNodeBlend2>`, :ref:`AnimationNodeBlend3<class_AnimationNodeBlend3>`, :ref:`AnimationNodeOneShot<class_AnimationNodeOneShot>`, :ref:`AnimationNodeTransition<class_AnimationNodeTransition>`
+
+
+
+Properties
+----------
+
++-------------------------+----------------------------------------------------+-----------+
+| :ref:`bool<class_bool>` | :ref:`sync<class_AnimationNodeSync_property_sync>` | ``false`` |
++-------------------------+----------------------------------------------------+-----------+
+
+Property Descriptions
+---------------------
+
+.. _class_AnimationNodeSync_property_sync:
+
+- :ref:`bool<class_bool>` **sync**
+
++-----------+---------------------+
+| *Default* | ``false``           |
++-----------+---------------------+
+| *Setter*  | set_use_sync(value) |
++-----------+---------------------+
+| *Getter*  | is_using_sync()     |
++-----------+---------------------+
+
+If ``false``, the blended animations' frame are stopped when the blend value is ``0``.
+
+If ``true``, forcing the blended animations to advance frame.
+
+.. |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.)`
+.. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
+.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`
+.. |operator| replace:: :abbr:`operator (This method describes a valid operator to use with this type as left-hand operand.)`

+ 24 - 6
classes/class_animationnodetransition.rst

@@ -9,7 +9,7 @@
 AnimationNodeTransition
 =======================
 
-**Inherits:** :ref:`AnimationNode<class_AnimationNode>` **<** :ref:`Resource<class_Resource>` **<** :ref:`RefCounted<class_RefCounted>` **<** :ref:`Object<class_Object>`
+**Inherits:** :ref:`AnimationNodeSync<class_AnimationNodeSync>` **<** :ref:`AnimationNode<class_AnimationNode>` **<** :ref:`Resource<class_Resource>` **<** :ref:`RefCounted<class_RefCounted>` **<** :ref:`Object<class_Object>`
 
 A generic animation transition node for :ref:`AnimationTree<class_AnimationTree>`.
 
@@ -30,11 +30,13 @@ Tutorials
 Properties
 ----------
 
-+---------------------------+------------------------------------------------------------------------+---------+
-| :ref:`int<class_int>`     | :ref:`input_count<class_AnimationNodeTransition_property_input_count>` | ``0``   |
-+---------------------------+------------------------------------------------------------------------+---------+
-| :ref:`float<class_float>` | :ref:`xfade_time<class_AnimationNodeTransition_property_xfade_time>`   | ``0.0`` |
-+---------------------------+------------------------------------------------------------------------+---------+
++---------------------------+------------------------------------------------------------------------+----------+
+| :ref:`bool<class_bool>`   | :ref:`from_start<class_AnimationNodeTransition_property_from_start>`   | ``true`` |
++---------------------------+------------------------------------------------------------------------+----------+
+| :ref:`int<class_int>`     | :ref:`input_count<class_AnimationNodeTransition_property_input_count>` | ``0``    |
++---------------------------+------------------------------------------------------------------------+----------+
+| :ref:`float<class_float>` | :ref:`xfade_time<class_AnimationNodeTransition_property_xfade_time>`   | ``0.0``  |
++---------------------------+------------------------------------------------------------------------+----------+
 
 Methods
 -------
@@ -52,6 +54,22 @@ Methods
 Property Descriptions
 ---------------------
 
+.. _class_AnimationNodeTransition_property_from_start:
+
+- :ref:`bool<class_bool>` **from_start**
+
++-----------+-----------------------+
+| *Default* | ``true``              |
++-----------+-----------------------+
+| *Setter*  | set_from_start(value) |
++-----------+-----------------------+
+| *Getter*  | is_from_start()       |
++-----------+-----------------------+
+
+If ``true``, the destination animation is played back from the beginning when switched.
+
+----
+
 .. _class_AnimationNodeTransition_property_input_count:
 
 - :ref:`int<class_int>` **input_count**

+ 29 - 11
classes/class_animationtree.rst

@@ -30,17 +30,19 @@ Tutorials
 Properties
 ----------
 
-+------------------------------------------------------------------------------+--------------------------------------------------------------------------+------------------+
-| :ref:`bool<class_bool>`                                                      | :ref:`active<class_AnimationTree_property_active>`                       | ``false``        |
-+------------------------------------------------------------------------------+--------------------------------------------------------------------------+------------------+
-| :ref:`NodePath<class_NodePath>`                                              | :ref:`anim_player<class_AnimationTree_property_anim_player>`             | ``NodePath("")`` |
-+------------------------------------------------------------------------------+--------------------------------------------------------------------------+------------------+
-| :ref:`AnimationProcessCallback<enum_AnimationTree_AnimationProcessCallback>` | :ref:`process_callback<class_AnimationTree_property_process_callback>`   | ``1``            |
-+------------------------------------------------------------------------------+--------------------------------------------------------------------------+------------------+
-| :ref:`NodePath<class_NodePath>`                                              | :ref:`root_motion_track<class_AnimationTree_property_root_motion_track>` | ``NodePath("")`` |
-+------------------------------------------------------------------------------+--------------------------------------------------------------------------+------------------+
-| :ref:`AnimationNode<class_AnimationNode>`                                    | :ref:`tree_root<class_AnimationTree_property_tree_root>`                 |                  |
-+------------------------------------------------------------------------------+--------------------------------------------------------------------------+------------------+
++------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------+-------------------+
+| :ref:`bool<class_bool>`                                                      | :ref:`active<class_AnimationTree_property_active>`                                             | ``false``         |
++------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------+-------------------+
+| :ref:`NodePath<class_NodePath>`                                              | :ref:`advance_expression_base_node<class_AnimationTree_property_advance_expression_base_node>` | ``NodePath(".")`` |
++------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------+-------------------+
+| :ref:`NodePath<class_NodePath>`                                              | :ref:`anim_player<class_AnimationTree_property_anim_player>`                                   | ``NodePath("")``  |
++------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------+-------------------+
+| :ref:`AnimationProcessCallback<enum_AnimationTree_AnimationProcessCallback>` | :ref:`process_callback<class_AnimationTree_property_process_callback>`                         | ``1``             |
++------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------+-------------------+
+| :ref:`NodePath<class_NodePath>`                                              | :ref:`root_motion_track<class_AnimationTree_property_root_motion_track>`                       | ``NodePath("")``  |
++------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------+-------------------+
+| :ref:`AnimationNode<class_AnimationNode>`                                    | :ref:`tree_root<class_AnimationTree_property_tree_root>`                                       |                   |
++------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------+-------------------+
 
 Methods
 -------
@@ -91,6 +93,22 @@ If ``true``, the ``AnimationTree`` will be processing.
 
 ----
 
+.. _class_AnimationTree_property_advance_expression_base_node:
+
+- :ref:`NodePath<class_NodePath>` **advance_expression_base_node**
+
++-----------+-----------------------------------------+
+| *Default* | ``NodePath(".")``                       |
++-----------+-----------------------------------------+
+| *Setter*  | set_advance_expression_base_node(value) |
++-----------+-----------------------------------------+
+| *Getter*  | get_advance_expression_base_node()      |
++-----------+-----------------------------------------+
+
+The path to the :ref:`Node<class_Node>` used to evaluate the AnimationNode :ref:`Expression<class_Expression>` if one is not explicitly specified internally.
+
+----
+
 .. _class_AnimationTree_property_anim_player:
 
 - :ref:`NodePath<class_NodePath>` **anim_player**

+ 8 - 0
classes/class_audioserver.rst

@@ -118,6 +118,8 @@ Methods
 +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                                                  | :ref:`set_bus_volume_db<class_AudioServer_method_set_bus_volume_db>` **(** :ref:`int<class_int>` bus_idx, :ref:`float<class_float>` volume_db **)**                                           |
 +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                  | :ref:`set_enable_tagging_used_audio_streams<class_AudioServer_method_set_enable_tagging_used_audio_streams>` **(** :ref:`bool<class_bool>` enable **)**                                       |
++-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                                                  | :ref:`swap_bus_effects<class_AudioServer_method_swap_bus_effects>` **(** :ref:`int<class_int>` bus_idx, :ref:`int<class_int>` effect_idx, :ref:`int<class_int>` by_effect_idx **)**           |
 +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                                                  | :ref:`unlock<class_AudioServer_method_unlock>` **(** **)**                                                                                                                                    |
@@ -513,6 +515,12 @@ Sets the volume of the bus at index ``bus_idx`` to ``volume_db``.
 
 ----
 
+.. _class_AudioServer_method_set_enable_tagging_used_audio_streams:
+
+- void **set_enable_tagging_used_audio_streams** **(** :ref:`bool<class_bool>` enable **)**
+
+----
+
 .. _class_AudioServer_method_swap_bus_effects:
 
 - void **swap_bus_effects** **(** :ref:`int<class_int>` bus_idx, :ref:`int<class_int>` effect_idx, :ref:`int<class_int>` by_effect_idx **)**

+ 36 - 20
classes/class_audiostream.rst

@@ -34,25 +34,41 @@ Tutorials
 Methods
 -------
 
-+-------------------------------------------------------+------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                             | :ref:`_get_length<class_AudioStream_method__get_length>` **(** **)** |virtual| |const|               |
-+-------------------------------------------------------+------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_String>`                           | :ref:`_get_stream_name<class_AudioStream_method__get_stream_name>` **(** **)** |virtual| |const|     |
-+-------------------------------------------------------+------------------------------------------------------------------------------------------------------+
-| :ref:`AudioStreamPlayback<class_AudioStreamPlayback>` | :ref:`_instance_playback<class_AudioStream_method__instance_playback>` **(** **)** |virtual| |const| |
-+-------------------------------------------------------+------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                               | :ref:`_is_monophonic<class_AudioStream_method__is_monophonic>` **(** **)** |virtual| |const|         |
-+-------------------------------------------------------+------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                             | :ref:`get_length<class_AudioStream_method_get_length>` **(** **)** |const|                           |
-+-------------------------------------------------------+------------------------------------------------------------------------------------------------------+
-| :ref:`AudioStreamPlayback<class_AudioStreamPlayback>` | :ref:`instance_playback<class_AudioStream_method_instance_playback>` **(** **)**                     |
-+-------------------------------------------------------+------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                               | :ref:`is_monophonic<class_AudioStream_method_is_monophonic>` **(** **)** |const|                     |
-+-------------------------------------------------------+------------------------------------------------------------------------------------------------------+
++-------------------------------------------------------+------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                                 | :ref:`_get_beat_count<class_AudioStream_method__get_beat_count>` **(** **)** |virtual| |const|             |
++-------------------------------------------------------+------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                             | :ref:`_get_bpm<class_AudioStream_method__get_bpm>` **(** **)** |virtual| |const|                           |
++-------------------------------------------------------+------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                             | :ref:`_get_length<class_AudioStream_method__get_length>` **(** **)** |virtual| |const|                     |
++-------------------------------------------------------+------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`                           | :ref:`_get_stream_name<class_AudioStream_method__get_stream_name>` **(** **)** |virtual| |const|           |
++-------------------------------------------------------+------------------------------------------------------------------------------------------------------------+
+| :ref:`AudioStreamPlayback<class_AudioStreamPlayback>` | :ref:`_instantiate_playback<class_AudioStream_method__instantiate_playback>` **(** **)** |virtual| |const| |
++-------------------------------------------------------+------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                               | :ref:`_is_monophonic<class_AudioStream_method__is_monophonic>` **(** **)** |virtual| |const|               |
++-------------------------------------------------------+------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                             | :ref:`get_length<class_AudioStream_method_get_length>` **(** **)** |const|                                 |
++-------------------------------------------------------+------------------------------------------------------------------------------------------------------------+
+| :ref:`AudioStreamPlayback<class_AudioStreamPlayback>` | :ref:`instantiate_playback<class_AudioStream_method_instantiate_playback>` **(** **)**                     |
++-------------------------------------------------------+------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                               | :ref:`is_monophonic<class_AudioStream_method_is_monophonic>` **(** **)** |const|                           |
++-------------------------------------------------------+------------------------------------------------------------------------------------------------------------+
 
 Method Descriptions
 -------------------
 
+.. _class_AudioStream_method__get_beat_count:
+
+- :ref:`int<class_int>` **_get_beat_count** **(** **)** |virtual| |const|
+
+----
+
+.. _class_AudioStream_method__get_bpm:
+
+- :ref:`float<class_float>` **_get_bpm** **(** **)** |virtual| |const|
+
+----
+
 .. _class_AudioStream_method__get_length:
 
 - :ref:`float<class_float>` **_get_length** **(** **)** |virtual| |const|
@@ -65,9 +81,9 @@ Method Descriptions
 
 ----
 
-.. _class_AudioStream_method__instance_playback:
+.. _class_AudioStream_method__instantiate_playback:
 
-- :ref:`AudioStreamPlayback<class_AudioStreamPlayback>` **_instance_playback** **(** **)** |virtual| |const|
+- :ref:`AudioStreamPlayback<class_AudioStreamPlayback>` **_instantiate_playback** **(** **)** |virtual| |const|
 
 ----
 
@@ -85,11 +101,11 @@ Returns the length of the audio stream in seconds.
 
 ----
 
-.. _class_AudioStream_method_instance_playback:
+.. _class_AudioStream_method_instantiate_playback:
 
-- :ref:`AudioStreamPlayback<class_AudioStreamPlayback>` **instance_playback** **(** **)**
+- :ref:`AudioStreamPlayback<class_AudioStreamPlayback>` **instantiate_playback** **(** **)**
 
-Returns an AudioStreamPlayback. Useful for when you want to extend `_instance_playback` but call `instance_playback` from an internally held AudioStream subresource. An example of this can be found in the source files for `AudioStreamRandomPitch::instance_playback`.
+Returns an AudioStreamPlayback. Useful for when you want to extend :ref:`_instantiate_playback<class_AudioStream_method__instantiate_playback>` but call :ref:`instantiate_playback<class_AudioStream_method_instantiate_playback>` from an internally held AudioStream subresource. An example of this can be found in the source files for ``AudioStreamRandomPitch::instantiate_playback``.
 
 ----
 

+ 78 - 1
classes/class_audiostreammp3.rst

@@ -16,11 +16,17 @@ MP3 audio stream driver.
 Description
 -----------
 
-MP3 audio stream driver.
+MP3 audio stream driver. See :ref:`data<class_AudioStreamMP3_property_data>` if you want to load an MP3 file at run-time.
 
 Properties
 ----------
 
++-----------------------------------------------+---------------------------------------------------------------+-----------------------+
+| :ref:`int<class_int>`                         | :ref:`bar_beats<class_AudioStreamMP3_property_bar_beats>`     | ``4``                 |
++-----------------------------------------------+---------------------------------------------------------------+-----------------------+
+| :ref:`int<class_int>`                         | :ref:`beat_count<class_AudioStreamMP3_property_beat_count>`   | ``0``                 |
++-----------------------------------------------+---------------------------------------------------------------+-----------------------+
+| :ref:`float<class_float>`                     | :ref:`bpm<class_AudioStreamMP3_property_bpm>`                 | ``0.0``               |
 +-----------------------------------------------+---------------------------------------------------------------+-----------------------+
 | :ref:`PackedByteArray<class_PackedByteArray>` | :ref:`data<class_AudioStreamMP3_property_data>`               | ``PackedByteArray()`` |
 +-----------------------------------------------+---------------------------------------------------------------+-----------------------+
@@ -32,6 +38,48 @@ Properties
 Property Descriptions
 ---------------------
 
+.. _class_AudioStreamMP3_property_bar_beats:
+
+- :ref:`int<class_int>` **bar_beats**
+
++-----------+----------------------+
+| *Default* | ``4``                |
++-----------+----------------------+
+| *Setter*  | set_bar_beats(value) |
++-----------+----------------------+
+| *Getter*  | get_bar_beats()      |
++-----------+----------------------+
+
+----
+
+.. _class_AudioStreamMP3_property_beat_count:
+
+- :ref:`int<class_int>` **beat_count**
+
++-----------+-----------------------+
+| *Default* | ``0``                 |
++-----------+-----------------------+
+| *Setter*  | set_beat_count(value) |
++-----------+-----------------------+
+| *Getter*  | get_beat_count()      |
++-----------+-----------------------+
+
+----
+
+.. _class_AudioStreamMP3_property_bpm:
+
+- :ref:`float<class_float>` **bpm**
+
++-----------+----------------+
+| *Default* | ``0.0``        |
++-----------+----------------+
+| *Setter*  | set_bpm(value) |
++-----------+----------------+
+| *Getter*  | get_bpm()      |
++-----------+----------------+
+
+----
+
 .. _class_AudioStreamMP3_property_data:
 
 - :ref:`PackedByteArray<class_PackedByteArray>` **data**
@@ -46,6 +94,35 @@ Property Descriptions
 
 Contains the audio data in bytes.
 
+You can load a file without having to import it beforehand using the code snippet below. Keep in mind that this snippet loads the whole file into memory and may not be ideal for huge files (hundreds of megabytes or more).
+
+
+.. tabs::
+
+ .. code-tab:: gdscript
+
+    func load_mp3(path):
+        var file = File.new()
+        file.open(path, File.READ)
+        var sound = AudioStreamMP3.new()
+        sound.data = file.get_buffer(file.get_length())
+        file.close()
+        return sound
+
+ .. code-tab:: csharp
+
+    public AudioStreamMP3 LoadMP3(string path)
+    {
+        var file = new File();
+        file.Open(path, File.READ);
+        var sound = new AudioStreamMP3();
+        sound.Data = file.GetBuffer(file.GetLength());
+        file.Close();
+        return sound;
+    }
+
+
+
 ----
 
 .. _class_AudioStreamMP3_property_loop:

+ 48 - 0
classes/class_audiostreamoggvorbis.rst

@@ -16,6 +16,12 @@ AudioStreamOGGVorbis
 Properties
 ----------
 
++---------------------------------------------------+-----------------------------------------------------------------------------+-----------+
+| :ref:`int<class_int>`                             | :ref:`bar_beats<class_AudioStreamOGGVorbis_property_bar_beats>`             | ``4``     |
++---------------------------------------------------+-----------------------------------------------------------------------------+-----------+
+| :ref:`int<class_int>`                             | :ref:`beat_count<class_AudioStreamOGGVorbis_property_beat_count>`           | ``0``     |
++---------------------------------------------------+-----------------------------------------------------------------------------+-----------+
+| :ref:`float<class_float>`                         | :ref:`bpm<class_AudioStreamOGGVorbis_property_bpm>`                         | ``0.0``   |
 +---------------------------------------------------+-----------------------------------------------------------------------------+-----------+
 | :ref:`bool<class_bool>`                           | :ref:`loop<class_AudioStreamOGGVorbis_property_loop>`                       | ``false`` |
 +---------------------------------------------------+-----------------------------------------------------------------------------+-----------+
@@ -27,6 +33,48 @@ Properties
 Property Descriptions
 ---------------------
 
+.. _class_AudioStreamOGGVorbis_property_bar_beats:
+
+- :ref:`int<class_int>` **bar_beats**
+
++-----------+----------------------+
+| *Default* | ``4``                |
++-----------+----------------------+
+| *Setter*  | set_bar_beats(value) |
++-----------+----------------------+
+| *Getter*  | get_bar_beats()      |
++-----------+----------------------+
+
+----
+
+.. _class_AudioStreamOGGVorbis_property_beat_count:
+
+- :ref:`int<class_int>` **beat_count**
+
++-----------+-----------------------+
+| *Default* | ``0``                 |
++-----------+-----------------------+
+| *Setter*  | set_beat_count(value) |
++-----------+-----------------------+
+| *Getter*  | get_beat_count()      |
++-----------+-----------------------+
+
+----
+
+.. _class_AudioStreamOGGVorbis_property_bpm:
+
+- :ref:`float<class_float>` **bpm**
+
++-----------+----------------+
+| *Default* | ``0.0``        |
++-----------+----------------+
+| *Setter*  | set_bpm(value) |
++-----------+----------------+
+| *Getter*  | get_bpm()      |
++-----------+----------------+
+
+----
+
 .. _class_AudioStreamOGGVorbis_property_loop:
 
 - :ref:`bool<class_bool>` **loop**

+ 8 - 0
classes/class_audiostreamplayback.rst

@@ -43,6 +43,8 @@ Methods
 +---------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                      | :ref:`_stop<class_AudioStreamPlayback_method__stop>` **(** **)** |virtual|                                                                                      |
 +---------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                      | :ref:`_tag_used_streams<class_AudioStreamPlayback_method__tag_used_streams>` **(** **)** |virtual|                                                              |
++---------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
 
 Method Descriptions
 -------------------
@@ -87,6 +89,12 @@ Method Descriptions
 
 - void **_stop** **(** **)** |virtual|
 
+----
+
+.. _class_AudioStreamPlayback_method__tag_used_streams:
+
+- void **_tag_used_streams** **(** **)** |virtual|
+
 .. |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_audiostreamplayer.rst

@@ -134,6 +134,8 @@ If ``true``, audio plays when added to scene tree.
 
 Bus on which this audio is playing.
 
+\ **Note:** When setting this property, keep in mind that no validation is performed to see if the given name matches an existing bus. This is because audio bus layouts might be loaded after this property is set. If this given name can't be resolved at runtime, it will fall back to ``"Master"``.
+
 ----
 
 .. _class_AudioStreamPlayer_property_max_polyphony:

+ 2 - 0
classes/class_audiostreamplayer2d.rst

@@ -145,6 +145,8 @@ If ``true``, audio plays when added to scene tree.
 
 Bus on which this audio is playing.
 
+\ **Note:** When setting this property, keep in mind that no validation is performed to see if the given name matches an existing bus. This is because audio bus layouts might be loaded after this property is set. If this given name can't be resolved at runtime, it will fall back to ``"Master"``.
+
 ----
 
 .. _class_AudioStreamPlayer2D_property_max_distance:

+ 2 - 0
classes/class_audiostreamplayer3d.rst

@@ -236,6 +236,8 @@ If ``true``, audio plays when the AudioStreamPlayer3D node is added to scene tre
 
 The bus on which this audio is playing.
 
+\ **Note:** When setting this property, keep in mind that no validation is performed to see if the given name matches an existing bus. This is because audio bus layouts might be loaded after this property is set. If this given name can't be resolved at runtime, it will fall back to ``"Master"``.
+
 ----
 
 .. _class_AudioStreamPlayer3D_property_doppler_tracking:

+ 4 - 4
classes/class_basematerial3d.rst

@@ -2439,7 +2439,7 @@ If ``true``, render point size can be changed.
 | *Getter*  | get_uv1_offset()      |
 +-----------+-----------------------+
 
-How much to offset the ``UV`` coordinates. This amount will be added to ``UV`` in the vertex function. This can be used to offset a texture.
+How much to offset the ``UV`` coordinates. This amount will be added to ``UV`` in the vertex function. This can be used to offset a texture. The Z component is used when :ref:`uv1_triplanar<class_BaseMaterial3D_property_uv1_triplanar>` is enabled, but it is not used anywhere else.
 
 ----
 
@@ -2455,7 +2455,7 @@ How much to offset the ``UV`` coordinates. This amount will be added to ``UV`` i
 | *Getter*  | get_uv1_scale()      |
 +-----------+----------------------+
 
-How much to scale the ``UV`` coordinates. This is multiplied by ``UV`` in the vertex function.
+How much to scale the ``UV`` coordinates. This is multiplied by ``UV`` in the vertex function. The Z component is used when :ref:`uv1_triplanar<class_BaseMaterial3D_property_uv1_triplanar>` is enabled, but it is not used anywhere else.
 
 ----
 
@@ -2519,7 +2519,7 @@ If ``true``, triplanar mapping for ``UV`` is calculated in world space rather th
 | *Getter*  | get_uv2_offset()      |
 +-----------+-----------------------+
 
-How much to offset the ``UV2`` coordinates. This amount will be added to ``UV2`` in the vertex function. This can be used to offset a texture.
+How much to offset the ``UV2`` coordinates. This amount will be added to ``UV2`` in the vertex function. This can be used to offset a texture. The Z component is used when :ref:`uv2_triplanar<class_BaseMaterial3D_property_uv2_triplanar>` is enabled, but it is not used anywhere else.
 
 ----
 
@@ -2535,7 +2535,7 @@ How much to offset the ``UV2`` coordinates. This amount will be added to ``UV2``
 | *Getter*  | get_uv2_scale()      |
 +-----------+----------------------+
 
-How much to scale the ``UV2`` coordinates. This is multiplied by ``UV2`` in the vertex function.
+How much to scale the ``UV2`` coordinates. This is multiplied by ``UV2`` in the vertex function. The Z component is used when :ref:`uv2_triplanar<class_BaseMaterial3D_property_uv2_triplanar>` is enabled, but it is not used anywhere else.
 
 ----
 

+ 109 - 0
classes/class_bonemap.rst

@@ -0,0 +1,109 @@
+:github_url: hide
+
+.. Generated automatically by doc/tools/make_rst.py in Godot's source tree.
+.. DO NOT EDIT THIS FILE, but the BoneMap.xml source instead.
+.. The source is found in doc/classes or modules/<name>/doc_classes.
+
+.. _class_BoneMap:
+
+BoneMap
+=======
+
+**Inherits:** :ref:`Resource<class_Resource>` **<** :ref:`RefCounted<class_RefCounted>` **<** :ref:`Object<class_Object>`
+
+Bone map for retargeting.
+
+Description
+-----------
+
+This class contains a hashmap that uses a list of bone names in :ref:`SkeletonProfile<class_SkeletonProfile>` as key names.
+
+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>`.
+
+Properties
+----------
+
++-----------------------------------------------+------------------------------------------------+
+| :ref:`SkeletonProfile<class_SkeletonProfile>` | :ref:`profile<class_BoneMap_property_profile>` |
++-----------------------------------------------+------------------------------------------------+
+
+Methods
+-------
+
++-------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`StringName<class_StringName>` | :ref:`find_profile_bone_name<class_BoneMap_method_find_profile_bone_name>` **(** :ref:`StringName<class_StringName>` skeleton_bone_name **)** |const|                                                |
++-------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`StringName<class_StringName>` | :ref:`get_skeleton_bone_name<class_BoneMap_method_get_skeleton_bone_name>` **(** :ref:`StringName<class_StringName>` profile_bone_name **)** |const|                                                 |
++-------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                | :ref:`set_skeleton_bone_name<class_BoneMap_method_set_skeleton_bone_name>` **(** :ref:`StringName<class_StringName>` profile_bone_name, :ref:`StringName<class_StringName>` skeleton_bone_name **)** |
++-------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+Signals
+-------
+
+.. _class_BoneMap_signal_bone_map_updated:
+
+- **bone_map_updated** **(** **)**
+
+This signal is emitted when change the key value in the ``BoneMap``. This is used to validate mapping and to update ``BoneMap`` editor.
+
+----
+
+.. _class_BoneMap_signal_profile_updated:
+
+- **profile_updated** **(** **)**
+
+This signal is emitted when change the value in profile or change the reference of profile. This is used to update key names in the ``BoneMap`` and to redraw the ``BoneMap`` editor.
+
+Property Descriptions
+---------------------
+
+.. _class_BoneMap_property_profile:
+
+- :ref:`SkeletonProfile<class_SkeletonProfile>` **profile**
+
++----------+--------------------+
+| *Setter* | set_profile(value) |
++----------+--------------------+
+| *Getter* | get_profile()      |
++----------+--------------------+
+
+A :ref:`SkeletonProfile<class_SkeletonProfile>` of the mapping target. Key names in the ``BoneMap`` are synchronized with it.
+
+Method Descriptions
+-------------------
+
+.. _class_BoneMap_method_find_profile_bone_name:
+
+- :ref:`StringName<class_StringName>` **find_profile_bone_name** **(** :ref:`StringName<class_StringName>` skeleton_bone_name **)** |const|
+
+Returns a profile bone name having ``skeleton_bone_name``. If not found, an empty :ref:`StringName<class_StringName>` will be returned.
+
+In the retargeting process, the returned bone name is the bone name of the target skeleton.
+
+----
+
+.. _class_BoneMap_method_get_skeleton_bone_name:
+
+- :ref:`StringName<class_StringName>` **get_skeleton_bone_name** **(** :ref:`StringName<class_StringName>` profile_bone_name **)** |const|
+
+Returns a skeleton bone name is mapped to ``profile_bone_name``.
+
+In the retargeting process, the returned bone name is the bone name of the source skeleton.
+
+----
+
+.. _class_BoneMap_method_set_skeleton_bone_name:
+
+- void **set_skeleton_bone_name** **(** :ref:`StringName<class_StringName>` profile_bone_name, :ref:`StringName<class_StringName>` skeleton_bone_name **)**
+
+Maps a skeleton bone name to ``profile_bone_name``.
+
+In the retargeting process, the setting bone name is the bone name of the source skeleton.
+
+.. |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.)`
+.. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
+.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`
+.. |operator| replace:: :abbr:`operator (This method describes a valid operator to use with this type as left-hand operand.)`

+ 0 - 36
classes/class_button.rst

@@ -91,17 +91,6 @@ Properties
 | :ref:`OverrunBehavior<enum_TextServer_OverrunBehavior>`           | :ref:`text_overrun_behavior<class_Button_property_text_overrun_behavior>` | ``0``     |
 +-------------------------------------------------------------------+---------------------------------------------------------------------------+-----------+
 
-Methods
--------
-
-+-----------------------+------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                  | :ref:`clear_opentype_features<class_Button_method_clear_opentype_features>` **(** **)**                                                        |
-+-----------------------+------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>` | :ref:`get_opentype_feature<class_Button_method_get_opentype_feature>` **(** :ref:`String<class_String>` tag **)** |const|                      |
-+-----------------------+------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                  | :ref:`set_opentype_feature<class_Button_method_set_opentype_feature>` **(** :ref:`String<class_String>` tag, :ref:`int<class_int>` value **)** |
-+-----------------------+------------------------------------------------------------------------------------------------------------------------------------------------+
-
 Theme Properties
 ----------------
 
@@ -312,31 +301,6 @@ Base text writing direction.
 
 Sets the clipping behavior when the text exceeds the node's bounding rectangle. See :ref:`OverrunBehavior<enum_TextServer_OverrunBehavior>` for a description of all modes.
 
-Method Descriptions
--------------------
-
-.. _class_Button_method_clear_opentype_features:
-
-- void **clear_opentype_features** **(** **)**
-
-Removes all OpenType features.
-
-----
-
-.. _class_Button_method_get_opentype_feature:
-
-- :ref:`int<class_int>` **get_opentype_feature** **(** :ref:`String<class_String>` tag **)** |const|
-
-Returns OpenType feature ``tag``.
-
-----
-
-.. _class_Button_method_set_opentype_feature:
-
-- void **set_opentype_feature** **(** :ref:`String<class_String>` tag, :ref:`int<class_int>` value **)**
-
-Sets OpenType feature ``tag``. More info: `OpenType feature tags <https://docs.microsoft.com/en-us/typography/opentype/spec/featuretags>`__.
-
 Theme Property Descriptions
 ---------------------------
 

+ 6 - 4
classes/class_camera3d.rst

@@ -51,7 +51,7 @@ Properties
 +-------------------------------------------------------+-------------------------------------------------------------------+-------------------+
 | :ref:`float<class_float>`                             | :ref:`near<class_Camera3D_property_near>`                         | ``0.05``          |
 +-------------------------------------------------------+-------------------------------------------------------------------+-------------------+
-| :ref:`Projection<enum_Camera3D_Projection>`           | :ref:`projection<class_Camera3D_property_projection>`             | ``0``             |
+| :ref:`ProjectionType<enum_Camera3D_ProjectionType>`   | :ref:`projection<class_Camera3D_property_projection>`             | ``0``             |
 +-------------------------------------------------------+-------------------------------------------------------------------+-------------------+
 | :ref:`float<class_float>`                             | :ref:`size<class_Camera3D_property_size>`                         | ``1.0``           |
 +-------------------------------------------------------+-------------------------------------------------------------------+-------------------+
@@ -102,7 +102,7 @@ Methods
 Enumerations
 ------------
 
-.. _enum_Camera3D_Projection:
+.. _enum_Camera3D_ProjectionType:
 
 .. _class_Camera3D_constant_PROJECTION_PERSPECTIVE:
 
@@ -110,7 +110,7 @@ Enumerations
 
 .. _class_Camera3D_constant_PROJECTION_FRUSTUM:
 
-enum **Projection**:
+enum **ProjectionType**:
 
 - **PROJECTION_PERSPECTIVE** = **0** --- Perspective projection. Objects on the screen becomes smaller when they are far away.
 
@@ -183,6 +183,8 @@ The culling mask that describes which 3D render layers are rendered by this came
 
 If ``true``, the ancestor :ref:`Viewport<class_Viewport>` is currently using this camera.
 
+If multiple cameras are in the scene, one will always be made current. For example, if two ``Camera3D`` nodes are present in the scene and only one is current, setting one camera's :ref:`current<class_Camera3D_property_current>` to ``false`` will cause the other camera to be made current.
+
 ----
 
 .. _class_Camera3D_property_doppler_tracking:
@@ -337,7 +339,7 @@ The distance to the near culling boundary for this camera relative to its local
 
 .. _class_Camera3D_property_projection:
 
-- :ref:`Projection<enum_Camera3D_Projection>` **projection**
+- :ref:`ProjectionType<enum_Camera3D_ProjectionType>` **projection**
 
 +-----------+-----------------------+
 | *Default* | ``0``                 |

+ 136 - 106
classes/class_canvasitem.rst

@@ -69,107 +69,113 @@ Properties
 Methods
 -------
 
-+---------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                  | :ref:`_draw<class_CanvasItem_method__draw>` **(** **)** |virtual|                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
-+---------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                  | :ref:`draw_animation_slice<class_CanvasItem_method_draw_animation_slice>` **(** :ref:`float<class_float>` animation_length, :ref:`float<class_float>` slice_begin, :ref:`float<class_float>` slice_end, :ref:`float<class_float>` offset=0.0 **)**                                                                                                                                                                                                                                                                                                                                |
-+---------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                  | :ref:`draw_arc<class_CanvasItem_method_draw_arc>` **(** :ref:`Vector2<class_Vector2>` center, :ref:`float<class_float>` radius, :ref:`float<class_float>` start_angle, :ref:`float<class_float>` end_angle, :ref:`int<class_int>` point_count, :ref:`Color<class_Color>` color, :ref:`float<class_float>` width=1.0, :ref:`bool<class_bool>` antialiased=false **)**                                                                                                                                                                                                              |
-+---------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`             | :ref:`draw_char<class_CanvasItem_method_draw_char>` **(** :ref:`Font<class_Font>` font, :ref:`Vector2<class_Vector2>` pos, :ref:`String<class_String>` char, :ref:`String<class_String>` next="", :ref:`int<class_int>` size=16, :ref:`Color<class_Color>` modulate=Color(1, 1, 1, 1), :ref:`int<class_int>` outline_size=0, :ref:`Color<class_Color>` outline_modulate=Color(1, 1, 1, 0) **)** |const|                                                                                                                                                                           |
-+---------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                  | :ref:`draw_circle<class_CanvasItem_method_draw_circle>` **(** :ref:`Vector2<class_Vector2>` position, :ref:`float<class_float>` radius, :ref:`Color<class_Color>` color **)**                                                                                                                                                                                                                                                                                                                                                                                                     |
-+---------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                  | :ref:`draw_colored_polygon<class_CanvasItem_method_draw_colored_polygon>` **(** :ref:`PackedVector2Array<class_PackedVector2Array>` points, :ref:`Color<class_Color>` color, :ref:`PackedVector2Array<class_PackedVector2Array>` uvs=PackedVector2Array(), :ref:`Texture2D<class_Texture2D>` texture=null **)**                                                                                                                                                                                                                                                                   |
-+---------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                  | :ref:`draw_dashed_line<class_CanvasItem_method_draw_dashed_line>` **(** :ref:`Vector2<class_Vector2>` from, :ref:`Vector2<class_Vector2>` to, :ref:`Color<class_Color>` color, :ref:`float<class_float>` width=1.0, :ref:`float<class_float>` dash=2.0 **)**                                                                                                                                                                                                                                                                                                                      |
-+---------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                  | :ref:`draw_end_animation<class_CanvasItem_method_draw_end_animation>` **(** **)**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
-+---------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                  | :ref:`draw_line<class_CanvasItem_method_draw_line>` **(** :ref:`Vector2<class_Vector2>` from, :ref:`Vector2<class_Vector2>` to, :ref:`Color<class_Color>` color, :ref:`float<class_float>` width=1.0, :ref:`bool<class_bool>` antialiased=false **)**                                                                                                                                                                                                                                                                                                                             |
-+---------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                  | :ref:`draw_mesh<class_CanvasItem_method_draw_mesh>` **(** :ref:`Mesh<class_Mesh>` mesh, :ref:`Texture2D<class_Texture2D>` texture, :ref:`Transform2D<class_Transform2D>` transform=Transform2D(1, 0, 0, 1, 0, 0), :ref:`Color<class_Color>` modulate=Color(1, 1, 1, 1) **)**                                                                                                                                                                                                                                                                                                      |
-+---------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                  | :ref:`draw_msdf_texture_rect_region<class_CanvasItem_method_draw_msdf_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), :ref:`float<class_float>` outline=0.0, :ref:`float<class_float>` pixel_range=4.0 **)**                                                                                                                                                                                                                     |
-+---------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                  | :ref:`draw_multiline<class_CanvasItem_method_draw_multiline>` **(** :ref:`PackedVector2Array<class_PackedVector2Array>` points, :ref:`Color<class_Color>` color, :ref:`float<class_float>` width=1.0 **)**                                                                                                                                                                                                                                                                                                                                                                        |
-+---------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                  | :ref:`draw_multiline_colors<class_CanvasItem_method_draw_multiline_colors>` **(** :ref:`PackedVector2Array<class_PackedVector2Array>` points, :ref:`PackedColorArray<class_PackedColorArray>` colors, :ref:`float<class_float>` width=1.0 **)**                                                                                                                                                                                                                                                                                                                                   |
-+---------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                  | :ref:`draw_multiline_string<class_CanvasItem_method_draw_multiline_string>` **(** :ref:`Font<class_Font>` font, :ref:`Vector2<class_Vector2>` pos, :ref:`String<class_String>` text, :ref:`HorizontalAlignment<enum_@GlobalScope_HorizontalAlignment>` alignment=0, :ref:`float<class_float>` width=-1, :ref:`int<class_int>` max_lines=-1, :ref:`int<class_int>` size=16, :ref:`Color<class_Color>` modulate=Color(1, 1, 1, 1), :ref:`int<class_int>` outline_size=0, :ref:`Color<class_Color>` outline_modulate=Color(1, 1, 1, 0), :ref:`int<class_int>` flags=99 **)** |const| |
-+---------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                  | :ref:`draw_multimesh<class_CanvasItem_method_draw_multimesh>` **(** :ref:`MultiMesh<class_MultiMesh>` multimesh, :ref:`Texture2D<class_Texture2D>` texture **)**                                                                                                                                                                                                                                                                                                                                                                                                                  |
-+---------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                  | :ref:`draw_polygon<class_CanvasItem_method_draw_polygon>` **(** :ref:`PackedVector2Array<class_PackedVector2Array>` points, :ref:`PackedColorArray<class_PackedColorArray>` colors, :ref:`PackedVector2Array<class_PackedVector2Array>` uvs=PackedVector2Array(), :ref:`Texture2D<class_Texture2D>` texture=null **)**                                                                                                                                                                                                                                                            |
-+---------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                  | :ref:`draw_polyline<class_CanvasItem_method_draw_polyline>` **(** :ref:`PackedVector2Array<class_PackedVector2Array>` points, :ref:`Color<class_Color>` color, :ref:`float<class_float>` width=1.0, :ref:`bool<class_bool>` antialiased=false **)**                                                                                                                                                                                                                                                                                                                               |
-+---------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                  | :ref:`draw_polyline_colors<class_CanvasItem_method_draw_polyline_colors>` **(** :ref:`PackedVector2Array<class_PackedVector2Array>` points, :ref:`PackedColorArray<class_PackedColorArray>` colors, :ref:`float<class_float>` width=1.0, :ref:`bool<class_bool>` antialiased=false **)**                                                                                                                                                                                                                                                                                          |
-+---------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                  | :ref:`draw_primitive<class_CanvasItem_method_draw_primitive>` **(** :ref:`PackedVector2Array<class_PackedVector2Array>` points, :ref:`PackedColorArray<class_PackedColorArray>` colors, :ref:`PackedVector2Array<class_PackedVector2Array>` uvs, :ref:`Texture2D<class_Texture2D>` texture=null, :ref:`float<class_float>` width=1.0 **)**                                                                                                                                                                                                                                        |
-+---------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                  | :ref:`draw_rect<class_CanvasItem_method_draw_rect>` **(** :ref:`Rect2<class_Rect2>` rect, :ref:`Color<class_Color>` color, :ref:`bool<class_bool>` filled=true, :ref:`float<class_float>` width=1.0 **)**                                                                                                                                                                                                                                                                                                                                                                         |
-+---------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                  | :ref:`draw_set_transform<class_CanvasItem_method_draw_set_transform>` **(** :ref:`Vector2<class_Vector2>` position, :ref:`float<class_float>` rotation=0.0, :ref:`Vector2<class_Vector2>` scale=Vector2(1, 1) **)**                                                                                                                                                                                                                                                                                                                                                               |
-+---------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                  | :ref:`draw_set_transform_matrix<class_CanvasItem_method_draw_set_transform_matrix>` **(** :ref:`Transform2D<class_Transform2D>` xform **)**                                                                                                                                                                                                                                                                                                                                                                                                                                       |
-+---------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                  | :ref:`draw_string<class_CanvasItem_method_draw_string>` **(** :ref:`Font<class_Font>` font, :ref:`Vector2<class_Vector2>` pos, :ref:`String<class_String>` text, :ref:`HorizontalAlignment<enum_@GlobalScope_HorizontalAlignment>` alignment=0, :ref:`float<class_float>` width=-1, :ref:`int<class_int>` size=16, :ref:`Color<class_Color>` modulate=Color(1, 1, 1, 1), :ref:`int<class_int>` outline_size=0, :ref:`Color<class_Color>` outline_modulate=Color(1, 1, 1, 0), :ref:`int<class_int>` flags=3 **)** |const|                                                          |
-+---------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                  | :ref:`draw_style_box<class_CanvasItem_method_draw_style_box>` **(** :ref:`StyleBox<class_StyleBox>` style_box, :ref:`Rect2<class_Rect2>` rect **)**                                                                                                                                                                                                                                                                                                                                                                                                                               |
-+---------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                  | :ref:`draw_texture<class_CanvasItem_method_draw_texture>` **(** :ref:`Texture2D<class_Texture2D>` texture, :ref:`Vector2<class_Vector2>` position, :ref:`Color<class_Color>` modulate=Color(1, 1, 1, 1) **)**                                                                                                                                                                                                                                                                                                                                                                     |
-+---------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                  | :ref:`draw_texture_rect<class_CanvasItem_method_draw_texture_rect>` **(** :ref:`Texture2D<class_Texture2D>` texture, :ref:`Rect2<class_Rect2>` rect, :ref:`bool<class_bool>` tile, :ref:`Color<class_Color>` modulate=Color(1, 1, 1, 1), :ref:`bool<class_bool>` transpose=false **)**                                                                                                                                                                                                                                                                                            |
-+---------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                  | :ref:`draw_texture_rect_region<class_CanvasItem_method_draw_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), :ref:`bool<class_bool>` transpose=false, :ref:`bool<class_bool>` clip_uv=true **)**                                                                                                                                                                                                                                  |
-+---------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                  | :ref:`force_update_transform<class_CanvasItem_method_force_update_transform>` **(** **)**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
-+---------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`RID<class_RID>`                 | :ref:`get_canvas<class_CanvasItem_method_get_canvas>` **(** **)** |const|                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
-+---------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`RID<class_RID>`                 | :ref:`get_canvas_item<class_CanvasItem_method_get_canvas_item>` **(** **)** |const|                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
-+---------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Transform2D<class_Transform2D>` | :ref:`get_canvas_transform<class_CanvasItem_method_get_canvas_transform>` **(** **)** |const|                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
-+---------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Vector2<class_Vector2>`         | :ref:`get_global_mouse_position<class_CanvasItem_method_get_global_mouse_position>` **(** **)** |const|                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
-+---------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Transform2D<class_Transform2D>` | :ref:`get_global_transform<class_CanvasItem_method_get_global_transform>` **(** **)** |const|                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
-+---------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Transform2D<class_Transform2D>` | :ref:`get_global_transform_with_canvas<class_CanvasItem_method_get_global_transform_with_canvas>` **(** **)** |const|                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
-+---------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Vector2<class_Vector2>`         | :ref:`get_local_mouse_position<class_CanvasItem_method_get_local_mouse_position>` **(** **)** |const|                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
-+---------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Transform2D<class_Transform2D>` | :ref:`get_screen_transform<class_CanvasItem_method_get_screen_transform>` **(** **)** |const|                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
-+---------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Transform2D<class_Transform2D>` | :ref:`get_transform<class_CanvasItem_method_get_transform>` **(** **)** |const|                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
-+---------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Rect2<class_Rect2>`             | :ref:`get_viewport_rect<class_CanvasItem_method_get_viewport_rect>` **(** **)** |const|                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
-+---------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Transform2D<class_Transform2D>` | :ref:`get_viewport_transform<class_CanvasItem_method_get_viewport_transform>` **(** **)** |const|                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
-+---------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`World2D<class_World2D>`         | :ref:`get_world_2d<class_CanvasItem_method_get_world_2d>` **(** **)** |const|                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
-+---------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                  | :ref:`hide<class_CanvasItem_method_hide>` **(** **)**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
-+---------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`               | :ref:`is_local_transform_notification_enabled<class_CanvasItem_method_is_local_transform_notification_enabled>` **(** **)** |const|                                                                                                                                                                                                                                                                                                                                                                                                                                               |
-+---------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`               | :ref:`is_transform_notification_enabled<class_CanvasItem_method_is_transform_notification_enabled>` **(** **)** |const|                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
-+---------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`               | :ref:`is_visible_in_tree<class_CanvasItem_method_is_visible_in_tree>` **(** **)** |const|                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
-+---------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Vector2<class_Vector2>`         | :ref:`make_canvas_position_local<class_CanvasItem_method_make_canvas_position_local>` **(** :ref:`Vector2<class_Vector2>` screen_point **)** |const|                                                                                                                                                                                                                                                                                                                                                                                                                              |
-+---------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`InputEvent<class_InputEvent>`   | :ref:`make_input_local<class_CanvasItem_method_make_input_local>` **(** :ref:`InputEvent<class_InputEvent>` event **)** |const|                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
-+---------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                  | :ref:`set_notify_local_transform<class_CanvasItem_method_set_notify_local_transform>` **(** :ref:`bool<class_bool>` enable **)**                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
-+---------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                  | :ref:`set_notify_transform<class_CanvasItem_method_set_notify_transform>` **(** :ref:`bool<class_bool>` enable **)**                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
-+---------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                  | :ref:`show<class_CanvasItem_method_show>` **(** **)**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
-+---------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                  | :ref:`update<class_CanvasItem_method_update>` **(** **)**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
-+---------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
++---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                  | :ref:`_draw<class_CanvasItem_method__draw>` **(** **)** |virtual|                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
++---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                  | :ref:`draw_animation_slice<class_CanvasItem_method_draw_animation_slice>` **(** :ref:`float<class_float>` animation_length, :ref:`float<class_float>` slice_begin, :ref:`float<class_float>` slice_end, :ref:`float<class_float>` offset=0.0 **)**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
++---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                  | :ref:`draw_arc<class_CanvasItem_method_draw_arc>` **(** :ref:`Vector2<class_Vector2>` center, :ref:`float<class_float>` radius, :ref:`float<class_float>` start_angle, :ref:`float<class_float>` end_angle, :ref:`int<class_int>` point_count, :ref:`Color<class_Color>` color, :ref:`float<class_float>` width=1.0, :ref:`bool<class_bool>` antialiased=false **)**                                                                                                                                                                                                                                                                                                                                                                                               |
++---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                  | :ref:`draw_char<class_CanvasItem_method_draw_char>` **(** :ref:`Font<class_Font>` font, :ref:`Vector2<class_Vector2>` pos, :ref:`String<class_String>` char, :ref:`int<class_int>` font_size=16, :ref:`Color<class_Color>` modulate=Color(1, 1, 1, 1) **)** |const|                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
++---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                  | :ref:`draw_char_outline<class_CanvasItem_method_draw_char_outline>` **(** :ref:`Font<class_Font>` font, :ref:`Vector2<class_Vector2>` pos, :ref:`String<class_String>` char, :ref:`int<class_int>` font_size=16, :ref:`int<class_int>` size=-1, :ref:`Color<class_Color>` modulate=Color(1, 1, 1, 1) **)** |const|                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
++---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                  | :ref:`draw_circle<class_CanvasItem_method_draw_circle>` **(** :ref:`Vector2<class_Vector2>` position, :ref:`float<class_float>` radius, :ref:`Color<class_Color>` color **)**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
++---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                  | :ref:`draw_colored_polygon<class_CanvasItem_method_draw_colored_polygon>` **(** :ref:`PackedVector2Array<class_PackedVector2Array>` points, :ref:`Color<class_Color>` color, :ref:`PackedVector2Array<class_PackedVector2Array>` uvs=PackedVector2Array(), :ref:`Texture2D<class_Texture2D>` texture=null **)**                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
++---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                  | :ref:`draw_dashed_line<class_CanvasItem_method_draw_dashed_line>` **(** :ref:`Vector2<class_Vector2>` from, :ref:`Vector2<class_Vector2>` to, :ref:`Color<class_Color>` color, :ref:`float<class_float>` width=1.0, :ref:`float<class_float>` dash=2.0 **)**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
++---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                  | :ref:`draw_end_animation<class_CanvasItem_method_draw_end_animation>` **(** **)**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
++---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                  | :ref:`draw_line<class_CanvasItem_method_draw_line>` **(** :ref:`Vector2<class_Vector2>` from, :ref:`Vector2<class_Vector2>` to, :ref:`Color<class_Color>` color, :ref:`float<class_float>` width=1.0, :ref:`bool<class_bool>` antialiased=false **)**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
++---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                  | :ref:`draw_mesh<class_CanvasItem_method_draw_mesh>` **(** :ref:`Mesh<class_Mesh>` mesh, :ref:`Texture2D<class_Texture2D>` texture, :ref:`Transform2D<class_Transform2D>` transform=Transform2D(1, 0, 0, 1, 0, 0), :ref:`Color<class_Color>` modulate=Color(1, 1, 1, 1) **)**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
++---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                  | :ref:`draw_msdf_texture_rect_region<class_CanvasItem_method_draw_msdf_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), :ref:`float<class_float>` outline=0.0, :ref:`float<class_float>` pixel_range=4.0 **)**                                                                                                                                                                                                                                                                                                                                                                                                      |
++---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                  | :ref:`draw_multiline<class_CanvasItem_method_draw_multiline>` **(** :ref:`PackedVector2Array<class_PackedVector2Array>` points, :ref:`Color<class_Color>` color, :ref:`float<class_float>` width=1.0 **)**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
++---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                  | :ref:`draw_multiline_colors<class_CanvasItem_method_draw_multiline_colors>` **(** :ref:`PackedVector2Array<class_PackedVector2Array>` points, :ref:`PackedColorArray<class_PackedColorArray>` colors, :ref:`float<class_float>` width=1.0 **)**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
++---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                  | :ref:`draw_multiline_string<class_CanvasItem_method_draw_multiline_string>` **(** :ref:`Font<class_Font>` font, :ref:`Vector2<class_Vector2>` pos, :ref:`String<class_String>` text, :ref:`HorizontalAlignment<enum_@GlobalScope_HorizontalAlignment>` alignment=0, :ref:`float<class_float>` width=-1, :ref:`int<class_int>` font_size=16, :ref:`int<class_int>` max_lines=-1, :ref:`Color<class_Color>` modulate=Color(1, 1, 1, 1), :ref:`LineBreakFlag<enum_TextServer_LineBreakFlag>` brk_flags=3, :ref:`JustificationFlag<enum_TextServer_JustificationFlag>` jst_flags=3, :ref:`Direction<enum_TextServer_Direction>` direction=0, :ref:`Orientation<enum_TextServer_Orientation>` orientation=0 **)** |const|                                               |
++---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                  | :ref:`draw_multiline_string_outline<class_CanvasItem_method_draw_multiline_string_outline>` **(** :ref:`Font<class_Font>` font, :ref:`Vector2<class_Vector2>` pos, :ref:`String<class_String>` text, :ref:`HorizontalAlignment<enum_@GlobalScope_HorizontalAlignment>` alignment=0, :ref:`float<class_float>` width=-1, :ref:`int<class_int>` font_size=16, :ref:`int<class_int>` max_lines=-1, :ref:`int<class_int>` size=1, :ref:`Color<class_Color>` modulate=Color(1, 1, 1, 1), :ref:`LineBreakFlag<enum_TextServer_LineBreakFlag>` brk_flags=3, :ref:`JustificationFlag<enum_TextServer_JustificationFlag>` jst_flags=3, :ref:`Direction<enum_TextServer_Direction>` direction=0, :ref:`Orientation<enum_TextServer_Orientation>` orientation=0 **)** |const| |
++---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                  | :ref:`draw_multimesh<class_CanvasItem_method_draw_multimesh>` **(** :ref:`MultiMesh<class_MultiMesh>` multimesh, :ref:`Texture2D<class_Texture2D>` texture **)**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
++---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                  | :ref:`draw_polygon<class_CanvasItem_method_draw_polygon>` **(** :ref:`PackedVector2Array<class_PackedVector2Array>` points, :ref:`PackedColorArray<class_PackedColorArray>` colors, :ref:`PackedVector2Array<class_PackedVector2Array>` uvs=PackedVector2Array(), :ref:`Texture2D<class_Texture2D>` texture=null **)**                                                                                                                                                                                                                                                                                                                                                                                                                                             |
++---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                  | :ref:`draw_polyline<class_CanvasItem_method_draw_polyline>` **(** :ref:`PackedVector2Array<class_PackedVector2Array>` points, :ref:`Color<class_Color>` color, :ref:`float<class_float>` width=1.0, :ref:`bool<class_bool>` antialiased=false **)**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
++---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                  | :ref:`draw_polyline_colors<class_CanvasItem_method_draw_polyline_colors>` **(** :ref:`PackedVector2Array<class_PackedVector2Array>` points, :ref:`PackedColorArray<class_PackedColorArray>` colors, :ref:`float<class_float>` width=1.0, :ref:`bool<class_bool>` antialiased=false **)**                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
++---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                  | :ref:`draw_primitive<class_CanvasItem_method_draw_primitive>` **(** :ref:`PackedVector2Array<class_PackedVector2Array>` points, :ref:`PackedColorArray<class_PackedColorArray>` colors, :ref:`PackedVector2Array<class_PackedVector2Array>` uvs, :ref:`Texture2D<class_Texture2D>` texture=null, :ref:`float<class_float>` width=1.0 **)**                                                                                                                                                                                                                                                                                                                                                                                                                         |
++---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                  | :ref:`draw_rect<class_CanvasItem_method_draw_rect>` **(** :ref:`Rect2<class_Rect2>` rect, :ref:`Color<class_Color>` color, :ref:`bool<class_bool>` filled=true, :ref:`float<class_float>` width=1.0 **)**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
++---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                  | :ref:`draw_set_transform<class_CanvasItem_method_draw_set_transform>` **(** :ref:`Vector2<class_Vector2>` position, :ref:`float<class_float>` rotation=0.0, :ref:`Vector2<class_Vector2>` scale=Vector2(1, 1) **)**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
++---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                  | :ref:`draw_set_transform_matrix<class_CanvasItem_method_draw_set_transform_matrix>` **(** :ref:`Transform2D<class_Transform2D>` xform **)**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
++---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                  | :ref:`draw_string<class_CanvasItem_method_draw_string>` **(** :ref:`Font<class_Font>` font, :ref:`Vector2<class_Vector2>` pos, :ref:`String<class_String>` text, :ref:`HorizontalAlignment<enum_@GlobalScope_HorizontalAlignment>` alignment=0, :ref:`float<class_float>` width=-1, :ref:`int<class_int>` font_size=16, :ref:`Color<class_Color>` modulate=Color(1, 1, 1, 1), :ref:`JustificationFlag<enum_TextServer_JustificationFlag>` jst_flags=3, :ref:`Direction<enum_TextServer_Direction>` direction=0, :ref:`Orientation<enum_TextServer_Orientation>` orientation=0 **)** |const|                                                                                                                                                                        |
++---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                  | :ref:`draw_string_outline<class_CanvasItem_method_draw_string_outline>` **(** :ref:`Font<class_Font>` font, :ref:`Vector2<class_Vector2>` pos, :ref:`String<class_String>` text, :ref:`HorizontalAlignment<enum_@GlobalScope_HorizontalAlignment>` alignment=0, :ref:`float<class_float>` width=-1, :ref:`int<class_int>` font_size=16, :ref:`int<class_int>` size=1, :ref:`Color<class_Color>` modulate=Color(1, 1, 1, 1), :ref:`JustificationFlag<enum_TextServer_JustificationFlag>` jst_flags=3, :ref:`Direction<enum_TextServer_Direction>` direction=0, :ref:`Orientation<enum_TextServer_Orientation>` orientation=0 **)** |const|                                                                                                                          |
++---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                  | :ref:`draw_style_box<class_CanvasItem_method_draw_style_box>` **(** :ref:`StyleBox<class_StyleBox>` style_box, :ref:`Rect2<class_Rect2>` rect **)**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
++---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                  | :ref:`draw_texture<class_CanvasItem_method_draw_texture>` **(** :ref:`Texture2D<class_Texture2D>` texture, :ref:`Vector2<class_Vector2>` position, :ref:`Color<class_Color>` modulate=Color(1, 1, 1, 1) **)**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
++---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                  | :ref:`draw_texture_rect<class_CanvasItem_method_draw_texture_rect>` **(** :ref:`Texture2D<class_Texture2D>` texture, :ref:`Rect2<class_Rect2>` rect, :ref:`bool<class_bool>` tile, :ref:`Color<class_Color>` modulate=Color(1, 1, 1, 1), :ref:`bool<class_bool>` transpose=false **)**                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
++---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                  | :ref:`draw_texture_rect_region<class_CanvasItem_method_draw_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), :ref:`bool<class_bool>` transpose=false, :ref:`bool<class_bool>` clip_uv=true **)**                                                                                                                                                                                                                                                                                                                                                                                                                   |
++---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                  | :ref:`force_update_transform<class_CanvasItem_method_force_update_transform>` **(** **)**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
++---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`RID<class_RID>`                 | :ref:`get_canvas<class_CanvasItem_method_get_canvas>` **(** **)** |const|                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
++---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`RID<class_RID>`                 | :ref:`get_canvas_item<class_CanvasItem_method_get_canvas_item>` **(** **)** |const|                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
++---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Transform2D<class_Transform2D>` | :ref:`get_canvas_transform<class_CanvasItem_method_get_canvas_transform>` **(** **)** |const|                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
++---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Vector2<class_Vector2>`         | :ref:`get_global_mouse_position<class_CanvasItem_method_get_global_mouse_position>` **(** **)** |const|                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
++---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Transform2D<class_Transform2D>` | :ref:`get_global_transform<class_CanvasItem_method_get_global_transform>` **(** **)** |const|                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
++---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Transform2D<class_Transform2D>` | :ref:`get_global_transform_with_canvas<class_CanvasItem_method_get_global_transform_with_canvas>` **(** **)** |const|                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
++---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Vector2<class_Vector2>`         | :ref:`get_local_mouse_position<class_CanvasItem_method_get_local_mouse_position>` **(** **)** |const|                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
++---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Transform2D<class_Transform2D>` | :ref:`get_screen_transform<class_CanvasItem_method_get_screen_transform>` **(** **)** |const|                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
++---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Transform2D<class_Transform2D>` | :ref:`get_transform<class_CanvasItem_method_get_transform>` **(** **)** |const|                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
++---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Rect2<class_Rect2>`             | :ref:`get_viewport_rect<class_CanvasItem_method_get_viewport_rect>` **(** **)** |const|                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
++---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Transform2D<class_Transform2D>` | :ref:`get_viewport_transform<class_CanvasItem_method_get_viewport_transform>` **(** **)** |const|                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
++---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`World2D<class_World2D>`         | :ref:`get_world_2d<class_CanvasItem_method_get_world_2d>` **(** **)** |const|                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
++---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                  | :ref:`hide<class_CanvasItem_method_hide>` **(** **)**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
++---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`               | :ref:`is_local_transform_notification_enabled<class_CanvasItem_method_is_local_transform_notification_enabled>` **(** **)** |const|                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
++---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`               | :ref:`is_transform_notification_enabled<class_CanvasItem_method_is_transform_notification_enabled>` **(** **)** |const|                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
++---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`               | :ref:`is_visible_in_tree<class_CanvasItem_method_is_visible_in_tree>` **(** **)** |const|                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
++---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Vector2<class_Vector2>`         | :ref:`make_canvas_position_local<class_CanvasItem_method_make_canvas_position_local>` **(** :ref:`Vector2<class_Vector2>` screen_point **)** |const|                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
++---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`InputEvent<class_InputEvent>`   | :ref:`make_input_local<class_CanvasItem_method_make_input_local>` **(** :ref:`InputEvent<class_InputEvent>` event **)** |const|                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
++---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                  | :ref:`set_notify_local_transform<class_CanvasItem_method_set_notify_local_transform>` **(** :ref:`bool<class_bool>` enable **)**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
++---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                  | :ref:`set_notify_transform<class_CanvasItem_method_set_notify_transform>` **(** :ref:`bool<class_bool>` enable **)**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
++---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                  | :ref:`show<class_CanvasItem_method_show>` **(** **)**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
++---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                  | :ref:`update<class_CanvasItem_method_update>` **(** **)**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
++---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 
 Signals
 -------
@@ -504,9 +510,17 @@ Draws a unfilled arc between the given angles. The larger the value of ``point_c
 
 .. _class_CanvasItem_method_draw_char:
 
-- :ref:`float<class_float>` **draw_char** **(** :ref:`Font<class_Font>` font, :ref:`Vector2<class_Vector2>` pos, :ref:`String<class_String>` char, :ref:`String<class_String>` next="", :ref:`int<class_int>` size=16, :ref:`Color<class_Color>` modulate=Color(1, 1, 1, 1), :ref:`int<class_int>` outline_size=0, :ref:`Color<class_Color>` outline_modulate=Color(1, 1, 1, 0) **)** |const|
+- void **draw_char** **(** :ref:`Font<class_Font>` font, :ref:`Vector2<class_Vector2>` pos, :ref:`String<class_String>` char, :ref:`int<class_int>` font_size=16, :ref:`Color<class_Color>` modulate=Color(1, 1, 1, 1) **)** |const|
 
-Draws a string character using a custom font. Returns the advance, depending on the character width and kerning with an optional next character.
+Draws a string first character using a custom font.
+
+----
+
+.. _class_CanvasItem_method_draw_char_outline:
+
+- void **draw_char_outline** **(** :ref:`Font<class_Font>` font, :ref:`Vector2<class_Vector2>` pos, :ref:`String<class_String>` char, :ref:`int<class_int>` font_size=16, :ref:`int<class_int>` size=-1, :ref:`Color<class_Color>` modulate=Color(1, 1, 1, 1) **)** |const|
+
+Draws a string first character outline using a custom font.
 
 ----
 
@@ -562,7 +576,7 @@ Draws a :ref:`Mesh<class_Mesh>` in 2D, using the provided texture. See :ref:`Mes
 
 - void **draw_msdf_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), :ref:`float<class_float>` outline=0.0, :ref:`float<class_float>` pixel_range=4.0 **)**
 
-Draws a textured rectangle region of the multi-channel signed distance field texture at a given position, optionally modulated by a color. See :ref:`FontData.multichannel_signed_distance_field<class_FontData_property_multichannel_signed_distance_field>` for more information and caveats about MSDF font rendering.
+Draws a textured rectangle region of the multi-channel signed distance field texture at a given position, optionally modulated by a color. See :ref:`FontFile.multichannel_signed_distance_field<class_FontFile_property_multichannel_signed_distance_field>` for more information and caveats about MSDF font rendering.
 
 If ``outline`` is positive, each alpha channel value of pixel in region is set to maximum value of true distance in the ``outline`` radius.
 
@@ -588,12 +602,20 @@ Draws multiple disconnected lines with a uniform ``width`` and segment-by-segmen
 
 .. _class_CanvasItem_method_draw_multiline_string:
 
-- void **draw_multiline_string** **(** :ref:`Font<class_Font>` font, :ref:`Vector2<class_Vector2>` pos, :ref:`String<class_String>` text, :ref:`HorizontalAlignment<enum_@GlobalScope_HorizontalAlignment>` alignment=0, :ref:`float<class_float>` width=-1, :ref:`int<class_int>` max_lines=-1, :ref:`int<class_int>` size=16, :ref:`Color<class_Color>` modulate=Color(1, 1, 1, 1), :ref:`int<class_int>` outline_size=0, :ref:`Color<class_Color>` outline_modulate=Color(1, 1, 1, 0), :ref:`int<class_int>` flags=99 **)** |const|
+- void **draw_multiline_string** **(** :ref:`Font<class_Font>` font, :ref:`Vector2<class_Vector2>` pos, :ref:`String<class_String>` text, :ref:`HorizontalAlignment<enum_@GlobalScope_HorizontalAlignment>` alignment=0, :ref:`float<class_float>` width=-1, :ref:`int<class_int>` font_size=16, :ref:`int<class_int>` max_lines=-1, :ref:`Color<class_Color>` modulate=Color(1, 1, 1, 1), :ref:`LineBreakFlag<enum_TextServer_LineBreakFlag>` brk_flags=3, :ref:`JustificationFlag<enum_TextServer_JustificationFlag>` jst_flags=3, :ref:`Direction<enum_TextServer_Direction>` direction=0, :ref:`Orientation<enum_TextServer_Orientation>` orientation=0 **)** |const|
 
 Breaks ``text`` to the lines and draws it using the specified ``font`` at the ``position`` (top-left corner). The text will have its color multiplied by ``modulate``. If ``clip_w`` is greater than or equal to 0, the text will be clipped if it exceeds the specified width.
 
 ----
 
+.. _class_CanvasItem_method_draw_multiline_string_outline:
+
+- void **draw_multiline_string_outline** **(** :ref:`Font<class_Font>` font, :ref:`Vector2<class_Vector2>` pos, :ref:`String<class_String>` text, :ref:`HorizontalAlignment<enum_@GlobalScope_HorizontalAlignment>` alignment=0, :ref:`float<class_float>` width=-1, :ref:`int<class_int>` font_size=16, :ref:`int<class_int>` max_lines=-1, :ref:`int<class_int>` size=1, :ref:`Color<class_Color>` modulate=Color(1, 1, 1, 1), :ref:`LineBreakFlag<enum_TextServer_LineBreakFlag>` brk_flags=3, :ref:`JustificationFlag<enum_TextServer_JustificationFlag>` jst_flags=3, :ref:`Direction<enum_TextServer_Direction>` direction=0, :ref:`Orientation<enum_TextServer_Orientation>` orientation=0 **)** |const|
+
+Breaks ``text`` to the lines and draws text outline using the specified ``font`` at the ``position`` (top-left corner). The text will have its color multiplied by ``modulate``. If ``clip_w`` is greater than or equal to 0, the text will be clipped if it exceeds the specified width.
+
+----
+
 .. _class_CanvasItem_method_draw_multimesh:
 
 - void **draw_multimesh** **(** :ref:`MultiMesh<class_MultiMesh>` multimesh, :ref:`Texture2D<class_Texture2D>` texture **)**
@@ -662,7 +684,7 @@ Sets a custom transform for drawing via matrix. Anything drawn afterwards will b
 
 .. _class_CanvasItem_method_draw_string:
 
-- void **draw_string** **(** :ref:`Font<class_Font>` font, :ref:`Vector2<class_Vector2>` pos, :ref:`String<class_String>` text, :ref:`HorizontalAlignment<enum_@GlobalScope_HorizontalAlignment>` alignment=0, :ref:`float<class_float>` width=-1, :ref:`int<class_int>` size=16, :ref:`Color<class_Color>` modulate=Color(1, 1, 1, 1), :ref:`int<class_int>` outline_size=0, :ref:`Color<class_Color>` outline_modulate=Color(1, 1, 1, 0), :ref:`int<class_int>` flags=3 **)** |const|
+- void **draw_string** **(** :ref:`Font<class_Font>` font, :ref:`Vector2<class_Vector2>` pos, :ref:`String<class_String>` text, :ref:`HorizontalAlignment<enum_@GlobalScope_HorizontalAlignment>` alignment=0, :ref:`float<class_float>` width=-1, :ref:`int<class_int>` font_size=16, :ref:`Color<class_Color>` modulate=Color(1, 1, 1, 1), :ref:`JustificationFlag<enum_TextServer_JustificationFlag>` jst_flags=3, :ref:`Direction<enum_TextServer_Direction>` direction=0, :ref:`Orientation<enum_TextServer_Orientation>` orientation=0 **)** |const|
 
 Draws ``text`` using the specified ``font`` at the ``position`` (bottom-left corner using the baseline of the font). The text will have its color multiplied by ``modulate``. If ``clip_w`` is greater than or equal to 0, the text will be clipped if it exceeds the specified width.
 
@@ -695,6 +717,14 @@ See also :ref:`Font.draw_string<class_Font_method_draw_string>`.
 
 ----
 
+.. _class_CanvasItem_method_draw_string_outline:
+
+- void **draw_string_outline** **(** :ref:`Font<class_Font>` font, :ref:`Vector2<class_Vector2>` pos, :ref:`String<class_String>` text, :ref:`HorizontalAlignment<enum_@GlobalScope_HorizontalAlignment>` alignment=0, :ref:`float<class_float>` width=-1, :ref:`int<class_int>` font_size=16, :ref:`int<class_int>` size=1, :ref:`Color<class_Color>` modulate=Color(1, 1, 1, 1), :ref:`JustificationFlag<enum_TextServer_JustificationFlag>` jst_flags=3, :ref:`Direction<enum_TextServer_Direction>` direction=0, :ref:`Orientation<enum_TextServer_Orientation>` orientation=0 **)** |const|
+
+Draws ``text`` outline using the specified ``font`` at the ``position`` (bottom-left corner using the baseline of the font). The text will have its color multiplied by ``modulate``. If ``clip_w`` is greater than or equal to 0, the text will be clipped if it exceeds the specified width.
+
+----
+
 .. _class_CanvasItem_method_draw_style_box:
 
 - void **draw_style_box** **(** :ref:`StyleBox<class_StyleBox>` style_box, :ref:`Rect2<class_Rect2>` rect **)**

+ 103 - 89
classes/class_codeedit.rst

@@ -195,95 +195,97 @@ Methods
 Theme Properties
 ----------------
 
-+-----------------------------------+--------------------------------------------------------------------------------------------+-------------------------------------+
-| :ref:`Color<class_Color>`         | :ref:`background_color<class_CodeEdit_theme_color_background_color>`                       | ``Color(0, 0, 0, 0)``               |
-+-----------------------------------+--------------------------------------------------------------------------------------------+-------------------------------------+
-| :ref:`Color<class_Color>`         | :ref:`bookmark_color<class_CodeEdit_theme_color_bookmark_color>`                           | ``Color(0.5, 0.64, 1, 0.8)``        |
-+-----------------------------------+--------------------------------------------------------------------------------------------+-------------------------------------+
-| :ref:`Color<class_Color>`         | :ref:`brace_mismatch_color<class_CodeEdit_theme_color_brace_mismatch_color>`               | ``Color(1, 0.2, 0.2, 1)``           |
-+-----------------------------------+--------------------------------------------------------------------------------------------+-------------------------------------+
-| :ref:`Color<class_Color>`         | :ref:`breakpoint_color<class_CodeEdit_theme_color_breakpoint_color>`                       | ``Color(0.9, 0.29, 0.3, 1)``        |
-+-----------------------------------+--------------------------------------------------------------------------------------------+-------------------------------------+
-| :ref:`Color<class_Color>`         | :ref:`caret_background_color<class_CodeEdit_theme_color_caret_background_color>`           | ``Color(0, 0, 0, 1)``               |
-+-----------------------------------+--------------------------------------------------------------------------------------------+-------------------------------------+
-| :ref:`Color<class_Color>`         | :ref:`caret_color<class_CodeEdit_theme_color_caret_color>`                                 | ``Color(0.875, 0.875, 0.875, 1)``   |
-+-----------------------------------+--------------------------------------------------------------------------------------------+-------------------------------------+
-| :ref:`Color<class_Color>`         | :ref:`code_folding_color<class_CodeEdit_theme_color_code_folding_color>`                   | ``Color(0.8, 0.8, 0.8, 0.8)``       |
-+-----------------------------------+--------------------------------------------------------------------------------------------+-------------------------------------+
-| :ref:`Color<class_Color>`         | :ref:`completion_background_color<class_CodeEdit_theme_color_completion_background_color>` | ``Color(0.17, 0.16, 0.2, 1)``       |
-+-----------------------------------+--------------------------------------------------------------------------------------------+-------------------------------------+
-| :ref:`Color<class_Color>`         | :ref:`completion_existing_color<class_CodeEdit_theme_color_completion_existing_color>`     | ``Color(0.87, 0.87, 0.87, 0.13)``   |
-+-----------------------------------+--------------------------------------------------------------------------------------------+-------------------------------------+
-| :ref:`Color<class_Color>`         | :ref:`completion_font_color<class_CodeEdit_theme_color_completion_font_color>`             | ``Color(0.67, 0.67, 0.67, 1)``      |
-+-----------------------------------+--------------------------------------------------------------------------------------------+-------------------------------------+
-| :ref:`Color<class_Color>`         | :ref:`completion_scroll_color<class_CodeEdit_theme_color_completion_scroll_color>`         | ``Color(1, 1, 1, 0.29)``            |
-+-----------------------------------+--------------------------------------------------------------------------------------------+-------------------------------------+
-| :ref:`Color<class_Color>`         | :ref:`completion_selected_color<class_CodeEdit_theme_color_completion_selected_color>`     | ``Color(0.26, 0.26, 0.27, 1)``      |
-+-----------------------------------+--------------------------------------------------------------------------------------------+-------------------------------------+
-| :ref:`Color<class_Color>`         | :ref:`current_line_color<class_CodeEdit_theme_color_current_line_color>`                   | ``Color(0.25, 0.25, 0.26, 0.8)``    |
-+-----------------------------------+--------------------------------------------------------------------------------------------+-------------------------------------+
-| :ref:`Color<class_Color>`         | :ref:`executing_line_color<class_CodeEdit_theme_color_executing_line_color>`               | ``Color(0.98, 0.89, 0.27, 1)``      |
-+-----------------------------------+--------------------------------------------------------------------------------------------+-------------------------------------+
-| :ref:`Color<class_Color>`         | :ref:`font_color<class_CodeEdit_theme_color_font_color>`                                   | ``Color(0.875, 0.875, 0.875, 1)``   |
-+-----------------------------------+--------------------------------------------------------------------------------------------+-------------------------------------+
-| :ref:`Color<class_Color>`         | :ref:`font_outline_color<class_CodeEdit_theme_color_font_outline_color>`                   | ``Color(1, 1, 1, 1)``               |
-+-----------------------------------+--------------------------------------------------------------------------------------------+-------------------------------------+
-| :ref:`Color<class_Color>`         | :ref:`font_placeholder_color<class_CodeEdit_theme_color_font_placeholder_color>`           | ``Color(0.875, 0.875, 0.875, 0.6)`` |
-+-----------------------------------+--------------------------------------------------------------------------------------------+-------------------------------------+
-| :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:`line_length_guideline_color<class_CodeEdit_theme_color_line_length_guideline_color>` | ``Color(0.3, 0.5, 0.8, 0.1)``       |
-+-----------------------------------+--------------------------------------------------------------------------------------------+-------------------------------------+
-| :ref:`Color<class_Color>`         | :ref:`line_number_color<class_CodeEdit_theme_color_line_number_color>`                     | ``Color(0.67, 0.67, 0.67, 0.4)``    |
-+-----------------------------------+--------------------------------------------------------------------------------------------+-------------------------------------+
-| :ref:`Color<class_Color>`         | :ref:`search_result_border_color<class_CodeEdit_theme_color_search_result_border_color>`   | ``Color(0.3, 0.3, 0.3, 0.4)``       |
-+-----------------------------------+--------------------------------------------------------------------------------------------+-------------------------------------+
-| :ref:`Color<class_Color>`         | :ref:`search_result_color<class_CodeEdit_theme_color_search_result_color>`                 | ``Color(0.3, 0.3, 0.3, 1)``         |
-+-----------------------------------+--------------------------------------------------------------------------------------------+-------------------------------------+
-| :ref:`Color<class_Color>`         | :ref:`selection_color<class_CodeEdit_theme_color_selection_color>`                         | ``Color(0.5, 0.5, 0.5, 1)``         |
-+-----------------------------------+--------------------------------------------------------------------------------------------+-------------------------------------+
-| :ref:`Color<class_Color>`         | :ref:`word_highlighted_color<class_CodeEdit_theme_color_word_highlighted_color>`           | ``Color(0.8, 0.9, 0.9, 0.15)``      |
-+-----------------------------------+--------------------------------------------------------------------------------------------+-------------------------------------+
-| :ref:`int<class_int>`             | :ref:`completion_lines<class_CodeEdit_theme_constant_completion_lines>`                    | ``7``                               |
-+-----------------------------------+--------------------------------------------------------------------------------------------+-------------------------------------+
-| :ref:`int<class_int>`             | :ref:`completion_max_width<class_CodeEdit_theme_constant_completion_max_width>`            | ``50``                              |
-+-----------------------------------+--------------------------------------------------------------------------------------------+-------------------------------------+
-| :ref:`int<class_int>`             | :ref:`completion_scroll_width<class_CodeEdit_theme_constant_completion_scroll_width>`      | ``6``                               |
-+-----------------------------------+--------------------------------------------------------------------------------------------+-------------------------------------+
-| :ref:`int<class_int>`             | :ref:`line_spacing<class_CodeEdit_theme_constant_line_spacing>`                            | ``4``                               |
-+-----------------------------------+--------------------------------------------------------------------------------------------+-------------------------------------+
-| :ref:`int<class_int>`             | :ref:`outline_size<class_CodeEdit_theme_constant_outline_size>`                            | ``0``                               |
-+-----------------------------------+--------------------------------------------------------------------------------------------+-------------------------------------+
-| :ref:`Font<class_Font>`           | :ref:`font<class_CodeEdit_theme_font_font>`                                                |                                     |
-+-----------------------------------+--------------------------------------------------------------------------------------------+-------------------------------------+
-| :ref:`int<class_int>`             | :ref:`font_size<class_CodeEdit_theme_font_size_font_size>`                                 |                                     |
-+-----------------------------------+--------------------------------------------------------------------------------------------+-------------------------------------+
-| :ref:`Texture2D<class_Texture2D>` | :ref:`bookmark<class_CodeEdit_theme_icon_bookmark>`                                        |                                     |
-+-----------------------------------+--------------------------------------------------------------------------------------------+-------------------------------------+
-| :ref:`Texture2D<class_Texture2D>` | :ref:`breakpoint<class_CodeEdit_theme_icon_breakpoint>`                                    |                                     |
-+-----------------------------------+--------------------------------------------------------------------------------------------+-------------------------------------+
-| :ref:`Texture2D<class_Texture2D>` | :ref:`can_fold<class_CodeEdit_theme_icon_can_fold>`                                        |                                     |
-+-----------------------------------+--------------------------------------------------------------------------------------------+-------------------------------------+
-| :ref:`Texture2D<class_Texture2D>` | :ref:`executing_line<class_CodeEdit_theme_icon_executing_line>`                            |                                     |
-+-----------------------------------+--------------------------------------------------------------------------------------------+-------------------------------------+
-| :ref:`Texture2D<class_Texture2D>` | :ref:`folded<class_CodeEdit_theme_icon_folded>`                                            |                                     |
-+-----------------------------------+--------------------------------------------------------------------------------------------+-------------------------------------+
-| :ref:`Texture2D<class_Texture2D>` | :ref:`folded_eol_icon<class_CodeEdit_theme_icon_folded_eol_icon>`                          |                                     |
-+-----------------------------------+--------------------------------------------------------------------------------------------+-------------------------------------+
-| :ref:`Texture2D<class_Texture2D>` | :ref:`space<class_CodeEdit_theme_icon_space>`                                              |                                     |
-+-----------------------------------+--------------------------------------------------------------------------------------------+-------------------------------------+
-| :ref:`Texture2D<class_Texture2D>` | :ref:`tab<class_CodeEdit_theme_icon_tab>`                                                  |                                     |
-+-----------------------------------+--------------------------------------------------------------------------------------------+-------------------------------------+
-| :ref:`StyleBox<class_StyleBox>`   | :ref:`completion<class_CodeEdit_theme_style_completion>`                                   |                                     |
-+-----------------------------------+--------------------------------------------------------------------------------------------+-------------------------------------+
-| :ref:`StyleBox<class_StyleBox>`   | :ref:`focus<class_CodeEdit_theme_style_focus>`                                             |                                     |
-+-----------------------------------+--------------------------------------------------------------------------------------------+-------------------------------------+
-| :ref:`StyleBox<class_StyleBox>`   | :ref:`normal<class_CodeEdit_theme_style_normal>`                                           |                                     |
-+-----------------------------------+--------------------------------------------------------------------------------------------+-------------------------------------+
-| :ref:`StyleBox<class_StyleBox>`   | :ref:`read_only<class_CodeEdit_theme_style_read_only>`                                     |                                     |
-+-----------------------------------+--------------------------------------------------------------------------------------------+-------------------------------------+
++-----------------------------------+----------------------------------------------------------------------------------------------------+-------------------------------------+
+| :ref:`Color<class_Color>`         | :ref:`background_color<class_CodeEdit_theme_color_background_color>`                               | ``Color(0, 0, 0, 0)``               |
++-----------------------------------+----------------------------------------------------------------------------------------------------+-------------------------------------+
+| :ref:`Color<class_Color>`         | :ref:`bookmark_color<class_CodeEdit_theme_color_bookmark_color>`                                   | ``Color(0.5, 0.64, 1, 0.8)``        |
++-----------------------------------+----------------------------------------------------------------------------------------------------+-------------------------------------+
+| :ref:`Color<class_Color>`         | :ref:`brace_mismatch_color<class_CodeEdit_theme_color_brace_mismatch_color>`                       | ``Color(1, 0.2, 0.2, 1)``           |
++-----------------------------------+----------------------------------------------------------------------------------------------------+-------------------------------------+
+| :ref:`Color<class_Color>`         | :ref:`breakpoint_color<class_CodeEdit_theme_color_breakpoint_color>`                               | ``Color(0.9, 0.29, 0.3, 1)``        |
++-----------------------------------+----------------------------------------------------------------------------------------------------+-------------------------------------+
+| :ref:`Color<class_Color>`         | :ref:`caret_background_color<class_CodeEdit_theme_color_caret_background_color>`                   | ``Color(0, 0, 0, 1)``               |
++-----------------------------------+----------------------------------------------------------------------------------------------------+-------------------------------------+
+| :ref:`Color<class_Color>`         | :ref:`caret_color<class_CodeEdit_theme_color_caret_color>`                                         | ``Color(0.875, 0.875, 0.875, 1)``   |
++-----------------------------------+----------------------------------------------------------------------------------------------------+-------------------------------------+
+| :ref:`Color<class_Color>`         | :ref:`code_folding_color<class_CodeEdit_theme_color_code_folding_color>`                           | ``Color(0.8, 0.8, 0.8, 0.8)``       |
++-----------------------------------+----------------------------------------------------------------------------------------------------+-------------------------------------+
+| :ref:`Color<class_Color>`         | :ref:`completion_background_color<class_CodeEdit_theme_color_completion_background_color>`         | ``Color(0.17, 0.16, 0.2, 1)``       |
++-----------------------------------+----------------------------------------------------------------------------------------------------+-------------------------------------+
+| :ref:`Color<class_Color>`         | :ref:`completion_existing_color<class_CodeEdit_theme_color_completion_existing_color>`             | ``Color(0.87, 0.87, 0.87, 0.13)``   |
++-----------------------------------+----------------------------------------------------------------------------------------------------+-------------------------------------+
+| :ref:`Color<class_Color>`         | :ref:`completion_font_color<class_CodeEdit_theme_color_completion_font_color>`                     | ``Color(0.67, 0.67, 0.67, 1)``      |
++-----------------------------------+----------------------------------------------------------------------------------------------------+-------------------------------------+
+| :ref:`Color<class_Color>`         | :ref:`completion_scroll_color<class_CodeEdit_theme_color_completion_scroll_color>`                 | ``Color(1, 1, 1, 0.29)``            |
++-----------------------------------+----------------------------------------------------------------------------------------------------+-------------------------------------+
+| :ref:`Color<class_Color>`         | :ref:`completion_scroll_hovered_color<class_CodeEdit_theme_color_completion_scroll_hovered_color>` | ``Color(1, 1, 1, 0.4)``             |
++-----------------------------------+----------------------------------------------------------------------------------------------------+-------------------------------------+
+| :ref:`Color<class_Color>`         | :ref:`completion_selected_color<class_CodeEdit_theme_color_completion_selected_color>`             | ``Color(0.26, 0.26, 0.27, 1)``      |
++-----------------------------------+----------------------------------------------------------------------------------------------------+-------------------------------------+
+| :ref:`Color<class_Color>`         | :ref:`current_line_color<class_CodeEdit_theme_color_current_line_color>`                           | ``Color(0.25, 0.25, 0.26, 0.8)``    |
++-----------------------------------+----------------------------------------------------------------------------------------------------+-------------------------------------+
+| :ref:`Color<class_Color>`         | :ref:`executing_line_color<class_CodeEdit_theme_color_executing_line_color>`                       | ``Color(0.98, 0.89, 0.27, 1)``      |
++-----------------------------------+----------------------------------------------------------------------------------------------------+-------------------------------------+
+| :ref:`Color<class_Color>`         | :ref:`font_color<class_CodeEdit_theme_color_font_color>`                                           | ``Color(0.875, 0.875, 0.875, 1)``   |
++-----------------------------------+----------------------------------------------------------------------------------------------------+-------------------------------------+
+| :ref:`Color<class_Color>`         | :ref:`font_outline_color<class_CodeEdit_theme_color_font_outline_color>`                           | ``Color(1, 1, 1, 1)``               |
++-----------------------------------+----------------------------------------------------------------------------------------------------+-------------------------------------+
+| :ref:`Color<class_Color>`         | :ref:`font_placeholder_color<class_CodeEdit_theme_color_font_placeholder_color>`                   | ``Color(0.875, 0.875, 0.875, 0.6)`` |
++-----------------------------------+----------------------------------------------------------------------------------------------------+-------------------------------------+
+| :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:`line_length_guideline_color<class_CodeEdit_theme_color_line_length_guideline_color>`         | ``Color(0.3, 0.5, 0.8, 0.1)``       |
++-----------------------------------+----------------------------------------------------------------------------------------------------+-------------------------------------+
+| :ref:`Color<class_Color>`         | :ref:`line_number_color<class_CodeEdit_theme_color_line_number_color>`                             | ``Color(0.67, 0.67, 0.67, 0.4)``    |
++-----------------------------------+----------------------------------------------------------------------------------------------------+-------------------------------------+
+| :ref:`Color<class_Color>`         | :ref:`search_result_border_color<class_CodeEdit_theme_color_search_result_border_color>`           | ``Color(0.3, 0.3, 0.3, 0.4)``       |
++-----------------------------------+----------------------------------------------------------------------------------------------------+-------------------------------------+
+| :ref:`Color<class_Color>`         | :ref:`search_result_color<class_CodeEdit_theme_color_search_result_color>`                         | ``Color(0.3, 0.3, 0.3, 1)``         |
++-----------------------------------+----------------------------------------------------------------------------------------------------+-------------------------------------+
+| :ref:`Color<class_Color>`         | :ref:`selection_color<class_CodeEdit_theme_color_selection_color>`                                 | ``Color(0.5, 0.5, 0.5, 1)``         |
++-----------------------------------+----------------------------------------------------------------------------------------------------+-------------------------------------+
+| :ref:`Color<class_Color>`         | :ref:`word_highlighted_color<class_CodeEdit_theme_color_word_highlighted_color>`                   | ``Color(0.8, 0.9, 0.9, 0.15)``      |
++-----------------------------------+----------------------------------------------------------------------------------------------------+-------------------------------------+
+| :ref:`int<class_int>`             | :ref:`completion_lines<class_CodeEdit_theme_constant_completion_lines>`                            | ``7``                               |
++-----------------------------------+----------------------------------------------------------------------------------------------------+-------------------------------------+
+| :ref:`int<class_int>`             | :ref:`completion_max_width<class_CodeEdit_theme_constant_completion_max_width>`                    | ``50``                              |
++-----------------------------------+----------------------------------------------------------------------------------------------------+-------------------------------------+
+| :ref:`int<class_int>`             | :ref:`completion_scroll_width<class_CodeEdit_theme_constant_completion_scroll_width>`              | ``6``                               |
++-----------------------------------+----------------------------------------------------------------------------------------------------+-------------------------------------+
+| :ref:`int<class_int>`             | :ref:`line_spacing<class_CodeEdit_theme_constant_line_spacing>`                                    | ``4``                               |
++-----------------------------------+----------------------------------------------------------------------------------------------------+-------------------------------------+
+| :ref:`int<class_int>`             | :ref:`outline_size<class_CodeEdit_theme_constant_outline_size>`                                    | ``0``                               |
++-----------------------------------+----------------------------------------------------------------------------------------------------+-------------------------------------+
+| :ref:`Font<class_Font>`           | :ref:`font<class_CodeEdit_theme_font_font>`                                                        |                                     |
++-----------------------------------+----------------------------------------------------------------------------------------------------+-------------------------------------+
+| :ref:`int<class_int>`             | :ref:`font_size<class_CodeEdit_theme_font_size_font_size>`                                         |                                     |
++-----------------------------------+----------------------------------------------------------------------------------------------------+-------------------------------------+
+| :ref:`Texture2D<class_Texture2D>` | :ref:`bookmark<class_CodeEdit_theme_icon_bookmark>`                                                |                                     |
++-----------------------------------+----------------------------------------------------------------------------------------------------+-------------------------------------+
+| :ref:`Texture2D<class_Texture2D>` | :ref:`breakpoint<class_CodeEdit_theme_icon_breakpoint>`                                            |                                     |
++-----------------------------------+----------------------------------------------------------------------------------------------------+-------------------------------------+
+| :ref:`Texture2D<class_Texture2D>` | :ref:`can_fold<class_CodeEdit_theme_icon_can_fold>`                                                |                                     |
++-----------------------------------+----------------------------------------------------------------------------------------------------+-------------------------------------+
+| :ref:`Texture2D<class_Texture2D>` | :ref:`executing_line<class_CodeEdit_theme_icon_executing_line>`                                    |                                     |
++-----------------------------------+----------------------------------------------------------------------------------------------------+-------------------------------------+
+| :ref:`Texture2D<class_Texture2D>` | :ref:`folded<class_CodeEdit_theme_icon_folded>`                                                    |                                     |
++-----------------------------------+----------------------------------------------------------------------------------------------------+-------------------------------------+
+| :ref:`Texture2D<class_Texture2D>` | :ref:`folded_eol_icon<class_CodeEdit_theme_icon_folded_eol_icon>`                                  |                                     |
++-----------------------------------+----------------------------------------------------------------------------------------------------+-------------------------------------+
+| :ref:`Texture2D<class_Texture2D>` | :ref:`space<class_CodeEdit_theme_icon_space>`                                                      |                                     |
++-----------------------------------+----------------------------------------------------------------------------------------------------+-------------------------------------+
+| :ref:`Texture2D<class_Texture2D>` | :ref:`tab<class_CodeEdit_theme_icon_tab>`                                                          |                                     |
++-----------------------------------+----------------------------------------------------------------------------------------------------+-------------------------------------+
+| :ref:`StyleBox<class_StyleBox>`   | :ref:`completion<class_CodeEdit_theme_style_completion>`                                           |                                     |
++-----------------------------------+----------------------------------------------------------------------------------------------------+-------------------------------------+
+| :ref:`StyleBox<class_StyleBox>`   | :ref:`focus<class_CodeEdit_theme_style_focus>`                                                     |                                     |
++-----------------------------------+----------------------------------------------------------------------------------------------------+-------------------------------------+
+| :ref:`StyleBox<class_StyleBox>`   | :ref:`normal<class_CodeEdit_theme_style_normal>`                                                   |                                     |
++-----------------------------------+----------------------------------------------------------------------------------------------------+-------------------------------------+
+| :ref:`StyleBox<class_StyleBox>`   | :ref:`read_only<class_CodeEdit_theme_style_read_only>`                                             |                                     |
++-----------------------------------+----------------------------------------------------------------------------------------------------+-------------------------------------+
 
 Signals
 -------
@@ -1322,6 +1324,18 @@ Font :ref:`Color<class_Color>` for the code completion popup.
 
 ----
 
+.. _class_CodeEdit_theme_color_completion_scroll_hovered_color:
+
+- :ref:`Color<class_Color>` **completion_scroll_hovered_color**
+
++-----------+-------------------------+
+| *Default* | ``Color(1, 1, 1, 0.4)`` |
++-----------+-------------------------+
+
+:ref:`Color<class_Color>` of the scrollbar in the code completion popup when hovered.
+
+----
+
 .. _class_CodeEdit_theme_color_completion_selected_color:
 
 - :ref:`Color<class_Color>` **completion_selected_color**

+ 44 - 40
classes/class_colorpicker.rst

@@ -31,20 +31,18 @@ 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:`bool<class_bool>`                                  | :ref:`hsv_mode<class_ColorPicker_property_hsv_mode>`               | ``false``             |
-+----------------------------------------------------------+--------------------------------------------------------------------+-----------------------+
 | :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>`                                  | :ref:`raw_mode<class_ColorPicker_property_raw_mode>`               | ``false``             |
-+----------------------------------------------------------+--------------------------------------------------------------------+-----------------------+
 
 Methods
 -------
@@ -114,6 +112,32 @@ Emitted when a preset is removed.
 Enumerations
 ------------
 
+.. _enum_ColorPicker_ColorModeType:
+
+.. _class_ColorPicker_constant_MODE_RGB:
+
+.. _class_ColorPicker_constant_MODE_HSV:
+
+.. _class_ColorPicker_constant_MODE_RAW:
+
+.. _class_ColorPicker_constant_MODE_OKHSL:
+
+enum **ColorModeType**:
+
+- **MODE_RGB** = **0** --- Allows editing the color with Red/Green/Blue sliders.
+
+- **MODE_HSV** = **1** --- Allows editing the color with Hue/Saturation/Value sliders.
+
+- **MODE_RAW** = **2** --- Allows the color R, G, B component values to go beyond 1.0, which can be used for certain special operations that require it (like tinting without darkening or rendering sprites in HDR).
+
+- **MODE_OKHSL** = **3** --- Allows editing the color with Hue/Saturation/Lightness sliders.
+
+OKHSL is a new color space similar to HSL but that better match perception by leveraging the Oklab color space which is designed to be simple to use, while doing a good job at predicting perceived lightness, chroma and hue.
+
+\ `Okhsv and Okhsl color spaces <https://bottosson.github.io/posts/colorpicker/>`__
+
+----
+
 .. _enum_ColorPicker_PickerShapeType:
 
 .. _class_ColorPicker_constant_SHAPE_HSV_RECTANGLE:
@@ -153,6 +177,22 @@ The currently selected color.
 
 ----
 
+.. _class_ColorPicker_property_color_mode:
+
+- :ref:`ColorModeType<enum_ColorPicker_ColorModeType>` **color_mode**
+
++-----------+-----------------------+
+| *Default* | ``0``                 |
++-----------+-----------------------+
+| *Setter*  | set_color_mode(value) |
++-----------+-----------------------+
+| *Getter*  | get_color_mode()      |
++-----------+-----------------------+
+
+The currently selected color mode. See :ref:`ColorModeType<enum_ColorPicker_ColorModeType>`.
+
+----
+
 .. _class_ColorPicker_property_deferred_mode:
 
 - :ref:`bool<class_bool>` **deferred_mode**
@@ -185,24 +225,6 @@ If ``true``, shows an alpha channel slider (opacity).
 
 ----
 
-.. _class_ColorPicker_property_hsv_mode:
-
-- :ref:`bool<class_bool>` **hsv_mode**
-
-+-----------+---------------------+
-| *Default* | ``false``           |
-+-----------+---------------------+
-| *Setter*  | set_hsv_mode(value) |
-+-----------+---------------------+
-| *Getter*  | is_hsv_mode()       |
-+-----------+---------------------+
-
-If ``true``, allows editing the color with Hue/Saturation/Value sliders.
-
-\ **Note:** Cannot be enabled if raw mode is on.
-
-----
-
 .. _class_ColorPicker_property_picker_shape:
 
 - :ref:`PickerShapeType<enum_ColorPicker_PickerShapeType>` **picker_shape**
@@ -249,24 +271,6 @@ If ``true``, the "add preset" button is enabled.
 
 If ``true``, saved color presets are visible.
 
-----
-
-.. _class_ColorPicker_property_raw_mode:
-
-- :ref:`bool<class_bool>` **raw_mode**
-
-+-----------+---------------------+
-| *Default* | ``false``           |
-+-----------+---------------------+
-| *Setter*  | set_raw_mode(value) |
-+-----------+---------------------+
-| *Getter*  | is_raw_mode()       |
-+-----------+---------------------+
-
-If ``true``, allows the color R, G, B component values to go beyond 1.0, which can be used for certain special operations that require it (like tinting without darkening or rendering sprites in HDR).
-
-\ **Note:** Cannot be enabled if HSV mode is on.
-
 Method Descriptions
 -------------------
 

+ 26 - 7
classes/class_confirmationdialog.rst

@@ -38,13 +38,15 @@ To get cancel action, you can use:
 Properties
 ----------
 
-+---------------------------------+----------+---------------------------------------------------------------------------------+
-| :ref:`Vector2i<class_Vector2i>` | min_size | ``Vector2i(200, 70)`` (overrides :ref:`Window<class_Window_property_min_size>`) |
-+---------------------------------+----------+---------------------------------------------------------------------------------+
-| :ref:`Vector2i<class_Vector2i>` | size     | ``Vector2i(200, 100)`` (overrides :ref:`Window<class_Window_property_size>`)    |
-+---------------------------------+----------+---------------------------------------------------------------------------------+
-| :ref:`String<class_String>`     | title    | ``"Please Confirm..."`` (overrides :ref:`Window<class_Window_property_title>`)  |
-+---------------------------------+----------+---------------------------------------------------------------------------------+
++---------------------------------+---------------------------------------------------------------------------------+---------------------------------------------------------------------------------+
+| :ref:`String<class_String>`     | :ref:`cancel_button_text<class_ConfirmationDialog_property_cancel_button_text>` | ``"Cancel"``                                                                    |
++---------------------------------+---------------------------------------------------------------------------------+---------------------------------------------------------------------------------+
+| :ref:`Vector2i<class_Vector2i>` | min_size                                                                        | ``Vector2i(200, 70)`` (overrides :ref:`Window<class_Window_property_min_size>`) |
++---------------------------------+---------------------------------------------------------------------------------+---------------------------------------------------------------------------------+
+| :ref:`Vector2i<class_Vector2i>` | size                                                                            | ``Vector2i(200, 100)`` (overrides :ref:`Window<class_Window_property_size>`)    |
++---------------------------------+---------------------------------------------------------------------------------+---------------------------------------------------------------------------------+
+| :ref:`String<class_String>`     | title                                                                           | ``"Please Confirm..."`` (overrides :ref:`Window<class_Window_property_title>`)  |
++---------------------------------+---------------------------------------------------------------------------------+---------------------------------------------------------------------------------+
 
 Methods
 -------
@@ -53,6 +55,23 @@ Methods
 | :ref:`Button<class_Button>` | :ref:`get_cancel_button<class_ConfirmationDialog_method_get_cancel_button>` **(** **)** |
 +-----------------------------+-----------------------------------------------------------------------------------------+
 
+Property Descriptions
+---------------------
+
+.. _class_ConfirmationDialog_property_cancel_button_text:
+
+- :ref:`String<class_String>` **cancel_button_text**
+
++-----------+-------------------------------+
+| *Default* | ``"Cancel"``                  |
++-----------+-------------------------------+
+| *Setter*  | set_cancel_button_text(value) |
++-----------+-------------------------------+
+| *Getter*  | get_cancel_button_text()      |
++-----------+-------------------------------+
+
+The text displayed by the cancel button (see :ref:`get_cancel_button<class_ConfirmationDialog_method_get_cancel_button>`).
+
 Method Descriptions
 -------------------
 

+ 2 - 2
classes/class_control.rst

@@ -509,7 +509,7 @@ enum **CursorShape**:
 
 .. _class_Control_constant_PRESET_HCENTER_WIDE:
 
-.. _class_Control_constant_PRESET_WIDE:
+.. _class_Control_constant_PRESET_FULL_RECT:
 
 enum **LayoutPreset**:
 
@@ -543,7 +543,7 @@ enum **LayoutPreset**:
 
 - **PRESET_HCENTER_WIDE** = **14** --- Snap all 4 anchors to a horizontal line that cuts the parent control in half. Use with :ref:`set_anchors_preset<class_Control_method_set_anchors_preset>`.
 
-- **PRESET_WIDE** = **15** --- Snap all 4 anchors to the respective corners of the parent control. Set all 4 offsets to 0 after you applied this preset and the ``Control`` will fit its parent control. This is equivalent to the "Full Rect" layout option in the editor. Use with :ref:`set_anchors_preset<class_Control_method_set_anchors_preset>`.
+- **PRESET_FULL_RECT** = **15** --- Snap all 4 anchors to the respective corners of the parent control. Set all 4 offsets to 0 after you applied this preset and the ``Control`` will fit its parent control. Use with :ref:`set_anchors_preset<class_Control_method_set_anchors_preset>`.
 
 ----
 

+ 17 - 9
classes/class_decal.rst

@@ -32,11 +32,11 @@ Properties
 +-----------------------------------+--------------------------------------------------------------------------+-----------------------+
 | :ref:`int<class_int>`             | :ref:`cull_mask<class_Decal_property_cull_mask>`                         | ``1048575``           |
 +-----------------------------------+--------------------------------------------------------------------------+-----------------------+
-| :ref:`float<class_float>`         | :ref:`distance_fade_begin<class_Decal_property_distance_fade_begin>`     | ``10.0``              |
+| :ref:`float<class_float>`         | :ref:`distance_fade_begin<class_Decal_property_distance_fade_begin>`     | ``40.0``              |
 +-----------------------------------+--------------------------------------------------------------------------+-----------------------+
 | :ref:`bool<class_bool>`           | :ref:`distance_fade_enabled<class_Decal_property_distance_fade_enabled>` | ``false``             |
 +-----------------------------------+--------------------------------------------------------------------------+-----------------------+
-| :ref:`float<class_float>`         | :ref:`distance_fade_length<class_Decal_property_distance_fade_length>`   | ``1.0``               |
+| :ref:`float<class_float>`         | :ref:`distance_fade_length<class_Decal_property_distance_fade_length>`   | ``10.0``              |
 +-----------------------------------+--------------------------------------------------------------------------+-----------------------+
 | :ref:`float<class_float>`         | :ref:`emission_energy<class_Decal_property_emission_energy>`             | ``1.0``               |
 +-----------------------------------+--------------------------------------------------------------------------+-----------------------+
@@ -135,14 +135,14 @@ Specifies which :ref:`VisualInstance3D.layers<class_VisualInstance3D_property_la
 - :ref:`float<class_float>` **distance_fade_begin**
 
 +-----------+--------------------------------+
-| *Default* | ``10.0``                       |
+| *Default* | ``40.0``                       |
 +-----------+--------------------------------+
 | *Setter*  | set_distance_fade_begin(value) |
 +-----------+--------------------------------+
 | *Getter*  | get_distance_fade_begin()      |
 +-----------+--------------------------------+
 
-Distance from the camera at which the Decal begins to fade away.
+The distance from the camera at which the Decal begins to fade away (in 3D units).
 
 ----
 
@@ -158,7 +158,7 @@ Distance from the camera at which the Decal begins to fade away.
 | *Getter*  | is_distance_fade_enabled()      |
 +-----------+---------------------------------+
 
-If ``true``, decals will smoothly fade away when far from the active :ref:`Camera3D<class_Camera3D>` starting at :ref:`distance_fade_begin<class_Decal_property_distance_fade_begin>`. The Decal will fade out over :ref:`distance_fade_length<class_Decal_property_distance_fade_length>`, after which it will be culled and not sent to the shader at all. Use this to reduce the number of active Decals in a scene and thus improve performance.
+If ``true``, decals will smoothly fade away when far from the active :ref:`Camera3D<class_Camera3D>` starting at :ref:`distance_fade_begin<class_Decal_property_distance_fade_begin>`. The Decal will fade out over :ref:`distance_fade_begin<class_Decal_property_distance_fade_begin>` + :ref:`distance_fade_length<class_Decal_property_distance_fade_length>`, after which it will be culled and not sent to the shader at all. Use this to reduce the number of active Decals in a scene and thus improve performance.
 
 ----
 
@@ -167,14 +167,14 @@ If ``true``, decals will smoothly fade away when far from the active :ref:`Camer
 - :ref:`float<class_float>` **distance_fade_length**
 
 +-----------+---------------------------------+
-| *Default* | ``1.0``                         |
+| *Default* | ``10.0``                        |
 +-----------+---------------------------------+
 | *Setter*  | set_distance_fade_length(value) |
 +-----------+---------------------------------+
 | *Getter*  | get_distance_fade_length()      |
 +-----------+---------------------------------+
 
-Distance over which the Decal fades. The Decal becomes slowly more transparent over this distance and is completely invisible at the end.
+The distance over which the Decal fades (in 3D units). The Decal becomes slowly more transparent over this distance and is completely invisible at the end.
 
 ----
 
@@ -222,7 +222,7 @@ Sets the size of the :ref:`AABB<class_AABB>` used by the decal. The AABB goes fr
 | *Getter*  | get_lower_fade()      |
 +-----------+-----------------------+
 
-Sets the curve over which the decal will fade as the surface gets further from the center of the :ref:`AABB<class_AABB>`.
+Sets the curve over which the decal will fade as the surface gets further from the center of the :ref:`AABB<class_AABB>`. Only positive values are valid (negative values will be clamped to ``0.0``).
 
 ----
 
@@ -270,6 +270,8 @@ Fades the Decal if the angle between the Decal's :ref:`AABB<class_AABB>` and the
 
 :ref:`Texture2D<class_Texture2D>` with the base :ref:`Color<class_Color>` of the Decal. Either this or the :ref:`texture_emission<class_Decal_property_texture_emission>` must be set for the Decal to be visible. Use the alpha channel like a mask to smoothly blend the edges of the decal with the underlying object.
 
+\ **Note:** Unlike :ref:`BaseMaterial3D<class_BaseMaterial3D>` whose filter mode can be adjusted on a per-material basis, the filter mode for ``Decal`` textures is set globally with :ref:`ProjectSettings.rendering/textures/decals/filter<class_ProjectSettings_property_rendering/textures/decals/filter>`.
+
 ----
 
 .. _class_Decal_property_texture_emission:
@@ -284,6 +286,8 @@ Fades the Decal if the angle between the Decal's :ref:`AABB<class_AABB>` and the
 
 :ref:`Texture2D<class_Texture2D>` with the emission :ref:`Color<class_Color>` of the Decal. Either this or the :ref:`texture_emission<class_Decal_property_texture_emission>` must be set for the Decal to be visible. Use the alpha channel like a mask to smoothly blend the edges of the decal with the underlying object.
 
+\ **Note:** Unlike :ref:`BaseMaterial3D<class_BaseMaterial3D>` whose filter mode can be adjusted on a per-material basis, the filter mode for ``Decal`` textures is set globally with :ref:`ProjectSettings.rendering/textures/decals/filter<class_ProjectSettings_property_rendering/textures/decals/filter>`.
+
 ----
 
 .. _class_Decal_property_texture_normal:
@@ -298,6 +302,8 @@ Fades the Decal if the angle between the Decal's :ref:`AABB<class_AABB>` and the
 
 :ref:`Texture2D<class_Texture2D>` with the per-pixel normal map for the decal. Use this to add extra detail to decals.
 
+\ **Note:** Unlike :ref:`BaseMaterial3D<class_BaseMaterial3D>` whose filter mode can be adjusted on a per-material basis, the filter mode for ``Decal`` textures is set globally with :ref:`ProjectSettings.rendering/textures/decals/filter<class_ProjectSettings_property_rendering/textures/decals/filter>`.
+
 ----
 
 .. _class_Decal_property_texture_orm:
@@ -312,6 +318,8 @@ Fades the Decal if the angle between the Decal's :ref:`AABB<class_AABB>` and the
 
 :ref:`Texture2D<class_Texture2D>` storing ambient occlusion, roughness, and metallic for the decal. Use this to add extra detail to decals.
 
+\ **Note:** Unlike :ref:`BaseMaterial3D<class_BaseMaterial3D>` whose filter mode can be adjusted on a per-material basis, the filter mode for ``Decal`` textures is set globally with :ref:`ProjectSettings.rendering/textures/decals/filter<class_ProjectSettings_property_rendering/textures/decals/filter>`.
+
 ----
 
 .. _class_Decal_property_upper_fade:
@@ -326,7 +334,7 @@ Fades the Decal if the angle between the Decal's :ref:`AABB<class_AABB>` and the
 | *Getter*  | get_upper_fade()      |
 +-----------+-----------------------+
 
-Sets the curve over which the decal will fade as the surface gets further from the center of the :ref:`AABB<class_AABB>`.
+Sets the curve over which the decal will fade as the surface gets further from the center of the :ref:`AABB<class_AABB>`. Only positive values are valid (negative values will be clamped to ``0.0``).
 
 Method Descriptions
 -------------------

+ 3 - 3
classes/class_editorexportplugin.rst

@@ -46,7 +46,7 @@ Methods
 +------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void | :ref:`add_ios_project_static_lib<class_EditorExportPlugin_method_add_ios_project_static_lib>` **(** :ref:`String<class_String>` path **)**                                                                                                            |
 +------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void | :ref:`add_osx_plugin_file<class_EditorExportPlugin_method_add_osx_plugin_file>` **(** :ref:`String<class_String>` path **)**                                                                                                                          |
+| void | :ref:`add_macos_plugin_file<class_EditorExportPlugin_method_add_macos_plugin_file>` **(** :ref:`String<class_String>` path **)**                                                                                                                      |
 +------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void | :ref:`add_shared_object<class_EditorExportPlugin_method_add_shared_object>` **(** :ref:`String<class_String>` path, :ref:`PackedStringArray<class_PackedStringArray>` tags, :ref:`String<class_String>` target **)**                                  |
 +------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
@@ -150,9 +150,9 @@ Adds a static lib from the given ``path`` to the iOS project.
 
 ----
 
-.. _class_EditorExportPlugin_method_add_osx_plugin_file:
+.. _class_EditorExportPlugin_method_add_macos_plugin_file:
 
-- void **add_osx_plugin_file** **(** :ref:`String<class_String>` path **)**
+- void **add_macos_plugin_file** **(** :ref:`String<class_String>` path **)**
 
 Adds file or directory matching ``path`` to ``PlugIns`` directory of macOS app bundle.
 

+ 14 - 12
classes/class_editorfiledialog.rst

@@ -41,15 +41,15 @@ Properties
 Methods
 -------
 
-+-------------------------------------------+------------------------------------------------------------------------------------------------------------+
-| void                                      | :ref:`add_filter<class_EditorFileDialog_method_add_filter>` **(** :ref:`String<class_String>` filter **)** |
-+-------------------------------------------+------------------------------------------------------------------------------------------------------------+
-| void                                      | :ref:`clear_filters<class_EditorFileDialog_method_clear_filters>` **(** **)**                              |
-+-------------------------------------------+------------------------------------------------------------------------------------------------------------+
-| :ref:`VBoxContainer<class_VBoxContainer>` | :ref:`get_vbox<class_EditorFileDialog_method_get_vbox>` **(** **)**                                        |
-+-------------------------------------------+------------------------------------------------------------------------------------------------------------+
-| void                                      | :ref:`invalidate<class_EditorFileDialog_method_invalidate>` **(** **)**                                    |
-+-------------------------------------------+------------------------------------------------------------------------------------------------------------+
++-------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                      | :ref:`add_filter<class_EditorFileDialog_method_add_filter>` **(** :ref:`String<class_String>` filter, :ref:`String<class_String>` description="" **)** |
++-------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                      | :ref:`clear_filters<class_EditorFileDialog_method_clear_filters>` **(** **)**                                                                          |
++-------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`VBoxContainer<class_VBoxContainer>` | :ref:`get_vbox<class_EditorFileDialog_method_get_vbox>` **(** **)**                                                                                    |
++-------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                      | :ref:`invalidate<class_EditorFileDialog_method_invalidate>` **(** **)**                                                                                |
++-------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
 
 Signals
 -------
@@ -263,11 +263,13 @@ Method Descriptions
 
 .. _class_EditorFileDialog_method_add_filter:
 
-- void **add_filter** **(** :ref:`String<class_String>` filter **)**
+- void **add_filter** **(** :ref:`String<class_String>` filter, :ref:`String<class_String>` description="" **)**
 
-Adds a comma-delimited file extension filter option to the ``EditorFileDialog`` with an optional semi-colon-delimited label.
+Adds a comma-delimited file name ``filter`` option to the ``EditorFileDialog`` with an optional ``description``, which restricts what files can be picked.
 
-For example, ``"*.tscn, *.scn; Scenes"`` results in filter text "Scenes (\*.tscn, \*.scn)".
+A ``filter`` should be of the form ``"filename.extension"``, where filename and extension can be ``*`` to match any string. Filters starting with ``.`` (i.e. empty filenames) are not allowed.
+
+For example, a ``filter`` of ``"*.tscn, *.scn"`` and a ``description`` of ``"Scenes"`` results in filter text "Scenes (\*.tscn, \*.scn)".
 
 ----
 

+ 25 - 0
classes/class_editorplugin.rst

@@ -657,6 +657,31 @@ Implement this function if your plugin edits a specific type of object (Resource
 
 Returns ``true`` if this is a main screen editor plugin (it goes in the workspace selector together with **2D**, **3D**, **Script** and **AssetLib**).
 
+When the plugin's workspace is selected, other main screen plugins will be hidden, but your plugin will not appear automatically. It needs to be added as a child of :ref:`EditorInterface.get_base_control<class_EditorInterface_method_get_base_control>` and made visible inside :ref:`_make_visible<class_EditorPlugin_method__make_visible>`.
+
+Use :ref:`_get_plugin_name<class_EditorPlugin_method__get_plugin_name>` and :ref:`_get_plugin_icon<class_EditorPlugin_method__get_plugin_icon>` to customize the plugin button's appearance.
+
+::
+
+    var plugin_control
+    
+    func _enter_tree():
+        plugin_control = preload("my_plugin_control.tscn").instantiate()
+        get_editor_interface().get_editor_main_control().add_child(plugin_control)
+        plugin_control.hide()
+    
+    func _has_main_screen():
+        return true
+    
+    func _make_visible(visible):
+        plugin_control.visible = visible
+    
+    func _get_plugin_name():
+        return "My Super Cool Plugin 3000"
+    
+    func _get_plugin_icon():
+        return get_editor_interface().get_base_control().get_theme_icon("Node", "EditorIcons")
+
 ----
 
 .. _class_EditorPlugin_method__make_visible:

+ 2 - 2
classes/class_editorproperty.rst

@@ -49,7 +49,7 @@ Methods
 +-------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`Object<class_Object>`         | :ref:`get_edited_object<class_EditorProperty_method_get_edited_object>` **(** **)**                                                                                                                                                                |
 +-------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`StringName<class_StringName>` | :ref:`get_edited_property<class_EditorProperty_method_get_edited_property>` **(** **)**                                                                                                                                                            |
+| :ref:`StringName<class_StringName>` | :ref:`get_edited_property<class_EditorProperty_method_get_edited_property>` **(** **)** |const|                                                                                                                                                    |
 +-------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`String<class_String>`         | :ref:`get_tooltip_text<class_EditorProperty_method_get_tooltip_text>` **(** **)** |const|                                                                                                                                                          |
 +-------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
@@ -291,7 +291,7 @@ Gets the edited object.
 
 .. _class_EditorProperty_method_get_edited_property:
 
-- :ref:`StringName<class_StringName>` **get_edited_property** **(** **)**
+- :ref:`StringName<class_StringName>` **get_edited_property** **(** **)** |const|
 
 Gets the edited property. If your editor is for a single property (added via :ref:`EditorInspectorPlugin._parse_property<class_EditorInspectorPlugin_method__parse_property>`), then this will return the property.
 

+ 7 - 3
classes/class_editorscenepostimportplugin.rst

@@ -40,7 +40,7 @@ Methods
 +-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                          | :ref:`add_import_option<class_EditorScenePostImportPlugin_method_add_import_option>` **(** :ref:`String<class_String>` name, :ref:`Variant<class_Variant>` value **)**                                                                                                                                                                                                                                  |
 +-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                          | :ref:`add_import_option_advanced<class_EditorScenePostImportPlugin_method_add_import_option_advanced>` **(** :ref:`Variant.Type<enum_@GlobalScope_Variant.Type>` type, :ref:`String<class_String>` name, :ref:`Variant<class_Variant>` default_value, :ref:`PropertyHint<enum_@GlobalScope_PropertyHint>` hint=0, :ref:`String<class_String>` hint_string="", :ref:`int<class_int>` usage_flags=7 **)** |
+| void                          | :ref:`add_import_option_advanced<class_EditorScenePostImportPlugin_method_add_import_option_advanced>` **(** :ref:`Variant.Type<enum_@GlobalScope_Variant.Type>` type, :ref:`String<class_String>` name, :ref:`Variant<class_Variant>` default_value, :ref:`PropertyHint<enum_@GlobalScope_PropertyHint>` hint=0, :ref:`String<class_String>` hint_string="", :ref:`int<class_int>` usage_flags=6 **)** |
 +-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`Variant<class_Variant>` | :ref:`get_option_value<class_EditorScenePostImportPlugin_method_get_option_value>` **(** :ref:`StringName<class_StringName>` name **)** |const|                                                                                                                                                                                                                                                         |
 +-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
@@ -62,6 +62,8 @@ Enumerations
 
 .. _class_EditorScenePostImportPlugin_constant_INTERNAL_IMPORT_CATEGORY_ANIMATION_NODE:
 
+.. _class_EditorScenePostImportPlugin_constant_INTERNAL_IMPORT_CATEGORY_SKELETON_3D_NODE:
+
 .. _class_EditorScenePostImportPlugin_constant_INTERNAL_IMPORT_CATEGORY_MAX:
 
 enum **InternalImportCategory**:
@@ -78,7 +80,9 @@ enum **InternalImportCategory**:
 
 - **INTERNAL_IMPORT_CATEGORY_ANIMATION_NODE** = **5**
 
-- **INTERNAL_IMPORT_CATEGORY_MAX** = **6**
+- **INTERNAL_IMPORT_CATEGORY_SKELETON_3D_NODE** = **6**
+
+- **INTERNAL_IMPORT_CATEGORY_MAX** = **7**
 
 Method Descriptions
 -------------------
@@ -157,7 +161,7 @@ Add a specific import option (name and default value only). This function can on
 
 .. _class_EditorScenePostImportPlugin_method_add_import_option_advanced:
 
-- void **add_import_option_advanced** **(** :ref:`Variant.Type<enum_@GlobalScope_Variant.Type>` type, :ref:`String<class_String>` name, :ref:`Variant<class_Variant>` default_value, :ref:`PropertyHint<enum_@GlobalScope_PropertyHint>` hint=0, :ref:`String<class_String>` hint_string="", :ref:`int<class_int>` usage_flags=7 **)**
+- void **add_import_option_advanced** **(** :ref:`Variant.Type<enum_@GlobalScope_Variant.Type>` type, :ref:`String<class_String>` name, :ref:`Variant<class_Variant>` default_value, :ref:`PropertyHint<enum_@GlobalScope_PropertyHint>` hint=0, :ref:`String<class_String>` hint_string="", :ref:`int<class_int>` usage_flags=6 **)**
 
 Add a specific import option. This function can only be called from :ref:`_get_import_options<class_EditorScenePostImportPlugin_method__get_import_options>` and :ref:`_get_internal_import_options<class_EditorScenePostImportPlugin_method__get_internal_import_options>`.
 

+ 10 - 10
classes/class_expression.rst

@@ -70,22 +70,22 @@ In the following example we use a :ref:`LineEdit<class_LineEdit>` node to write
 Methods
 -------
 
-+---------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Variant<class_Variant>`         | :ref:`execute<class_Expression_method_execute>` **(** :ref:`Array<class_Array>` inputs=[], :ref:`Object<class_Object>` base_instance=null, :ref:`bool<class_bool>` show_error=true **)** |
-+---------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_String>`           | :ref:`get_error_text<class_Expression_method_get_error_text>` **(** **)** |const|                                                                                                        |
-+---------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`               | :ref:`has_execute_failed<class_Expression_method_has_execute_failed>` **(** **)** |const|                                                                                                |
-+---------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Error<enum_@GlobalScope_Error>` | :ref:`parse<class_Expression_method_parse>` **(** :ref:`String<class_String>` expression, :ref:`PackedStringArray<class_PackedStringArray>` input_names=PackedStringArray() **)**        |
-+---------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
++---------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Variant<class_Variant>`         | :ref:`execute<class_Expression_method_execute>` **(** :ref:`Array<class_Array>` inputs=[], :ref:`Object<class_Object>` base_instance=null, :ref:`bool<class_bool>` show_error=true, :ref:`bool<class_bool>` const_calls_only=false **)** |
++---------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`           | :ref:`get_error_text<class_Expression_method_get_error_text>` **(** **)** |const|                                                                                                                                                        |
++---------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`               | :ref:`has_execute_failed<class_Expression_method_has_execute_failed>` **(** **)** |const|                                                                                                                                                |
++---------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Error<enum_@GlobalScope_Error>` | :ref:`parse<class_Expression_method_parse>` **(** :ref:`String<class_String>` expression, :ref:`PackedStringArray<class_PackedStringArray>` input_names=PackedStringArray() **)**                                                        |
++---------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 
 Method Descriptions
 -------------------
 
 .. _class_Expression_method_execute:
 
-- :ref:`Variant<class_Variant>` **execute** **(** :ref:`Array<class_Array>` inputs=[], :ref:`Object<class_Object>` base_instance=null, :ref:`bool<class_bool>` show_error=true **)**
+- :ref:`Variant<class_Variant>` **execute** **(** :ref:`Array<class_Array>` inputs=[], :ref:`Object<class_Object>` base_instance=null, :ref:`bool<class_bool>` show_error=true, :ref:`bool<class_bool>` const_calls_only=false **)**
 
 Executes the expression that was previously parsed by :ref:`parse<class_Expression_method_parse>` and returns the result. Before you use the returned object, you should check if the method failed by calling :ref:`has_execute_failed<class_Expression_method_has_execute_failed>`.
 

+ 35 - 17
classes/class_filedialog.rst

@@ -38,6 +38,8 @@ Properties
 +---------------------------------------------------+-----------------------------------------------------------------------------+------------------------------------------------------------------------------------------+
 | :ref:`bool<class_bool>`                           | :ref:`mode_overrides_title<class_FileDialog_property_mode_overrides_title>` | ``true``                                                                                 |
 +---------------------------------------------------+-----------------------------------------------------------------------------+------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`                       | :ref:`root_subfolder<class_FileDialog_property_root_subfolder>`             | ``""``                                                                                   |
++---------------------------------------------------+-----------------------------------------------------------------------------+------------------------------------------------------------------------------------------+
 | :ref:`bool<class_bool>`                           | :ref:`show_hidden_files<class_FileDialog_property_show_hidden_files>`       | ``false``                                                                                |
 +---------------------------------------------------+-----------------------------------------------------------------------------+------------------------------------------------------------------------------------------+
 | :ref:`String<class_String>`                       | title                                                                       | ``"Save a File"`` (overrides :ref:`Window<class_Window_property_title>`)                 |
@@ -46,19 +48,19 @@ Properties
 Methods
 -------
 
-+-------------------------------------------+------------------------------------------------------------------------------------------------------+
-| void                                      | :ref:`add_filter<class_FileDialog_method_add_filter>` **(** :ref:`String<class_String>` filter **)** |
-+-------------------------------------------+------------------------------------------------------------------------------------------------------+
-| void                                      | :ref:`clear_filters<class_FileDialog_method_clear_filters>` **(** **)**                              |
-+-------------------------------------------+------------------------------------------------------------------------------------------------------+
-| void                                      | :ref:`deselect_all<class_FileDialog_method_deselect_all>` **(** **)**                                |
-+-------------------------------------------+------------------------------------------------------------------------------------------------------+
-| :ref:`LineEdit<class_LineEdit>`           | :ref:`get_line_edit<class_FileDialog_method_get_line_edit>` **(** **)**                              |
-+-------------------------------------------+------------------------------------------------------------------------------------------------------+
-| :ref:`VBoxContainer<class_VBoxContainer>` | :ref:`get_vbox<class_FileDialog_method_get_vbox>` **(** **)**                                        |
-+-------------------------------------------+------------------------------------------------------------------------------------------------------+
-| void                                      | :ref:`invalidate<class_FileDialog_method_invalidate>` **(** **)**                                    |
-+-------------------------------------------+------------------------------------------------------------------------------------------------------+
++-------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                      | :ref:`add_filter<class_FileDialog_method_add_filter>` **(** :ref:`String<class_String>` filter, :ref:`String<class_String>` description="" **)** |
++-------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                      | :ref:`clear_filters<class_FileDialog_method_clear_filters>` **(** **)**                                                                          |
++-------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                      | :ref:`deselect_all<class_FileDialog_method_deselect_all>` **(** **)**                                                                            |
++-------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`LineEdit<class_LineEdit>`           | :ref:`get_line_edit<class_FileDialog_method_get_line_edit>` **(** **)**                                                                          |
++-------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`VBoxContainer<class_VBoxContainer>` | :ref:`get_vbox<class_FileDialog_method_get_vbox>` **(** **)**                                                                                    |
++-------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                      | :ref:`invalidate<class_FileDialog_method_invalidate>` **(** **)**                                                                                |
++-------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
 
 Theme Properties
 ----------------
@@ -266,6 +268,22 @@ If ``true``, changing the ``Mode`` property will set the window title accordingl
 
 ----
 
+.. _class_FileDialog_property_root_subfolder:
+
+- :ref:`String<class_String>` **root_subfolder**
+
++-----------+---------------------------+
+| *Default* | ``""``                    |
++-----------+---------------------------+
+| *Setter*  | set_root_subfolder(value) |
++-----------+---------------------------+
+| *Getter*  | get_root_subfolder()      |
++-----------+---------------------------+
+
+If non-empty, the given sub-folder will be "root" of this ``FileDialog``, i.e. user won't be able to go to its parent directory.
+
+----
+
 .. _class_FileDialog_property_show_hidden_files:
 
 - :ref:`bool<class_bool>` **show_hidden_files**
@@ -285,13 +303,13 @@ Method Descriptions
 
 .. _class_FileDialog_method_add_filter:
 
-- void **add_filter** **(** :ref:`String<class_String>` filter **)**
+- void **add_filter** **(** :ref:`String<class_String>` filter, :ref:`String<class_String>` description="" **)**
 
-Adds ``filter`` to the list of filters, which restricts what files can be picked.
+Adds a comma-delimited file name ``filter`` option to the ``FileDialog`` with an optional ``description``, which restricts what files can be picked.
 
-A ``filter`` should be of the form ``"filename.extension ; Description"``, where filename and extension can be ``*`` to match any string. Filters starting with ``.`` (i.e. empty filenames) are not allowed.
+A ``filter`` should be of the form ``"filename.extension"``, where filename and extension can be ``*`` to match any string. Filters starting with ``.`` (i.e. empty filenames) are not allowed.
 
-Example filters: ``"*.png ; PNG Images"``, ``"project.godot ; Godot Project"``.
+For example, a ``filter`` of ``"*.png, *.jpg"`` and a ``description`` of ``"Images"`` results in filter text "Images (\*.png, \*.jpg)".
 
 ----
 

+ 12 - 0
classes/class_float.rst

@@ -60,6 +60,10 @@ Operators
 +-------------------------------------+--------------------------------------------------------------------------------------------------------------+
 | :ref:`Vector3<class_Vector3>`       | :ref:`operator *<class_float_operator_mul_Vector3>` **(** :ref:`Vector3i<class_Vector3i>` right **)**        |
 +-------------------------------------+--------------------------------------------------------------------------------------------------------------+
+| :ref:`Vector4<class_Vector4>`       | :ref:`operator *<class_float_operator_mul_Vector4>` **(** :ref:`Vector4<class_Vector4>` right **)**          |
++-------------------------------------+--------------------------------------------------------------------------------------------------------------+
+| :ref:`Vector4<class_Vector4>`       | :ref:`operator *<class_float_operator_mul_Vector4>` **(** :ref:`Vector4i<class_Vector4i>` right **)**        |
++-------------------------------------+--------------------------------------------------------------------------------------------------------------+
 | :ref:`float<class_float>`           | :ref:`operator *<class_float_operator_mul_float>` **(** :ref:`float<class_float>` right **)**                |
 +-------------------------------------+--------------------------------------------------------------------------------------------------------------+
 | :ref:`float<class_float>`           | :ref:`operator *<class_float_operator_mul_float>` **(** :ref:`int<class_int>` right **)**                    |
@@ -203,6 +207,14 @@ Multiplies each component of the :ref:`Vector3i<class_Vector3i>` by the given ``
 
 ----
 
+- :ref:`Vector4<class_Vector4>` **operator *** **(** :ref:`Vector4<class_Vector4>` right **)**
+
+----
+
+- :ref:`Vector4<class_Vector4>` **operator *** **(** :ref:`Vector4i<class_Vector4i>` right **)**
+
+----
+
 - :ref:`float<class_float>` **operator *** **(** :ref:`float<class_float>` right **)**
 
 Multiplies two ``float``\ s.

+ 180 - 231
classes/class_font.rst

@@ -11,307 +11,226 @@ Font
 
 **Inherits:** :ref:`Resource<class_Resource>` **<** :ref:`RefCounted<class_RefCounted>` **<** :ref:`Object<class_Object>`
 
-Font class is set of font data sources used to draw text.
+**Inherited By:** :ref:`FontFile<class_FontFile>`, :ref:`FontVariation<class_FontVariation>`, :ref:`SystemFont<class_SystemFont>`
+
+Base class for fonts and font variations.
 
 Description
 -----------
 
-Font contains a set of glyphs to represent Unicode characters, as well as the ability to draw it with variable width, ascent, descent and kerning.
-
-\ **Note:** A character is a symbol that represents an item (letter, digit etc.) in an abstract way.
-
-\ **Note:** A glyph is a bitmap or shape used to draw a one or more characters in a context-dependent manner. Glyph indices are bound to the specific font data source.
-
-\ **Note:** If a non 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
-
-    var font = Font.new()
-    font.add_data(load("res://BarlowCondensed-Bold.ttf"))
-    $"Label".set("custom_fonts/font", font)
-    $"Label".set("custom_fonts/font_size", 64)
-
- .. code-tab:: csharp
-
-    var font = new Font();
-    font.AddData(ResourceLoader.Load<FontData>("res://BarlowCondensed-Bold.ttf"));
-    GetNode("Label").Set("custom_fonts/font", font);
-    GetNode("Label").Set("custom_font_sizes/font_size", 64);
-
-
+Font is the abstract base class for font, so it shouldn't be used directly. Other types of fonts inherit from it.
 
-To control font substitution priority use :ref:`FontData<class_FontData>` language and script support.
-
-Use language overrides to use same ``Font`` stack for multiple languages:
-
-
-.. tabs::
-
- .. code-tab:: gdscript
-
-    # Use Naskh font for Persian and Nastaʼlīq font for Urdu text.
-    var font_data_fa = load("res://NotoNaskhArabicUI_Regular.ttf");
-    font_data_fa.set_language_support_override("fa", true);
-    font_data_fa.set_language_support_override("ur", false);
-    
-    var font_data_ur = load("res://NotoNastaliqUrdu_Regular.ttf");
-    font_data_ur.set_language_support_override("fa", false);
-    font_data_ur.set_language_support_override("ur", true);
-
- .. code-tab:: csharp
+Methods
+-------
 
-    // Use Naskh font for Persian and Nastaʼlīq font for Urdu text.
-    var fontDataFA = ResourceLoader.Load<FontData>("res://NotoNaskhArabicUI_Regular.ttf");
-    fontDataFA.SetLanguageSupportOverride("fa", true);
-    fontDataFA.SetLanguageSupportOverride("ur", false);
-    
-    var fontDataUR = ResourceLoader.Load<FontData>("res://NotoNastaliqUrdu_Regular.ttf");
-    fontDataUR.SetLanguageSupportOverride("fa", false);
-    fontDataUR.SetLanguageSupportOverride("ur", true);
++---------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                   | :ref:`draw_char<class_Font_method_draw_char>` **(** :ref:`RID<class_RID>` canvas_item, :ref:`Vector2<class_Vector2>` pos, :ref:`int<class_int>` char, :ref:`int<class_int>` font_size, :ref:`Color<class_Color>` modulate=Color(1, 1, 1, 1) **)** |const|                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
++---------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                   | :ref:`draw_char_outline<class_Font_method_draw_char_outline>` **(** :ref:`RID<class_RID>` canvas_item, :ref:`Vector2<class_Vector2>` pos, :ref:`int<class_int>` char, :ref:`int<class_int>` font_size, :ref:`int<class_int>` size=-1, :ref:`Color<class_Color>` modulate=Color(1, 1, 1, 1) **)** |const|                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
++---------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                        | :ref:`draw_multiline_string<class_Font_method_draw_multiline_string>` **(** :ref:`RID<class_RID>` canvas_item, :ref:`Vector2<class_Vector2>` pos, :ref:`String<class_String>` text, :ref:`HorizontalAlignment<enum_@GlobalScope_HorizontalAlignment>` alignment=0, :ref:`float<class_float>` width=-1, :ref:`int<class_int>` font_size=16, :ref:`int<class_int>` max_lines=-1, :ref:`Color<class_Color>` modulate=Color(1, 1, 1, 1), :ref:`LineBreakFlag<enum_TextServer_LineBreakFlag>` brk_flags=3, :ref:`JustificationFlag<enum_TextServer_JustificationFlag>` jst_flags=3, :ref:`Direction<enum_TextServer_Direction>` direction=0, :ref:`Orientation<enum_TextServer_Orientation>` orientation=0 **)** |const|                                               |
++---------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                        | :ref:`draw_multiline_string_outline<class_Font_method_draw_multiline_string_outline>` **(** :ref:`RID<class_RID>` canvas_item, :ref:`Vector2<class_Vector2>` pos, :ref:`String<class_String>` text, :ref:`HorizontalAlignment<enum_@GlobalScope_HorizontalAlignment>` alignment=0, :ref:`float<class_float>` width=-1, :ref:`int<class_int>` font_size=16, :ref:`int<class_int>` max_lines=-1, :ref:`int<class_int>` size=1, :ref:`Color<class_Color>` modulate=Color(1, 1, 1, 1), :ref:`LineBreakFlag<enum_TextServer_LineBreakFlag>` brk_flags=3, :ref:`JustificationFlag<enum_TextServer_JustificationFlag>` jst_flags=3, :ref:`Direction<enum_TextServer_Direction>` direction=0, :ref:`Orientation<enum_TextServer_Orientation>` orientation=0 **)** |const| |
++---------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                        | :ref:`draw_string<class_Font_method_draw_string>` **(** :ref:`RID<class_RID>` canvas_item, :ref:`Vector2<class_Vector2>` pos, :ref:`String<class_String>` text, :ref:`HorizontalAlignment<enum_@GlobalScope_HorizontalAlignment>` alignment=0, :ref:`float<class_float>` width=-1, :ref:`int<class_int>` font_size=16, :ref:`Color<class_Color>` modulate=Color(1, 1, 1, 1), :ref:`JustificationFlag<enum_TextServer_JustificationFlag>` jst_flags=3, :ref:`Direction<enum_TextServer_Direction>` direction=0, :ref:`Orientation<enum_TextServer_Orientation>` orientation=0 **)** |const|                                                                                                                                                                        |
++---------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                        | :ref:`draw_string_outline<class_Font_method_draw_string_outline>` **(** :ref:`RID<class_RID>` canvas_item, :ref:`Vector2<class_Vector2>` pos, :ref:`String<class_String>` text, :ref:`HorizontalAlignment<enum_@GlobalScope_HorizontalAlignment>` alignment=0, :ref:`float<class_float>` width=-1, :ref:`int<class_int>` font_size=16, :ref:`int<class_int>` size=1, :ref:`Color<class_Color>` modulate=Color(1, 1, 1, 1), :ref:`JustificationFlag<enum_TextServer_JustificationFlag>` jst_flags=3, :ref:`Direction<enum_TextServer_Direction>` direction=0, :ref:`Orientation<enum_TextServer_Orientation>` orientation=0 **)** |const|                                                                                                                          |
++---------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`RID<class_RID>`                       | :ref:`find_variation<class_Font_method_find_variation>` **(** :ref:`Dictionary<class_Dictionary>` variation_coordinates, :ref:`int<class_int>` face_index=0, :ref:`float<class_float>` strength=0.0, :ref:`Transform2D<class_Transform2D>` transform=Transform2D(1, 0, 0, 1, 0, 0) **)** |const|                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
++---------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                   | :ref:`get_ascent<class_Font_method_get_ascent>` **(** :ref:`int<class_int>` font_size=16 **)** |const|                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
++---------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Vector2<class_Vector2>`               | :ref:`get_char_size<class_Font_method_get_char_size>` **(** :ref:`int<class_int>` char, :ref:`int<class_int>` font_size **)** |const|                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
++---------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                   | :ref:`get_descent<class_Font_method_get_descent>` **(** :ref:`int<class_int>` font_size=16 **)** |const|                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
++---------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                       | :ref:`get_face_count<class_Font_method_get_face_count>` **(** **)** |const|                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
++---------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Font[]<class_Font>`                   | :ref:`get_fallbacks<class_Font_method_get_fallbacks>` **(** **)** |const|                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
++---------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`                 | :ref:`get_font_name<class_Font_method_get_font_name>` **(** **)** |const|                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
++---------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`FontStyle<enum_TextServer_FontStyle>` | :ref:`get_font_style<class_Font_method_get_font_style>` **(** **)** |const|                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
++---------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`                 | :ref:`get_font_style_name<class_Font_method_get_font_style_name>` **(** **)** |const|                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
++---------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                   | :ref:`get_height<class_Font_method_get_height>` **(** :ref:`int<class_int>` font_size=16 **)** |const|                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
++---------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Vector2<class_Vector2>`               | :ref:`get_multiline_string_size<class_Font_method_get_multiline_string_size>` **(** :ref:`String<class_String>` text, :ref:`HorizontalAlignment<enum_@GlobalScope_HorizontalAlignment>` alignment=0, :ref:`float<class_float>` width=-1, :ref:`int<class_int>` font_size=16, :ref:`int<class_int>` max_lines=-1, :ref:`LineBreakFlag<enum_TextServer_LineBreakFlag>` brk_flags=3, :ref:`JustificationFlag<enum_TextServer_JustificationFlag>` jst_flags=3, :ref:`Direction<enum_TextServer_Direction>` direction=0, :ref:`Orientation<enum_TextServer_Orientation>` orientation=0 **)** |const|                                                                                                                                                                   |
++---------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Dictionary<class_Dictionary>`         | :ref:`get_opentype_features<class_Font_method_get_opentype_features>` **(** **)** |const|                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
++---------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`RID[]<class_RID>`                     | :ref:`get_rids<class_Font_method_get_rids>` **(** **)** |const|                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
++---------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                       | :ref:`get_spacing<class_Font_method_get_spacing>` **(** :ref:`SpacingType<enum_TextServer_SpacingType>` spacing **)** |const|                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
++---------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Vector2<class_Vector2>`               | :ref:`get_string_size<class_Font_method_get_string_size>` **(** :ref:`String<class_String>` text, :ref:`HorizontalAlignment<enum_@GlobalScope_HorizontalAlignment>` alignment=0, :ref:`float<class_float>` width=-1, :ref:`int<class_int>` font_size=16, :ref:`JustificationFlag<enum_TextServer_JustificationFlag>` jst_flags=3, :ref:`Direction<enum_TextServer_Direction>` direction=0, :ref:`Orientation<enum_TextServer_Orientation>` orientation=0 **)** |const|                                                                                                                                                                                                                                                                                            |
++---------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`                 | :ref:`get_supported_chars<class_Font_method_get_supported_chars>` **(** **)** |const|                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
++---------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Dictionary<class_Dictionary>`         | :ref:`get_supported_feature_list<class_Font_method_get_supported_feature_list>` **(** **)** |const|                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
++---------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Dictionary<class_Dictionary>`         | :ref:`get_supported_variation_list<class_Font_method_get_supported_variation_list>` **(** **)** |const|                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
++---------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                   | :ref:`get_underline_position<class_Font_method_get_underline_position>` **(** :ref:`int<class_int>` font_size=16 **)** |const|                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
++---------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                   | :ref:`get_underline_thickness<class_Font_method_get_underline_thickness>` **(** :ref:`int<class_int>` font_size=16 **)** |const|                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
++---------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                     | :ref:`has_char<class_Font_method_has_char>` **(** :ref:`int<class_int>` char **)** |const|                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
++---------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                     | :ref:`is_language_supported<class_Font_method_is_language_supported>` **(** :ref:`String<class_String>` language **)** |const|                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
++---------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                     | :ref:`is_script_supported<class_Font_method_is_script_supported>` **(** :ref:`String<class_String>` script **)** |const|                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
++---------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                        | :ref:`set_cache_capacity<class_Font_method_set_cache_capacity>` **(** :ref:`int<class_int>` single_line, :ref:`int<class_int>` multi_line **)**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
++---------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                        | :ref:`set_fallbacks<class_Font_method_set_fallbacks>` **(** :ref:`Font[]<class_Font>` fallbacks **)**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
++---------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 
+Method Descriptions
+-------------------
 
+.. _class_Font_method_draw_char:
 
-Use script overrides to specify supported scripts for bitmap font or for less common scripts not directly supported by TrueType format:
+- :ref:`float<class_float>` **draw_char** **(** :ref:`RID<class_RID>` canvas_item, :ref:`Vector2<class_Vector2>` pos, :ref:`int<class_int>` char, :ref:`int<class_int>` font_size, :ref:`Color<class_Color>` modulate=Color(1, 1, 1, 1) **)** |const|
 
+Draw a single Unicode character ``char`` into a canvas item using the font, at a given position, with ``modulate`` color. ``position`` specifies the baseline, not the top. To draw from the top, *ascent* must be added to the Y axis.
 
-.. tabs::
+\ **Note:** Do not use this function to draw strings character by character, use :ref:`draw_string<class_Font_method_draw_string>` or :ref:`TextLine<class_TextLine>` instead.
 
- .. code-tab:: gdscript
+----
 
-    # Use specified font for Egyptian hieroglyphs.
-    var font_data = load("res://unifont.ttf");
-    font_data.set_script_support_override("Egyp", true);
+.. _class_Font_method_draw_char_outline:
 
- .. code-tab:: csharp
+- :ref:`float<class_float>` **draw_char_outline** **(** :ref:`RID<class_RID>` canvas_item, :ref:`Vector2<class_Vector2>` pos, :ref:`int<class_int>` char, :ref:`int<class_int>` font_size, :ref:`int<class_int>` size=-1, :ref:`Color<class_Color>` modulate=Color(1, 1, 1, 1) **)** |const|
 
-    // Use specified font for Egyptian hieroglyphs.
-    var fontData = ResourceLoader.Load<FontData>("res://unifont.ttf");
-    fontData.SetScriptSupportOverride("Egyp", true);
+Draw a single Unicode character ``char`` outline into a canvas item using the font, at a given position, with ``modulate`` color and ``size`` outline size. ``position`` specifies the baseline, not the top. To draw from the top, *ascent* must be added to the Y axis.
 
+\ **Note:** Do not use this function to draw strings character by character, use :ref:`draw_string<class_Font_method_draw_string>` or :ref:`TextLine<class_TextLine>` instead.
 
+----
 
-Properties
-----------
+.. _class_Font_method_draw_multiline_string:
 
-+-------------------------------------+-------------------------------------------------------------------------+--------+
-| :ref:`int<class_int>`               | :ref:`spacing_bottom<class_Font_property_spacing_bottom>`               | ``0``  |
-+-------------------------------------+-------------------------------------------------------------------------+--------+
-| :ref:`int<class_int>`               | :ref:`spacing_top<class_Font_property_spacing_top>`                     | ``0``  |
-+-------------------------------------+-------------------------------------------------------------------------+--------+
-| :ref:`Dictionary<class_Dictionary>` | :ref:`variation_coordinates<class_Font_property_variation_coordinates>` | ``{}`` |
-+-------------------------------------+-------------------------------------------------------------------------+--------+
+- void **draw_multiline_string** **(** :ref:`RID<class_RID>` canvas_item, :ref:`Vector2<class_Vector2>` pos, :ref:`String<class_String>` text, :ref:`HorizontalAlignment<enum_@GlobalScope_HorizontalAlignment>` alignment=0, :ref:`float<class_float>` width=-1, :ref:`int<class_int>` font_size=16, :ref:`int<class_int>` max_lines=-1, :ref:`Color<class_Color>` modulate=Color(1, 1, 1, 1), :ref:`LineBreakFlag<enum_TextServer_LineBreakFlag>` brk_flags=3, :ref:`JustificationFlag<enum_TextServer_JustificationFlag>` jst_flags=3, :ref:`Direction<enum_TextServer_Direction>` direction=0, :ref:`Orientation<enum_TextServer_Orientation>` orientation=0 **)** |const|
 
-Methods
--------
+Breaks ``text`` to the lines using rules specified by ``flags`` and draws it into a canvas item using the font, at a given position, with ``modulate`` color, optionally clipping the width and aligning horizontally. ``position`` specifies the baseline of the first line, not the top. To draw from the top, *ascent* must be added to the Y axis.
 
-+---------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                            | :ref:`add_data<class_Font_method_add_data>` **(** :ref:`FontData<class_FontData>` data **)**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
-+---------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                            | :ref:`clear_data<class_Font_method_clear_data>` **(** **)**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
-+---------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`       | :ref:`draw_char<class_Font_method_draw_char>` **(** :ref:`RID<class_RID>` canvas_item, :ref:`Vector2<class_Vector2>` pos, :ref:`int<class_int>` char, :ref:`int<class_int>` next=0, :ref:`int<class_int>` size=16, :ref:`Color<class_Color>` modulate=Color(1, 1, 1, 1), :ref:`int<class_int>` outline_size=0, :ref:`Color<class_Color>` outline_modulate=Color(1, 1, 1, 0) **)** |const|                                                                                                                                                                                        |
-+---------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                            | :ref:`draw_multiline_string<class_Font_method_draw_multiline_string>` **(** :ref:`RID<class_RID>` canvas_item, :ref:`Vector2<class_Vector2>` pos, :ref:`String<class_String>` text, :ref:`HorizontalAlignment<enum_@GlobalScope_HorizontalAlignment>` alignment=0, :ref:`float<class_float>` width=-1, :ref:`int<class_int>` max_lines=-1, :ref:`int<class_int>` size=16, :ref:`Color<class_Color>` modulate=Color(1, 1, 1, 1), :ref:`int<class_int>` outline_size=0, :ref:`Color<class_Color>` outline_modulate=Color(1, 1, 1, 0), :ref:`int<class_int>` flags=99 **)** |const| |
-+---------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                            | :ref:`draw_string<class_Font_method_draw_string>` **(** :ref:`RID<class_RID>` canvas_item, :ref:`Vector2<class_Vector2>` pos, :ref:`String<class_String>` text, :ref:`HorizontalAlignment<enum_@GlobalScope_HorizontalAlignment>` alignment=0, :ref:`float<class_float>` width=-1, :ref:`int<class_int>` size=16, :ref:`Color<class_Color>` modulate=Color(1, 1, 1, 1), :ref:`int<class_int>` outline_size=0, :ref:`Color<class_Color>` outline_modulate=Color(1, 1, 1, 0), :ref:`int<class_int>` flags=3 **)** |const|                                                          |
-+---------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`       | :ref:`get_ascent<class_Font_method_get_ascent>` **(** :ref:`int<class_int>` size=16 **)** |const|                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
-+---------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Vector2<class_Vector2>`   | :ref:`get_char_size<class_Font_method_get_char_size>` **(** :ref:`int<class_int>` char, :ref:`int<class_int>` next=0, :ref:`int<class_int>` size=16 **)** |const|                                                                                                                                                                                                                                                                                                                                                                                                                |
-+---------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`FontData<class_FontData>` | :ref:`get_data<class_Font_method_get_data>` **(** :ref:`int<class_int>` idx **)** |const|                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
-+---------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`           | :ref:`get_data_count<class_Font_method_get_data_count>` **(** **)** |const|                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
-+---------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`RID<class_RID>`           | :ref:`get_data_rid<class_Font_method_get_data_rid>` **(** :ref:`int<class_int>` idx **)** |const|                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
-+---------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`       | :ref:`get_descent<class_Font_method_get_descent>` **(** :ref:`int<class_int>` size=16 **)** |const|                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
-+---------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`       | :ref:`get_height<class_Font_method_get_height>` **(** :ref:`int<class_int>` size=16 **)** |const|                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
-+---------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Vector2<class_Vector2>`   | :ref:`get_multiline_string_size<class_Font_method_get_multiline_string_size>` **(** :ref:`String<class_String>` text, :ref:`float<class_float>` width=-1, :ref:`int<class_int>` size=16, :ref:`int<class_int>` flags=96 **)** |const|                                                                                                                                                                                                                                                                                                                                            |
-+---------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Array<class_Array>`       | :ref:`get_rids<class_Font_method_get_rids>` **(** **)** |const|                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
-+---------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`           | :ref:`get_spacing<class_Font_method_get_spacing>` **(** :ref:`SpacingType<enum_TextServer_SpacingType>` spacing **)** |const|                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
-+---------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Vector2<class_Vector2>`   | :ref:`get_string_size<class_Font_method_get_string_size>` **(** :ref:`String<class_String>` text, :ref:`int<class_int>` size=16, :ref:`HorizontalAlignment<enum_@GlobalScope_HorizontalAlignment>` alignment=0, :ref:`float<class_float>` width=-1, :ref:`int<class_int>` flags=3 **)** |const|                                                                                                                                                                                                                                                                                  |
-+---------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_String>`     | :ref:`get_supported_chars<class_Font_method_get_supported_chars>` **(** **)** |const|                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
-+---------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`       | :ref:`get_underline_position<class_Font_method_get_underline_position>` **(** :ref:`int<class_int>` size=16 **)** |const|                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
-+---------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`       | :ref:`get_underline_thickness<class_Font_method_get_underline_thickness>` **(** :ref:`int<class_int>` size=16 **)** |const|                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
-+---------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`         | :ref:`has_char<class_Font_method_has_char>` **(** :ref:`int<class_int>` char **)** |const|                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
-+---------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                            | :ref:`remove_data<class_Font_method_remove_data>` **(** :ref:`int<class_int>` idx **)**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
-+---------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                            | :ref:`set_data<class_Font_method_set_data>` **(** :ref:`int<class_int>` idx, :ref:`FontData<class_FontData>` data **)**                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
-+---------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                            | :ref:`set_spacing<class_Font_method_set_spacing>` **(** :ref:`SpacingType<enum_TextServer_SpacingType>` spacing, :ref:`int<class_int>` value **)**                                                                                                                                                                                                                                                                                                                                                                                                                               |
-+---------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                            | :ref:`update_changes<class_Font_method_update_changes>` **(** **)**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
-+---------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-
-Property Descriptions
----------------------
-
-.. _class_Font_property_spacing_bottom:
-
-- :ref:`int<class_int>` **spacing_bottom**
-
-+-----------+--------------------+
-| *Default* | ``0``              |
-+-----------+--------------------+
-| *Setter*  | set_spacing(value) |
-+-----------+--------------------+
-| *Getter*  | get_spacing()      |
-+-----------+--------------------+
-
-Extra spacing at the bottom of the line in pixels.
+See also :ref:`CanvasItem.draw_multiline_string<class_CanvasItem_method_draw_multiline_string>`.
 
 ----
 
-.. _class_Font_property_spacing_top:
+.. _class_Font_method_draw_multiline_string_outline:
 
-- :ref:`int<class_int>` **spacing_top**
+- void **draw_multiline_string_outline** **(** :ref:`RID<class_RID>` canvas_item, :ref:`Vector2<class_Vector2>` pos, :ref:`String<class_String>` text, :ref:`HorizontalAlignment<enum_@GlobalScope_HorizontalAlignment>` alignment=0, :ref:`float<class_float>` width=-1, :ref:`int<class_int>` font_size=16, :ref:`int<class_int>` max_lines=-1, :ref:`int<class_int>` size=1, :ref:`Color<class_Color>` modulate=Color(1, 1, 1, 1), :ref:`LineBreakFlag<enum_TextServer_LineBreakFlag>` brk_flags=3, :ref:`JustificationFlag<enum_TextServer_JustificationFlag>` jst_flags=3, :ref:`Direction<enum_TextServer_Direction>` direction=0, :ref:`Orientation<enum_TextServer_Orientation>` orientation=0 **)** |const|
 
-+-----------+--------------------+
-| *Default* | ``0``              |
-+-----------+--------------------+
-| *Setter*  | set_spacing(value) |
-+-----------+--------------------+
-| *Getter*  | get_spacing()      |
-+-----------+--------------------+
+Breaks ``text`` to the lines using rules specified by ``flags`` and draws text outline into a canvas item using the font, at a given position, with ``modulate`` color and ``size`` outline size, optionally clipping the width and aligning horizontally. ``position`` specifies the baseline of the first line, not the top. To draw from the top, *ascent* must be added to the Y axis.
 
-Extra spacing at the top of the line in pixels.
+See also :ref:`CanvasItem.draw_multiline_string_outline<class_CanvasItem_method_draw_multiline_string_outline>`.
 
 ----
 
-.. _class_Font_property_variation_coordinates:
-
-- :ref:`Dictionary<class_Dictionary>` **variation_coordinates**
-
-+-----------+----------------------------------+
-| *Default* | ``{}``                           |
-+-----------+----------------------------------+
-| *Setter*  | set_variation_coordinates(value) |
-+-----------+----------------------------------+
-| *Getter*  | get_variation_coordinates()      |
-+-----------+----------------------------------+
-
-Default font `variation coordinates <https://docs.microsoft.com/en-us/typography/opentype/spec/dvaraxisreg>`__.
-
-Method Descriptions
--------------------
+.. _class_Font_method_draw_string:
 
-.. _class_Font_method_add_data:
+- void **draw_string** **(** :ref:`RID<class_RID>` canvas_item, :ref:`Vector2<class_Vector2>` pos, :ref:`String<class_String>` text, :ref:`HorizontalAlignment<enum_@GlobalScope_HorizontalAlignment>` alignment=0, :ref:`float<class_float>` width=-1, :ref:`int<class_int>` font_size=16, :ref:`Color<class_Color>` modulate=Color(1, 1, 1, 1), :ref:`JustificationFlag<enum_TextServer_JustificationFlag>` jst_flags=3, :ref:`Direction<enum_TextServer_Direction>` direction=0, :ref:`Orientation<enum_TextServer_Orientation>` orientation=0 **)** |const|
 
-- void **add_data** **(** :ref:`FontData<class_FontData>` data **)**
+Draw ``text`` into a canvas item using the font, at a given position, with ``modulate`` color, optionally clipping the width and aligning horizontally. ``position`` specifies the baseline, not the top. To draw from the top, *ascent* must be added to the Y axis.
 
-Add font data source to the set.
+See also :ref:`CanvasItem.draw_string<class_CanvasItem_method_draw_string>`.
 
 ----
 
-.. _class_Font_method_clear_data:
+.. _class_Font_method_draw_string_outline:
 
-- void **clear_data** **(** **)**
+- void **draw_string_outline** **(** :ref:`RID<class_RID>` canvas_item, :ref:`Vector2<class_Vector2>` pos, :ref:`String<class_String>` text, :ref:`HorizontalAlignment<enum_@GlobalScope_HorizontalAlignment>` alignment=0, :ref:`float<class_float>` width=-1, :ref:`int<class_int>` font_size=16, :ref:`int<class_int>` size=1, :ref:`Color<class_Color>` modulate=Color(1, 1, 1, 1), :ref:`JustificationFlag<enum_TextServer_JustificationFlag>` jst_flags=3, :ref:`Direction<enum_TextServer_Direction>` direction=0, :ref:`Orientation<enum_TextServer_Orientation>` orientation=0 **)** |const|
 
-Removes all font data sourcers for the set.
+Draw ``text`` outline into a canvas item using the font, at a given position, with ``modulate`` color and ``size`` outline size, optionally clipping the width and aligning horizontally. ``position`` specifies the baseline, not the top. To draw from the top, *ascent* must be added to the Y axis.
+
+See also :ref:`CanvasItem.draw_string_outline<class_CanvasItem_method_draw_string_outline>`.
 
 ----
 
-.. _class_Font_method_draw_char:
+.. _class_Font_method_find_variation:
 
-- :ref:`float<class_float>` **draw_char** **(** :ref:`RID<class_RID>` canvas_item, :ref:`Vector2<class_Vector2>` pos, :ref:`int<class_int>` char, :ref:`int<class_int>` next=0, :ref:`int<class_int>` size=16, :ref:`Color<class_Color>` modulate=Color(1, 1, 1, 1), :ref:`int<class_int>` outline_size=0, :ref:`Color<class_Color>` outline_modulate=Color(1, 1, 1, 0) **)** |const|
+- :ref:`RID<class_RID>` **find_variation** **(** :ref:`Dictionary<class_Dictionary>` variation_coordinates, :ref:`int<class_int>` face_index=0, :ref:`float<class_float>` strength=0.0, :ref:`Transform2D<class_Transform2D>` transform=Transform2D(1, 0, 0, 1, 0, 0) **)** |const|
 
-Draw a single Unicode character ``char`` into a canvas item using the font, at a given position, with ``modulate`` color, and optionally kerning if ``next`` is passed. ``position`` specifies the baseline, not the top. To draw from the top, *ascent* must be added to the Y axis.
-
-\ **Note:** Do not use this function to draw strings character by character, use :ref:`draw_string<class_Font_method_draw_string>` or :ref:`TextLine<class_TextLine>` instead.
+Returns :ref:`TextServer<class_TextServer>` RID of the font cache for specific variation.
 
 ----
 
-.. _class_Font_method_draw_multiline_string:
+.. _class_Font_method_get_ascent:
 
-- void **draw_multiline_string** **(** :ref:`RID<class_RID>` canvas_item, :ref:`Vector2<class_Vector2>` pos, :ref:`String<class_String>` text, :ref:`HorizontalAlignment<enum_@GlobalScope_HorizontalAlignment>` alignment=0, :ref:`float<class_float>` width=-1, :ref:`int<class_int>` max_lines=-1, :ref:`int<class_int>` size=16, :ref:`Color<class_Color>` modulate=Color(1, 1, 1, 1), :ref:`int<class_int>` outline_size=0, :ref:`Color<class_Color>` outline_modulate=Color(1, 1, 1, 0), :ref:`int<class_int>` flags=99 **)** |const|
+- :ref:`float<class_float>` **get_ascent** **(** :ref:`int<class_int>` font_size=16 **)** |const|
 
-Breaks ``text`` to the lines using rules specified by ``flags`` and draws it into a canvas item using the font, at a given position, with ``modulate`` color, optionally clipping the width and aligning horizontally. ``position`` specifies the baseline of the first line, not the top. To draw from the top, *ascent* must be added to the Y axis.
+Returns the average font ascent (number of pixels above the baseline).
 
-See also :ref:`CanvasItem.draw_multiline_string<class_CanvasItem_method_draw_multiline_string>`.
+\ **Note:** Real ascent of the string is context-dependent and can be significantly different from the value returned by this function. Use it only as rough estimate (e.g. as the ascent of empty line).
 
 ----
 
-.. _class_Font_method_draw_string:
+.. _class_Font_method_get_char_size:
 
-- void **draw_string** **(** :ref:`RID<class_RID>` canvas_item, :ref:`Vector2<class_Vector2>` pos, :ref:`String<class_String>` text, :ref:`HorizontalAlignment<enum_@GlobalScope_HorizontalAlignment>` alignment=0, :ref:`float<class_float>` width=-1, :ref:`int<class_int>` size=16, :ref:`Color<class_Color>` modulate=Color(1, 1, 1, 1), :ref:`int<class_int>` outline_size=0, :ref:`Color<class_Color>` outline_modulate=Color(1, 1, 1, 0), :ref:`int<class_int>` flags=3 **)** |const|
+- :ref:`Vector2<class_Vector2>` **get_char_size** **(** :ref:`int<class_int>` char, :ref:`int<class_int>` font_size **)** |const|
 
-Draw ``text`` into a canvas item using the font, at a given position, with ``modulate`` color, optionally clipping the width and aligning horizontally. ``position`` specifies the baseline, not the top. To draw from the top, *ascent* must be added to the Y axis.
+Returns the size of a character, optionally taking kerning into account if the next character is provided.
 
-See also :ref:`CanvasItem.draw_string<class_CanvasItem_method_draw_string>`.
+\ **Note:** Do not use this function to calculate width of the string character by character, use :ref:`get_string_size<class_Font_method_get_string_size>` or :ref:`TextLine<class_TextLine>` instead. The height returned is the font height (see also :ref:`get_height<class_Font_method_get_height>`) and has no relation to the glyph height.
 
 ----
 
-.. _class_Font_method_get_ascent:
+.. _class_Font_method_get_descent:
 
-- :ref:`float<class_float>` **get_ascent** **(** :ref:`int<class_int>` size=16 **)** |const|
+- :ref:`float<class_float>` **get_descent** **(** :ref:`int<class_int>` font_size=16 **)** |const|
 
-Returns the average font ascent (number of pixels above the baseline).
+Returns the average font descent (number of pixels below the baseline).
 
-\ **Note:** Real ascent of the string is context-dependent and can be significantly different from the value returned by this function. Use it only as rough estimate (e.g. as the ascent of empty line).
+\ **Note:** Real descent of the string is context-dependent and can be significantly different from the value returned by this function. Use it only as rough estimate (e.g. as the descent of empty line).
 
 ----
 
-.. _class_Font_method_get_char_size:
+.. _class_Font_method_get_face_count:
 
-- :ref:`Vector2<class_Vector2>` **get_char_size** **(** :ref:`int<class_int>` char, :ref:`int<class_int>` next=0, :ref:`int<class_int>` size=16 **)** |const|
+- :ref:`int<class_int>` **get_face_count** **(** **)** |const|
 
-Returns the size of a character, optionally taking kerning into account if the next character is provided.
-
-\ **Note:** Do not use this function to calculate width of the string character by character, use :ref:`get_string_size<class_Font_method_get_string_size>` or :ref:`TextLine<class_TextLine>` instead. The height returned is the font height (see also :ref:`get_height<class_Font_method_get_height>`) and has no relation to the glyph height.
+Returns number of faces in the TrueType / OpenType collection.
 
 ----
 
-.. _class_Font_method_get_data:
+.. _class_Font_method_get_fallbacks:
 
-- :ref:`FontData<class_FontData>` **get_data** **(** :ref:`int<class_int>` idx **)** |const|
+- :ref:`Font[]<class_Font>` **get_fallbacks** **(** **)** |const|
 
-Returns the font data source at index ``idx``. If the index does not exist, returns ``null``.
+Returns array of fallback ``Font``\ s.
 
 ----
 
-.. _class_Font_method_get_data_count:
+.. _class_Font_method_get_font_name:
 
-- :ref:`int<class_int>` **get_data_count** **(** **)** |const|
+- :ref:`String<class_String>` **get_font_name** **(** **)** |const|
 
-Returns the number of font data sources.
+Returns font family name.
 
 ----
 
-.. _class_Font_method_get_data_rid:
+.. _class_Font_method_get_font_style:
 
-- :ref:`RID<class_RID>` **get_data_rid** **(** :ref:`int<class_int>` idx **)** |const|
+- :ref:`FontStyle<enum_TextServer_FontStyle>` **get_font_style** **(** **)** |const|
 
-Returns TextServer RID of the font data resources.
+Returns font style flags, see :ref:`FontStyle<enum_TextServer_FontStyle>`.
 
 ----
 
-.. _class_Font_method_get_descent:
+.. _class_Font_method_get_font_style_name:
 
-- :ref:`float<class_float>` **get_descent** **(** :ref:`int<class_int>` size=16 **)** |const|
+- :ref:`String<class_String>` **get_font_style_name** **(** **)** |const|
 
-Returns the average font descent (number of pixels below the baseline).
-
-\ **Note:** Real descent of the string is context-dependent and can be significantly different from the value returned by this function. Use it only as rough estimate (e.g. as the descent of empty line).
+Returns font style name.
 
 ----
 
 .. _class_Font_method_get_height:
 
-- :ref:`float<class_float>` **get_height** **(** :ref:`int<class_int>` size=16 **)** |const|
+- :ref:`float<class_float>` **get_height** **(** :ref:`int<class_int>` font_size=16 **)** |const|
 
 Returns the total average font height (ascent plus descent) in pixels.
 
@@ -321,7 +240,7 @@ Returns the total average font height (ascent plus descent) in pixels.
 
 .. _class_Font_method_get_multiline_string_size:
 
-- :ref:`Vector2<class_Vector2>` **get_multiline_string_size** **(** :ref:`String<class_String>` text, :ref:`float<class_float>` width=-1, :ref:`int<class_int>` size=16, :ref:`int<class_int>` flags=96 **)** |const|
+- :ref:`Vector2<class_Vector2>` **get_multiline_string_size** **(** :ref:`String<class_String>` text, :ref:`HorizontalAlignment<enum_@GlobalScope_HorizontalAlignment>` alignment=0, :ref:`float<class_float>` width=-1, :ref:`int<class_int>` font_size=16, :ref:`int<class_int>` max_lines=-1, :ref:`LineBreakFlag<enum_TextServer_LineBreakFlag>` brk_flags=3, :ref:`JustificationFlag<enum_TextServer_JustificationFlag>` jst_flags=3, :ref:`Direction<enum_TextServer_Direction>` direction=0, :ref:`Orientation<enum_TextServer_Orientation>` orientation=0 **)** |const|
 
 Returns the size of a bounding box of a string broken into the lines, taking kerning and advance into account.
 
@@ -329,11 +248,19 @@ See also :ref:`draw_multiline_string<class_Font_method_draw_multiline_string>`.
 
 ----
 
+.. _class_Font_method_get_opentype_features:
+
+- :ref:`Dictionary<class_Dictionary>` **get_opentype_features** **(** **)** |const|
+
+Returns a set of OpenType feature tags. More info: `OpenType feature tags <https://docs.microsoft.com/en-us/typography/opentype/spec/featuretags>`__.
+
+----
+
 .. _class_Font_method_get_rids:
 
-- :ref:`Array<class_Array>` **get_rids** **(** **)** |const|
+- :ref:`RID[]<class_RID>` **get_rids** **(** **)** |const|
 
-Returns :ref:`Array<class_Array>` of valid :ref:`FontData<class_FontData>` :ref:`RID<class_RID>`\ s, which can be passed to the :ref:`TextServer<class_TextServer>` methods.
+Returns :ref:`Array<class_Array>` of valid ``Font`` :ref:`RID<class_RID>`\ s, which can be passed to the :ref:`TextServer<class_TextServer>` methods.
 
 ----
 
@@ -347,13 +274,17 @@ Returns the spacing for the given ``type`` (see :ref:`SpacingType<enum_TextServe
 
 .. _class_Font_method_get_string_size:
 
-- :ref:`Vector2<class_Vector2>` **get_string_size** **(** :ref:`String<class_String>` text, :ref:`int<class_int>` size=16, :ref:`HorizontalAlignment<enum_@GlobalScope_HorizontalAlignment>` alignment=0, :ref:`float<class_float>` width=-1, :ref:`int<class_int>` flags=3 **)** |const|
+- :ref:`Vector2<class_Vector2>` **get_string_size** **(** :ref:`String<class_String>` text, :ref:`HorizontalAlignment<enum_@GlobalScope_HorizontalAlignment>` alignment=0, :ref:`float<class_float>` width=-1, :ref:`int<class_int>` font_size=16, :ref:`JustificationFlag<enum_TextServer_JustificationFlag>` jst_flags=3, :ref:`Direction<enum_TextServer_Direction>` direction=0, :ref:`Orientation<enum_TextServer_Orientation>` orientation=0 **)** |const|
 
-Returns the size of a bounding box of a string, taking kerning and advance into account.
+Returns the size of a bounding box of a single-line string, taking kerning and advance into account. See also :ref:`get_multiline_string_size<class_Font_method_get_multiline_string_size>` and :ref:`draw_string<class_Font_method_draw_string>`.
 
-\ **Note:** Real height of the string is context-dependent and can be significantly different from the value returned by :ref:`get_height<class_Font_method_get_height>`.
+For example, to get the string size as displayed by a single-line Label, use:
+
+::
 
-See also :ref:`draw_string<class_Font_method_draw_string>`.
+    var string_size = $Label.get_theme_font("font").get_string_size($Label.text, HORIZONTAL_ALIGNMENT_LEFT, -1, $Label.get_theme_font_size("font_size"))
+
+\ **Note:** Real height of the string is context-dependent and can be significantly different from the value returned by :ref:`get_height<class_Font_method_get_height>`.
 
 ----
 
@@ -367,9 +298,27 @@ If a given character is included in more than one font data source, it appears o
 
 ----
 
+.. _class_Font_method_get_supported_feature_list:
+
+- :ref:`Dictionary<class_Dictionary>` **get_supported_feature_list** **(** **)** |const|
+
+Returns list of OpenType features supported by font.
+
+----
+
+.. _class_Font_method_get_supported_variation_list:
+
+- :ref:`Dictionary<class_Dictionary>` **get_supported_variation_list** **(** **)** |const|
+
+Returns list of supported `variation coordinates <https://docs.microsoft.com/en-us/typography/opentype/spec/dvaraxisreg>`__, each coordinate is returned as ``tag: Vector3i(min_value,max_value,default_value)``.
+
+Font variations allow for continuous change of glyph characteristics along some given design axis, such as weight, width or slant.
+
+----
+
 .. _class_Font_method_get_underline_position:
 
-- :ref:`float<class_float>` **get_underline_position** **(** :ref:`int<class_int>` size=16 **)** |const|
+- :ref:`float<class_float>` **get_underline_position** **(** :ref:`int<class_int>` font_size=16 **)** |const|
 
 Returns average pixel offset of the underline below the baseline.
 
@@ -379,7 +328,7 @@ Returns average pixel offset of the underline below the baseline.
 
 .. _class_Font_method_get_underline_thickness:
 
-- :ref:`float<class_float>` **get_underline_thickness** **(** :ref:`int<class_int>` size=16 **)** |const|
+- :ref:`float<class_float>` **get_underline_thickness** **(** :ref:`int<class_int>` font_size=16 **)** |const|
 
 Returns average thickness of the underline.
 
@@ -395,35 +344,35 @@ Returns ``true`` if a Unicode ``char`` is available in the font.
 
 ----
 
-.. _class_Font_method_remove_data:
+.. _class_Font_method_is_language_supported:
 
-- void **remove_data** **(** :ref:`int<class_int>` idx **)**
+- :ref:`bool<class_bool>` **is_language_supported** **(** :ref:`String<class_String>` language **)** |const|
 
-Removes the font data source at index ``idx``. If the index does not exist, nothing happens.
+Returns ``true``, if font supports given language (`ISO 639 <https://en.wikipedia.org/wiki/ISO_639-1>`__ code).
 
 ----
 
-.. _class_Font_method_set_data:
+.. _class_Font_method_is_script_supported:
 
-- void **set_data** **(** :ref:`int<class_int>` idx, :ref:`FontData<class_FontData>` data **)**
+- :ref:`bool<class_bool>` **is_script_supported** **(** :ref:`String<class_String>` script **)** |const|
 
-Sets the font data source at index ``idx``. If the index does not exist, nothing happens.
+Returns ``true``, if font supports given script (`ISO 15924 <https://en.wikipedia.org/wiki/ISO_15924>`__ code).
 
 ----
 
-.. _class_Font_method_set_spacing:
+.. _class_Font_method_set_cache_capacity:
 
-- void **set_spacing** **(** :ref:`SpacingType<enum_TextServer_SpacingType>` spacing, :ref:`int<class_int>` value **)**
+- void **set_cache_capacity** **(** :ref:`int<class_int>` single_line, :ref:`int<class_int>` multi_line **)**
 
-Sets the spacing for ``type`` (see :ref:`SpacingType<enum_TextServer_SpacingType>`) to ``value`` in pixels (not relative to the font size).
+Sets LRU cache capacity for ``draw_*`` methods.
 
 ----
 
-.. _class_Font_method_update_changes:
+.. _class_Font_method_set_fallbacks:
 
-- void **update_changes** **(** **)**
+- void **set_fallbacks** **(** :ref:`Font[]<class_Font>` fallbacks **)**
 
-After editing a font (changing data sources, etc.). Call this function to propagate changes to controls that might use it.
+Sets array of fallback ``Font``\ s.
 
 .. |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.)`

File diff suppressed because it is too large
+ 230 - 312
classes/class_fontfile.rst


+ 273 - 0
classes/class_fontvariation.rst

@@ -0,0 +1,273 @@
+:github_url: hide
+
+.. Generated automatically by doc/tools/make_rst.py in Godot's source tree.
+.. DO NOT EDIT THIS FILE, but the FontVariation.xml source instead.
+.. The source is found in doc/classes or modules/<name>/doc_classes.
+
+.. _class_FontVariation:
+
+FontVariation
+=============
+
+**Inherits:** :ref:`Font<class_Font>` **<** :ref:`Resource<class_Resource>` **<** :ref:`RefCounted<class_RefCounted>` **<** :ref:`Object<class_Object>`
+
+Variation of the :ref:`Font<class_Font>`.
+
+Description
+-----------
+
+OpenType variations, simulated bold / slant, and additional font settings like OpenType features and extra spacing.
+
+
+
+To use simulated bold font variant:
+
+
+.. tabs::
+
+ .. code-tab:: gdscript
+
+    var fv = FontVariation.new()
+    fv.set_base_font(load("res://BarlowCondensed-Regular.ttf"))
+    fv.set_variation_embolden(1.2);
+    $"Label".set("custom_fonts/font", fv)
+    $"Label".set("custom_fonts/font_size", 64)
+
+ .. code-tab:: csharp
+
+    var fv = new FontVariation();
+    fv.SetBaseFont(ResourceLoader.Load<FontFile>("res://BarlowCondensed-Regular.ttf"));
+    fv.SetVariationEmbolden(1.2);
+    GetNode("Label").Set("custom_fonts/font", fv);
+    GetNode("Label").Set("custom_font_sizes/font_size", 64);
+
+
+
+Properties
+----------
+
++---------------------------------------+--------------------------------------------------------------------------------+-----------------------------------+
+| :ref:`Font<class_Font>`               | :ref:`base_font<class_FontVariation_property_base_font>`                       |                                   |
++---------------------------------------+--------------------------------------------------------------------------------+-----------------------------------+
+| :ref:`Font[]<class_Font>`             | :ref:`fallbacks<class_FontVariation_property_fallbacks>`                       | ``[]``                            |
++---------------------------------------+--------------------------------------------------------------------------------+-----------------------------------+
+| :ref:`Dictionary<class_Dictionary>`   | :ref:`opentype_features<class_FontVariation_property_opentype_features>`       | ``{}``                            |
++---------------------------------------+--------------------------------------------------------------------------------+-----------------------------------+
+| :ref:`int<class_int>`                 | :ref:`spacing_bottom<class_FontVariation_property_spacing_bottom>`             | ``0``                             |
++---------------------------------------+--------------------------------------------------------------------------------+-----------------------------------+
+| :ref:`int<class_int>`                 | :ref:`spacing_glyph<class_FontVariation_property_spacing_glyph>`               | ``0``                             |
++---------------------------------------+--------------------------------------------------------------------------------+-----------------------------------+
+| :ref:`int<class_int>`                 | :ref:`spacing_space<class_FontVariation_property_spacing_space>`               | ``0``                             |
++---------------------------------------+--------------------------------------------------------------------------------+-----------------------------------+
+| :ref:`int<class_int>`                 | :ref:`spacing_top<class_FontVariation_property_spacing_top>`                   | ``0``                             |
++---------------------------------------+--------------------------------------------------------------------------------+-----------------------------------+
+| :ref:`float<class_float>`             | :ref:`variation_embolden<class_FontVariation_property_variation_embolden>`     | ``0.0``                           |
++---------------------------------------+--------------------------------------------------------------------------------+-----------------------------------+
+| :ref:`int<class_int>`                 | :ref:`variation_face_index<class_FontVariation_property_variation_face_index>` | ``0``                             |
++---------------------------------------+--------------------------------------------------------------------------------+-----------------------------------+
+| :ref:`Dictionary<class_Dictionary>`   | :ref:`variation_opentype<class_FontVariation_property_variation_opentype>`     | ``{}``                            |
++---------------------------------------+--------------------------------------------------------------------------------+-----------------------------------+
+| :ref:`Transform2D<class_Transform2D>` | :ref:`variation_transform<class_FontVariation_property_variation_transform>`   | ``Transform2D(1, 0, 0, 1, 0, 0)`` |
++---------------------------------------+--------------------------------------------------------------------------------+-----------------------------------+
+
+Methods
+-------
+
++------+-------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void | :ref:`set_spacing<class_FontVariation_method_set_spacing>` **(** :ref:`SpacingType<enum_TextServer_SpacingType>` spacing, :ref:`int<class_int>` value **)** |
++------+-------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+Property Descriptions
+---------------------
+
+.. _class_FontVariation_property_base_font:
+
+- :ref:`Font<class_Font>` **base_font**
+
++----------+----------------------+
+| *Setter* | set_base_font(value) |
++----------+----------------------+
+| *Getter* | get_base_font()      |
++----------+----------------------+
+
+Base font used to create a variation. If not set, default :ref:`Theme<class_Theme>` font is used.
+
+----
+
+.. _class_FontVariation_property_fallbacks:
+
+- :ref:`Font[]<class_Font>` **fallbacks**
+
++-----------+----------------------+
+| *Default* | ``[]``               |
++-----------+----------------------+
+| *Setter*  | set_fallbacks(value) |
++-----------+----------------------+
+| *Getter*  | get_fallbacks()      |
++-----------+----------------------+
+
+Array of fallback :ref:`Font<class_Font>`\ s. If not set :ref:`base_font<class_FontVariation_property_base_font>` fallback are ussed.
+
+----
+
+.. _class_FontVariation_property_opentype_features:
+
+- :ref:`Dictionary<class_Dictionary>` **opentype_features**
+
++-----------+------------------------------+
+| *Default* | ``{}``                       |
++-----------+------------------------------+
+| *Setter*  | set_opentype_features(value) |
++-----------+------------------------------+
+| *Getter*  | get_opentype_features()      |
++-----------+------------------------------+
+
+A set of OpenType feature tags. More info: `OpenType feature tags <https://docs.microsoft.com/en-us/typography/opentype/spec/featuretags>`__.
+
+----
+
+.. _class_FontVariation_property_spacing_bottom:
+
+- :ref:`int<class_int>` **spacing_bottom**
+
++-----------+--------------------+
+| *Default* | ``0``              |
++-----------+--------------------+
+| *Setter*  | set_spacing(value) |
++-----------+--------------------+
+| *Getter*  | get_spacing()      |
++-----------+--------------------+
+
+Extra spacing at the bottom of the line in pixels.
+
+----
+
+.. _class_FontVariation_property_spacing_glyph:
+
+- :ref:`int<class_int>` **spacing_glyph**
+
++-----------+--------------------+
+| *Default* | ``0``              |
++-----------+--------------------+
+| *Setter*  | set_spacing(value) |
++-----------+--------------------+
+| *Getter*  | get_spacing()      |
++-----------+--------------------+
+
+Extra spacing between graphical glyphs
+
+----
+
+.. _class_FontVariation_property_spacing_space:
+
+- :ref:`int<class_int>` **spacing_space**
+
++-----------+--------------------+
+| *Default* | ``0``              |
++-----------+--------------------+
+| *Setter*  | set_spacing(value) |
++-----------+--------------------+
+| *Getter*  | get_spacing()      |
++-----------+--------------------+
+
+Extra width of the space glyphs.
+
+----
+
+.. _class_FontVariation_property_spacing_top:
+
+- :ref:`int<class_int>` **spacing_top**
+
++-----------+--------------------+
+| *Default* | ``0``              |
++-----------+--------------------+
+| *Setter*  | set_spacing(value) |
++-----------+--------------------+
+| *Getter*  | get_spacing()      |
++-----------+--------------------+
+
+Extra spacing at the top of the line in pixels.
+
+----
+
+.. _class_FontVariation_property_variation_embolden:
+
+- :ref:`float<class_float>` **variation_embolden**
+
++-----------+-------------------------------+
+| *Default* | ``0.0``                       |
++-----------+-------------------------------+
+| *Setter*  | set_variation_embolden(value) |
++-----------+-------------------------------+
+| *Getter*  | get_variation_embolden()      |
++-----------+-------------------------------+
+
+If is not equal to zero, emboldens the font outlines. Negative values reduce the outline thickness.
+
+\ **Note:** Emboldened fonts might have self-intersecting outlines, which will prevent MSDF fonts and :ref:`TextMesh<class_TextMesh>` from working correctly.
+
+----
+
+.. _class_FontVariation_property_variation_face_index:
+
+- :ref:`int<class_int>` **variation_face_index**
+
++-----------+---------------------------------+
+| *Default* | ``0``                           |
++-----------+---------------------------------+
+| *Setter*  | set_variation_face_index(value) |
++-----------+---------------------------------+
+| *Getter*  | get_variation_face_index()      |
++-----------+---------------------------------+
+
+Active face index in the TrueType / OpenType collection file.
+
+----
+
+.. _class_FontVariation_property_variation_opentype:
+
+- :ref:`Dictionary<class_Dictionary>` **variation_opentype**
+
++-----------+-------------------------------+
+| *Default* | ``{}``                        |
++-----------+-------------------------------+
+| *Setter*  | set_variation_opentype(value) |
++-----------+-------------------------------+
+| *Getter*  | get_variation_opentype()      |
++-----------+-------------------------------+
+
+Font OpenType variation coordinates. More info: `OpenType variation tags <https://docs.microsoft.com/en-us/typography/opentype/spec/dvaraxisreg>`__.
+
+----
+
+.. _class_FontVariation_property_variation_transform:
+
+- :ref:`Transform2D<class_Transform2D>` **variation_transform**
+
++-----------+-----------------------------------+
+| *Default* | ``Transform2D(1, 0, 0, 1, 0, 0)`` |
++-----------+-----------------------------------+
+| *Setter*  | set_variation_transform(value)    |
++-----------+-----------------------------------+
+| *Getter*  | get_variation_transform()         |
++-----------+-----------------------------------+
+
+2D transform, applied to the font outlines, can be used for slanting, flipping and rotating glyphs.
+
+For example, to simulate italic typeface by slanting, apply the following transform ``Transform2D(1.0, slant, 0.0, 1.0, 0.0, 0.0)``.
+
+Method Descriptions
+-------------------
+
+.. _class_FontVariation_method_set_spacing:
+
+- void **set_spacing** **(** :ref:`SpacingType<enum_TextServer_SpacingType>` spacing, :ref:`int<class_int>` value **)**
+
+Sets the spacing for ``type`` (see :ref:`SpacingType<enum_TextServer_SpacingType>`) to ``value`` in pixels (not relative to the font size).
+
+.. |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.)`
+.. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
+.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`
+.. |operator| replace:: :abbr:`operator (This method describes a valid operator to use with this type as left-hand operand.)`

+ 0 - 30
classes/class_graphnode.rst

@@ -53,8 +53,6 @@ Methods
 +-------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                          | :ref:`clear_all_slots<class_GraphNode_method_clear_all_slots>` **(** **)**                                                                                                                                                                                                                                                                                                                                                                                      |
 +-------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                          | :ref:`clear_opentype_features<class_GraphNode_method_clear_opentype_features>` **(** **)**                                                                                                                                                                                                                                                                                                                                                                      |
-+-------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                          | :ref:`clear_slot<class_GraphNode_method_clear_slot>` **(** :ref:`int<class_int>` idx **)**                                                                                                                                                                                                                                                                                                                                                                      |
 +-------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`Color<class_Color>`     | :ref:`get_connection_input_color<class_GraphNode_method_get_connection_input_color>` **(** :ref:`int<class_int>` idx **)**                                                                                                                                                                                                                                                                                                                                      |
@@ -77,8 +75,6 @@ Methods
 +-------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`int<class_int>`         | :ref:`get_connection_output_type<class_GraphNode_method_get_connection_output_type>` **(** :ref:`int<class_int>` idx **)**                                                                                                                                                                                                                                                                                                                                      |
 +-------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`         | :ref:`get_opentype_feature<class_GraphNode_method_get_opentype_feature>` **(** :ref:`String<class_String>` tag **)** |const|                                                                                                                                                                                                                                                                                                                                    |
-+-------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`Color<class_Color>`     | :ref:`get_slot_color_left<class_GraphNode_method_get_slot_color_left>` **(** :ref:`int<class_int>` idx **)** |const|                                                                                                                                                                                                                                                                                                                                            |
 +-------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`Color<class_Color>`     | :ref:`get_slot_color_right<class_GraphNode_method_get_slot_color_right>` **(** :ref:`int<class_int>` idx **)** |const|                                                                                                                                                                                                                                                                                                                                          |
@@ -93,8 +89,6 @@ Methods
 +-------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`bool<class_bool>`       | :ref:`is_slot_enabled_right<class_GraphNode_method_is_slot_enabled_right>` **(** :ref:`int<class_int>` idx **)** |const|                                                                                                                                                                                                                                                                                                                                        |
 +-------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                          | :ref:`set_opentype_feature<class_GraphNode_method_set_opentype_feature>` **(** :ref:`String<class_String>` tag, :ref:`int<class_int>` value **)**                                                                                                                                                                                                                                                                                                               |
-+-------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                          | :ref:`set_slot<class_GraphNode_method_set_slot>` **(** :ref:`int<class_int>` idx, :ref:`bool<class_bool>` enable_left, :ref:`int<class_int>` type_left, :ref:`Color<class_Color>` color_left, :ref:`bool<class_bool>` enable_right, :ref:`int<class_int>` type_right, :ref:`Color<class_Color>` color_right, :ref:`Texture2D<class_Texture2D>` custom_left=null, :ref:`Texture2D<class_Texture2D>` custom_right=null, :ref:`bool<class_bool>` enable=true **)** |
 +-------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                          | :ref:`set_slot_color_left<class_GraphNode_method_set_slot_color_left>` **(** :ref:`int<class_int>` idx, :ref:`Color<class_Color>` color_left **)**                                                                                                                                                                                                                                                                                                              |
@@ -385,14 +379,6 @@ Disables all input and output slots of the GraphNode.
 
 ----
 
-.. _class_GraphNode_method_clear_opentype_features:
-
-- void **clear_opentype_features** **(** **)**
-
-Removes all OpenType features.
-
-----
-
 .. _class_GraphNode_method_clear_slot:
 
 - void **clear_slot** **(** :ref:`int<class_int>` idx **)**
@@ -481,14 +467,6 @@ Returns the type of the output connection ``idx``.
 
 ----
 
-.. _class_GraphNode_method_get_opentype_feature:
-
-- :ref:`int<class_int>` **get_opentype_feature** **(** :ref:`String<class_String>` tag **)** |const|
-
-Returns OpenType feature ``tag``.
-
-----
-
 .. _class_GraphNode_method_get_slot_color_left:
 
 - :ref:`Color<class_Color>` **get_slot_color_left** **(** :ref:`int<class_int>` idx **)** |const|
@@ -545,14 +523,6 @@ Returns ``true`` if right (output) side of the slot ``idx`` is enabled.
 
 ----
 
-.. _class_GraphNode_method_set_opentype_feature:
-
-- void **set_opentype_feature** **(** :ref:`String<class_String>` tag, :ref:`int<class_int>` value **)**
-
-Sets OpenType feature ``tag``. More info: `OpenType feature tags <https://docs.microsoft.com/en-us/typography/opentype/spec/featuretags>`__.
-
-----
-
 .. _class_GraphNode_method_set_slot:
 
 - void **set_slot** **(** :ref:`int<class_int>` idx, :ref:`bool<class_bool>` enable_left, :ref:`int<class_int>` type_left, :ref:`Color<class_Color>` color_left, :ref:`bool<class_bool>` enable_right, :ref:`int<class_int>` type_right, :ref:`Color<class_Color>` color_right, :ref:`Texture2D<class_Texture2D>` custom_left=null, :ref:`Texture2D<class_Texture2D>` custom_right=null, :ref:`bool<class_bool>` enable=true **)**

+ 3 - 2
classes/class_httprequest.rst

@@ -132,8 +132,7 @@ Can be used to make HTTP requests, i.e. download or upload files or web content
         if error != OK:
             push_error("Couldn't load the image.")
     
-        var texture = ImageTexture.new()
-        texture.create_from_image(image)
+        var texture = ImageTexture.create_from_image(image)
     
         # Display the image in a TextureRect node.
         var texture_rect = TextureRect.new()
@@ -406,6 +405,8 @@ Maximum number of allowed redirects.
 | *Getter*  | get_timeout()      |
 +-----------+--------------------+
 
+If set to a value greater than ``0.0`` before the request starts, the HTTP request will time out after ``timeout`` seconds have passed and the request is not *completed* yet. For small HTTP requests such as REST API usage, set :ref:`timeout<class_HTTPRequest_property_timeout>` to a value between ``10.0`` and ``30.0`` to prevent the application from getting stuck if the request fails to get a response in a timely manner. For file downloads, leave this to ``0.0`` to prevent the download from failing if it takes too much time.
+
 ----
 
 .. _class_HTTPRequest_property_use_threads:

+ 45 - 15
classes/class_image.rst

@@ -40,13 +40,13 @@ 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:`Rect2<class_Rect2>` src_rect, :ref:`Vector2<class_Vector2>` dst **)**                                                                                                    |
+| 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:`Rect2<class_Rect2>` src_rect, :ref:`Vector2<class_Vector2>` 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:`Rect2<class_Rect2>` src_rect, :ref:`Vector2<class_Vector2>` 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:`Rect2<class_Rect2>` src_rect, :ref:`Vector2<class_Vector2>` 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 **)**                                                                                                                                        |
 +-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
@@ -76,7 +76,7 @@ Methods
 +-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                                          | :ref:`fill<class_Image_method_fill>` **(** :ref:`Color<class_Color>` color **)**                                                                                                                                                                                     |
 +-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                          | :ref:`fill_rect<class_Image_method_fill_rect>` **(** :ref:`Rect2<class_Rect2>` rect, :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>` **(** **)**                                                                                                                                                                                               |
 +-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
@@ -98,11 +98,11 @@ Methods
 +-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :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:`Rect2<class_Rect2>` rect **)** |const|                                                                                                                                                                      |
+| :ref:`Image<class_Image>`                     | :ref:`get_rect<class_Image_method_get_rect>` **(** :ref:`Rect2i<class_Rect2i>` rect **)** |const|                                                                                                                                                                    |
 +-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`Vector2<class_Vector2>`                 | :ref:`get_size<class_Image_method_get_size>` **(** **)** |const|                                                                                                                                                                                                     |
 +-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Rect2<class_Rect2>`                     | :ref:`get_used_rect<class_Image_method_get_used_rect>` **(** **)** |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|                                                                                                                                                                                                   |
 +-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
@@ -118,6 +118,8 @@ Methods
 +-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :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 **)**                                                                                                                                |
@@ -136,6 +138,10 @@ Methods
 +-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :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|                                                                                                                                         |
@@ -487,7 +493,7 @@ Method Descriptions
 
 .. _class_Image_method_blend_rect:
 
-- void **blend_rect** **(** :ref:`Image<class_Image>` src, :ref:`Rect2<class_Rect2>` src_rect, :ref:`Vector2<class_Vector2>` dst **)**
+- 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 ``dest``, 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.
 
@@ -495,7 +501,7 @@ Alpha-blends ``src_rect`` from ``src`` image to this image at coordinates ``dest
 
 .. _class_Image_method_blend_rect_mask:
 
-- void **blend_rect_mask** **(** :ref:`Image<class_Image>` src, :ref:`Image<class_Image>` mask, :ref:`Rect2<class_Rect2>` src_rect, :ref:`Vector2<class_Vector2>` 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.
 
@@ -503,7 +509,7 @@ Alpha-blends ``src_rect`` from ``src`` image to this image using ``mask`` image
 
 .. _class_Image_method_blit_rect:
 
-- void **blit_rect** **(** :ref:`Image<class_Image>` src, :ref:`Rect2<class_Rect2>` src_rect, :ref:`Vector2<class_Vector2>` dst **)**
+- 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.
 
@@ -511,7 +517,7 @@ Copies ``src_rect`` from ``src`` image to this image at coordinates ``dst``, cli
 
 .. _class_Image_method_blit_rect_mask:
 
-- void **blit_rect_mask** **(** :ref:`Image<class_Image>` src, :ref:`Image<class_Image>` mask, :ref:`Rect2<class_Rect2>` src_rect, :ref:`Vector2<class_Vector2>` dst **)**
+- 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.
 
@@ -631,7 +637,7 @@ Fills the image with ``color``.
 
 .. _class_Image_method_fill_rect:
 
-- void **fill_rect** **(** :ref:`Rect2<class_Rect2>` rect, :ref:`Color<class_Color>` color **)**
+- void **fill_rect** **(** :ref:`Rect2i<class_Rect2i>` rect, :ref:`Color<class_Color>` color **)**
 
 Fills ``rect`` with ``color``.
 
@@ -725,7 +731,7 @@ This is the same as :ref:`get_pixel<class_Image_method_get_pixel>`, but with a :
 
 .. _class_Image_method_get_rect:
 
-- :ref:`Image<class_Image>` **get_rect** **(** :ref:`Rect2<class_Rect2>` rect **)** |const|
+- :ref:`Image<class_Image>` **get_rect** **(** :ref:`Rect2i<class_Rect2i>` rect **)** |const|
 
 Returns a new image that is a copy of the image's area specified with ``rect``.
 
@@ -741,9 +747,9 @@ Returns the image's size (width and height).
 
 .. _class_Image_method_get_used_rect:
 
-- :ref:`Rect2<class_Rect2>` **get_used_rect** **(** **)** |const|
+- :ref:`Rect2i<class_Rect2i>` **get_used_rect** **(** **)** |const|
 
-Returns a :ref:`Rect2<class_Rect2>` enclosing the visible portion of the image, considering each pixel with a non-zero alpha channel as visible.
+Returns a :ref:`Rect2i<class_Rect2i>` enclosing the visible portion of the image, considering each pixel with a non-zero alpha channel as visible.
 
 ----
 
@@ -809,6 +815,14 @@ Loads an image from the binary contents of a BMP file.
 
 ----
 
+.. _class_Image_method_load_from_file:
+
+- :ref:`Image<class_Image>` **load_from_file** **(** :ref:`String<class_String>` path **)** |static|
+
+Creates a new ``Image`` and loads data from the specified file.
+
+----
+
 .. _class_Image_method_load_jpg_from_buffer:
 
 - :ref:`Error<enum_@GlobalScope_Error>` **load_jpg_from_buffer** **(** :ref:`PackedByteArray<class_PackedByteArray>` buffer **)**
@@ -881,6 +895,22 @@ Converts a standard RGBE (Red Green Blue Exponent) image to an sRGB image.
 
 ----
 
+.. _class_Image_method_rotate_180:
+
+- void **rotate_180** **(** **)**
+
+Rotates the image by ``180`` degrees. The width and height of the image must be greater than ``1``.
+
+----
+
+.. _class_Image_method_rotate_90:
+
+- void **rotate_90** **(** :ref:`ClockDirection<enum_@GlobalScope_ClockDirection>` direction **)**
+
+Rotates the image in the specified ``direction`` by ``90`` degrees. The width and height of the image must be greater than ``1``. If the width and height are not equal, the image will be resized.
+
+----
+
 .. _class_Image_method_save_exr:
 
 - :ref:`Error<enum_@GlobalScope_Error>` **save_exr** **(** :ref:`String<class_String>` path, :ref:`bool<class_bool>` grayscale=false **)** |const|

+ 28 - 18
classes/class_imagetexture.rst

@@ -20,10 +20,8 @@ A :ref:`Texture2D<class_Texture2D>` based on an :ref:`Image<class_Image>`. For a
 
 ::
 
-    var texture = ImageTexture.new()
-    var image = Image.new()
-    image.load("res://icon.png")
-    texture.create_from_image(image)
+    var image = Image.load_from_file("res://icon.png")
+    var texture = ImageTexture.create_from_image(image)
     $Sprite2D.texture = texture
 
 This way, textures can be created at run-time by loading images both from within the editor and externally.
@@ -56,24 +54,26 @@ Tutorials
 Methods
 -------
 
-+----------------------------------+----------------------------------------------------------------------------------------------------------------------+
-| void                             | :ref:`create_from_image<class_ImageTexture_method_create_from_image>` **(** :ref:`Image<class_Image>` image **)**    |
-+----------------------------------+----------------------------------------------------------------------------------------------------------------------+
-| :ref:`Format<enum_Image_Format>` | :ref:`get_format<class_ImageTexture_method_get_format>` **(** **)** |const|                                          |
-+----------------------------------+----------------------------------------------------------------------------------------------------------------------+
-| void                             | :ref:`set_size_override<class_ImageTexture_method_set_size_override>` **(** :ref:`Vector2<class_Vector2>` size **)** |
-+----------------------------------+----------------------------------------------------------------------------------------------------------------------+
-| void                             | :ref:`update<class_ImageTexture_method_update>` **(** :ref:`Image<class_Image>` image **)**                          |
-+----------------------------------+----------------------------------------------------------------------------------------------------------------------+
++-----------------------------------------+----------------------------------------------------------------------------------------------------------------------------+
+| :ref:`ImageTexture<class_ImageTexture>` | :ref:`create_from_image<class_ImageTexture_method_create_from_image>` **(** :ref:`Image<class_Image>` image **)** |static| |
++-----------------------------------------+----------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Format<enum_Image_Format>`        | :ref:`get_format<class_ImageTexture_method_get_format>` **(** **)** |const|                                                |
++-----------------------------------------+----------------------------------------------------------------------------------------------------------------------------+
+| void                                    | :ref:`set_image<class_ImageTexture_method_set_image>` **(** :ref:`Image<class_Image>` image **)**                          |
++-----------------------------------------+----------------------------------------------------------------------------------------------------------------------------+
+| void                                    | :ref:`set_size_override<class_ImageTexture_method_set_size_override>` **(** :ref:`Vector2i<class_Vector2i>` size **)**     |
++-----------------------------------------+----------------------------------------------------------------------------------------------------------------------------+
+| void                                    | :ref:`update<class_ImageTexture_method_update>` **(** :ref:`Image<class_Image>` image **)**                                |
++-----------------------------------------+----------------------------------------------------------------------------------------------------------------------------+
 
 Method Descriptions
 -------------------
 
 .. _class_ImageTexture_method_create_from_image:
 
-- void **create_from_image** **(** :ref:`Image<class_Image>` image **)**
+- :ref:`ImageTexture<class_ImageTexture>` **create_from_image** **(** :ref:`Image<class_Image>` image **)** |static|
 
-Initializes the texture by allocating and setting the data from an :ref:`Image<class_Image>`.
+Creates a new ``ImageTexture`` and initializes it by allocating and setting the data from an :ref:`Image<class_Image>`.
 
 ----
 
@@ -85,9 +85,19 @@ Returns the format of the texture, one of :ref:`Format<enum_Image_Format>`.
 
 ----
 
+.. _class_ImageTexture_method_set_image:
+
+- void **set_image** **(** :ref:`Image<class_Image>` image **)**
+
+Replaces the texture's data with a new :ref:`Image<class_Image>`. This will re-allocate new memory for the texture.
+
+If you want to update the image, but don't need to change its parameters (format, size), use :ref:`update<class_ImageTexture_method_update>` instead for better performance.
+
+----
+
 .. _class_ImageTexture_method_set_size_override:
 
-- void **set_size_override** **(** :ref:`Vector2<class_Vector2>` size **)**
+- void **set_size_override** **(** :ref:`Vector2i<class_Vector2i>` size **)**
 
 Resizes the texture to the specified dimensions.
 
@@ -99,9 +109,9 @@ Resizes the texture to the specified dimensions.
 
 Replaces the texture's data with a new :ref:`Image<class_Image>`.
 
-\ **Note:** The texture has to be initialized first with the :ref:`create_from_image<class_ImageTexture_method_create_from_image>` method before it can be updated. The new image dimensions, format, and mipmaps configuration should match the existing texture's image configuration, otherwise it has to be re-created with the :ref:`create_from_image<class_ImageTexture_method_create_from_image>` method.
+\ **Note:** The texture has to be created using :ref:`create_from_image<class_ImageTexture_method_create_from_image>` or initialized first with the :ref:`set_image<class_ImageTexture_method_set_image>` method before it can be updated. The new image dimensions, format, and mipmaps configuration should match the existing texture's image configuration.
 
-Use this method over :ref:`create_from_image<class_ImageTexture_method_create_from_image>` if you need to update the texture frequently, which is faster than allocating additional memory for a new texture each time.
+Use this method over :ref:`set_image<class_ImageTexture_method_set_image>` if you need to update the texture frequently, which is faster than allocating additional memory for a new texture each time.
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`

+ 2 - 0
classes/class_input.rst

@@ -270,6 +270,8 @@ If ``true``, similar input events sent by the operating system are accumulated.
 
 Input accumulation can be disabled to get slightly more precise/reactive input at the cost of increased CPU usage. In applications where drawing freehand lines is required, input accumulation should generally be disabled while the user is drawing the line to get results that closely follow the actual input.
 
+\ **Note:** Input accumulation is *enabled* by default.
+
 Method Descriptions
 -------------------
 

+ 29 - 9
classes/class_inputeventmousemotion.rst

@@ -30,19 +30,39 @@ Tutorials
 Properties
 ----------
 
-+-------------------------------+----------------------------------------------------------------+-------------------+
-| :ref:`float<class_float>`     | :ref:`pressure<class_InputEventMouseMotion_property_pressure>` | ``0.0``           |
-+-------------------------------+----------------------------------------------------------------+-------------------+
-| :ref:`Vector2<class_Vector2>` | :ref:`relative<class_InputEventMouseMotion_property_relative>` | ``Vector2(0, 0)`` |
-+-------------------------------+----------------------------------------------------------------+-------------------+
-| :ref:`Vector2<class_Vector2>` | :ref:`tilt<class_InputEventMouseMotion_property_tilt>`         | ``Vector2(0, 0)`` |
-+-------------------------------+----------------------------------------------------------------+-------------------+
-| :ref:`Vector2<class_Vector2>` | :ref:`velocity<class_InputEventMouseMotion_property_velocity>` | ``Vector2(0, 0)`` |
-+-------------------------------+----------------------------------------------------------------+-------------------+
++-------------------------------+------------------------------------------------------------------------+-------------------+
+| :ref:`bool<class_bool>`       | :ref:`pen_inverted<class_InputEventMouseMotion_property_pen_inverted>` | ``false``         |
++-------------------------------+------------------------------------------------------------------------+-------------------+
+| :ref:`float<class_float>`     | :ref:`pressure<class_InputEventMouseMotion_property_pressure>`         | ``0.0``           |
++-------------------------------+------------------------------------------------------------------------+-------------------+
+| :ref:`Vector2<class_Vector2>` | :ref:`relative<class_InputEventMouseMotion_property_relative>`         | ``Vector2(0, 0)`` |
++-------------------------------+------------------------------------------------------------------------+-------------------+
+| :ref:`Vector2<class_Vector2>` | :ref:`tilt<class_InputEventMouseMotion_property_tilt>`                 | ``Vector2(0, 0)`` |
++-------------------------------+------------------------------------------------------------------------+-------------------+
+| :ref:`Vector2<class_Vector2>` | :ref:`velocity<class_InputEventMouseMotion_property_velocity>`         | ``Vector2(0, 0)`` |
++-------------------------------+------------------------------------------------------------------------+-------------------+
 
 Property Descriptions
 ---------------------
 
+.. _class_InputEventMouseMotion_property_pen_inverted:
+
+- :ref:`bool<class_bool>` **pen_inverted**
+
++-----------+-------------------------+
+| *Default* | ``false``               |
++-----------+-------------------------+
+| *Setter*  | set_pen_inverted(value) |
++-----------+-------------------------+
+| *Getter*  | get_pen_inverted()      |
++-----------+-------------------------+
+
+Returns ``true`` when using the eraser end of a stylus pen.
+
+\ **Note:** This property is implemented on Linux, macOS and Windows.
+
+----
+
 .. _class_InputEventMouseMotion_property_pressure:
 
 - :ref:`float<class_float>` **pressure**

+ 12 - 0
classes/class_int.rst

@@ -90,6 +90,10 @@ Operators
 +-------------------------------------+------------------------------------------------------------------------------------------------------------+
 | :ref:`Vector3i<class_Vector3i>`     | :ref:`operator *<class_int_operator_mul_Vector3i>` **(** :ref:`Vector3i<class_Vector3i>` right **)**       |
 +-------------------------------------+------------------------------------------------------------------------------------------------------------+
+| :ref:`Vector4<class_Vector4>`       | :ref:`operator *<class_int_operator_mul_Vector4>` **(** :ref:`Vector4<class_Vector4>` right **)**          |
++-------------------------------------+------------------------------------------------------------------------------------------------------------+
+| :ref:`Vector4i<class_Vector4i>`     | :ref:`operator *<class_int_operator_mul_Vector4i>` **(** :ref:`Vector4i<class_Vector4i>` right **)**       |
++-------------------------------------+------------------------------------------------------------------------------------------------------------+
 | :ref:`float<class_float>`           | :ref:`operator *<class_int_operator_mul_float>` **(** :ref:`float<class_float>` right **)**                |
 +-------------------------------------+------------------------------------------------------------------------------------------------------------+
 | :ref:`int<class_int>`               | :ref:`operator *<class_int_operator_mul_int>` **(** :ref:`int<class_int>` right **)**                      |
@@ -269,6 +273,14 @@ Multiplies each component of the :ref:`Vector3i<class_Vector3i>` by the given ``
 
 ----
 
+- :ref:`Vector4<class_Vector4>` **operator *** **(** :ref:`Vector4<class_Vector4>` right **)**
+
+----
+
+- :ref:`Vector4i<class_Vector4i>` **operator *** **(** :ref:`Vector4i<class_Vector4i>` right **)**
+
+----
+
 - :ref:`float<class_float>` **operator *** **(** :ref:`float<class_float>` right **)**
 
 Multiplies an ``int`` and a :ref:`float<class_float>`. The result is a :ref:`float<class_float>`.

+ 87 - 117
classes/class_itemlist.rst

@@ -64,99 +64,93 @@ Properties
 Methods
 -------
 
-+--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                            | :ref:`add_icon_item<class_ItemList_method_add_icon_item>` **(** :ref:`Texture2D<class_Texture2D>` icon, :ref:`bool<class_bool>` selectable=true **)**                                 |
-+--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                            | :ref:`add_item<class_ItemList_method_add_item>` **(** :ref:`String<class_String>` text, :ref:`Texture2D<class_Texture2D>` icon=null, :ref:`bool<class_bool>` selectable=true **)**    |
-+--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                             | :ref:`clear<class_ItemList_method_clear>` **(** **)**                                                                                                                                 |
-+--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                             | :ref:`clear_item_opentype_features<class_ItemList_method_clear_item_opentype_features>` **(** :ref:`int<class_int>` idx **)**                                                         |
-+--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                             | :ref:`deselect<class_ItemList_method_deselect>` **(** :ref:`int<class_int>` idx **)**                                                                                                 |
-+--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                             | :ref:`deselect_all<class_ItemList_method_deselect_all>` **(** **)**                                                                                                                   |
-+--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                             | :ref:`ensure_current_is_visible<class_ItemList_method_ensure_current_is_visible>` **(** **)**                                                                                         |
-+--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                            | :ref:`get_item_at_position<class_ItemList_method_get_item_at_position>` **(** :ref:`Vector2<class_Vector2>` position, :ref:`bool<class_bool>` exact=false **)** |const|               |
-+--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Color<class_Color>`                        | :ref:`get_item_custom_bg_color<class_ItemList_method_get_item_custom_bg_color>` **(** :ref:`int<class_int>` idx **)** |const|                                                         |
-+--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Color<class_Color>`                        | :ref:`get_item_custom_fg_color<class_ItemList_method_get_item_custom_fg_color>` **(** :ref:`int<class_int>` idx **)** |const|                                                         |
-+--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Texture2D<class_Texture2D>`                | :ref:`get_item_icon<class_ItemList_method_get_item_icon>` **(** :ref:`int<class_int>` idx **)** |const|                                                                               |
-+--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Color<class_Color>`                        | :ref:`get_item_icon_modulate<class_ItemList_method_get_item_icon_modulate>` **(** :ref:`int<class_int>` idx **)** |const|                                                             |
-+--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Rect2<class_Rect2>`                        | :ref:`get_item_icon_region<class_ItemList_method_get_item_icon_region>` **(** :ref:`int<class_int>` idx **)** |const|                                                                 |
-+--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_String>`                      | :ref:`get_item_language<class_ItemList_method_get_item_language>` **(** :ref:`int<class_int>` idx **)** |const|                                                                       |
-+--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Variant<class_Variant>`                    | :ref:`get_item_metadata<class_ItemList_method_get_item_metadata>` **(** :ref:`int<class_int>` idx **)** |const|                                                                       |
-+--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                            | :ref:`get_item_opentype_feature<class_ItemList_method_get_item_opentype_feature>` **(** :ref:`int<class_int>` idx, :ref:`String<class_String>` tag **)** |const|                      |
-+--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_String>`                      | :ref:`get_item_text<class_ItemList_method_get_item_text>` **(** :ref:`int<class_int>` idx **)** |const|                                                                               |
-+--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`TextDirection<enum_Control_TextDirection>` | :ref:`get_item_text_direction<class_ItemList_method_get_item_text_direction>` **(** :ref:`int<class_int>` idx **)** |const|                                                           |
-+--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_String>`                      | :ref:`get_item_tooltip<class_ItemList_method_get_item_tooltip>` **(** :ref:`int<class_int>` idx **)** |const|                                                                         |
-+--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`PackedInt32Array<class_PackedInt32Array>`  | :ref:`get_selected_items<class_ItemList_method_get_selected_items>` **(** **)**                                                                                                       |
-+--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`VScrollBar<class_VScrollBar>`              | :ref:`get_v_scroll_bar<class_ItemList_method_get_v_scroll_bar>` **(** **)**                                                                                                           |
-+--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                          | :ref:`is_anything_selected<class_ItemList_method_is_anything_selected>` **(** **)**                                                                                                   |
-+--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                          | :ref:`is_item_disabled<class_ItemList_method_is_item_disabled>` **(** :ref:`int<class_int>` idx **)** |const|                                                                         |
-+--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                          | :ref:`is_item_icon_transposed<class_ItemList_method_is_item_icon_transposed>` **(** :ref:`int<class_int>` idx **)** |const|                                                           |
-+--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                          | :ref:`is_item_selectable<class_ItemList_method_is_item_selectable>` **(** :ref:`int<class_int>` idx **)** |const|                                                                     |
-+--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                          | :ref:`is_item_tooltip_enabled<class_ItemList_method_is_item_tooltip_enabled>` **(** :ref:`int<class_int>` idx **)** |const|                                                           |
-+--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                          | :ref:`is_selected<class_ItemList_method_is_selected>` **(** :ref:`int<class_int>` idx **)** |const|                                                                                   |
-+--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                             | :ref:`move_item<class_ItemList_method_move_item>` **(** :ref:`int<class_int>` from_idx, :ref:`int<class_int>` to_idx **)**                                                            |
-+--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                             | :ref:`remove_item<class_ItemList_method_remove_item>` **(** :ref:`int<class_int>` idx **)**                                                                                           |
-+--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                             | :ref:`select<class_ItemList_method_select>` **(** :ref:`int<class_int>` idx, :ref:`bool<class_bool>` single=true **)**                                                                |
-+--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                             | :ref:`set_item_custom_bg_color<class_ItemList_method_set_item_custom_bg_color>` **(** :ref:`int<class_int>` idx, :ref:`Color<class_Color>` custom_bg_color **)**                      |
-+--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                             | :ref:`set_item_custom_fg_color<class_ItemList_method_set_item_custom_fg_color>` **(** :ref:`int<class_int>` idx, :ref:`Color<class_Color>` custom_fg_color **)**                      |
-+--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                             | :ref:`set_item_disabled<class_ItemList_method_set_item_disabled>` **(** :ref:`int<class_int>` idx, :ref:`bool<class_bool>` disabled **)**                                             |
-+--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                             | :ref:`set_item_icon<class_ItemList_method_set_item_icon>` **(** :ref:`int<class_int>` idx, :ref:`Texture2D<class_Texture2D>` icon **)**                                               |
-+--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                             | :ref:`set_item_icon_modulate<class_ItemList_method_set_item_icon_modulate>` **(** :ref:`int<class_int>` idx, :ref:`Color<class_Color>` modulate **)**                                 |
-+--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                             | :ref:`set_item_icon_region<class_ItemList_method_set_item_icon_region>` **(** :ref:`int<class_int>` idx, :ref:`Rect2<class_Rect2>` rect **)**                                         |
-+--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                             | :ref:`set_item_icon_transposed<class_ItemList_method_set_item_icon_transposed>` **(** :ref:`int<class_int>` idx, :ref:`bool<class_bool>` transposed **)**                             |
-+--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                             | :ref:`set_item_language<class_ItemList_method_set_item_language>` **(** :ref:`int<class_int>` idx, :ref:`String<class_String>` language **)**                                         |
-+--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                             | :ref:`set_item_metadata<class_ItemList_method_set_item_metadata>` **(** :ref:`int<class_int>` idx, :ref:`Variant<class_Variant>` metadata **)**                                       |
-+--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                             | :ref:`set_item_opentype_feature<class_ItemList_method_set_item_opentype_feature>` **(** :ref:`int<class_int>` idx, :ref:`String<class_String>` tag, :ref:`int<class_int>` value **)** |
-+--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                             | :ref:`set_item_selectable<class_ItemList_method_set_item_selectable>` **(** :ref:`int<class_int>` idx, :ref:`bool<class_bool>` selectable **)**                                       |
-+--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                             | :ref:`set_item_text<class_ItemList_method_set_item_text>` **(** :ref:`int<class_int>` idx, :ref:`String<class_String>` text **)**                                                     |
-+--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                             | :ref:`set_item_text_direction<class_ItemList_method_set_item_text_direction>` **(** :ref:`int<class_int>` idx, :ref:`TextDirection<enum_Control_TextDirection>` direction **)**       |
-+--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                             | :ref:`set_item_tooltip<class_ItemList_method_set_item_tooltip>` **(** :ref:`int<class_int>` idx, :ref:`String<class_String>` tooltip **)**                                            |
-+--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                             | :ref:`set_item_tooltip_enabled<class_ItemList_method_set_item_tooltip_enabled>` **(** :ref:`int<class_int>` idx, :ref:`bool<class_bool>` enable **)**                                 |
-+--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                             | :ref:`sort_items_by_text<class_ItemList_method_sort_items_by_text>` **(** **)**                                                                                                       |
-+--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
++--------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                            | :ref:`add_icon_item<class_ItemList_method_add_icon_item>` **(** :ref:`Texture2D<class_Texture2D>` icon, :ref:`bool<class_bool>` selectable=true **)**                              |
++--------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                            | :ref:`add_item<class_ItemList_method_add_item>` **(** :ref:`String<class_String>` text, :ref:`Texture2D<class_Texture2D>` icon=null, :ref:`bool<class_bool>` selectable=true **)** |
++--------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                             | :ref:`clear<class_ItemList_method_clear>` **(** **)**                                                                                                                              |
++--------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                             | :ref:`deselect<class_ItemList_method_deselect>` **(** :ref:`int<class_int>` idx **)**                                                                                              |
++--------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                             | :ref:`deselect_all<class_ItemList_method_deselect_all>` **(** **)**                                                                                                                |
++--------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                             | :ref:`ensure_current_is_visible<class_ItemList_method_ensure_current_is_visible>` **(** **)**                                                                                      |
++--------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                            | :ref:`get_item_at_position<class_ItemList_method_get_item_at_position>` **(** :ref:`Vector2<class_Vector2>` position, :ref:`bool<class_bool>` exact=false **)** |const|            |
++--------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Color<class_Color>`                        | :ref:`get_item_custom_bg_color<class_ItemList_method_get_item_custom_bg_color>` **(** :ref:`int<class_int>` idx **)** |const|                                                      |
++--------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Color<class_Color>`                        | :ref:`get_item_custom_fg_color<class_ItemList_method_get_item_custom_fg_color>` **(** :ref:`int<class_int>` idx **)** |const|                                                      |
++--------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Texture2D<class_Texture2D>`                | :ref:`get_item_icon<class_ItemList_method_get_item_icon>` **(** :ref:`int<class_int>` idx **)** |const|                                                                            |
++--------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Color<class_Color>`                        | :ref:`get_item_icon_modulate<class_ItemList_method_get_item_icon_modulate>` **(** :ref:`int<class_int>` idx **)** |const|                                                          |
++--------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Rect2<class_Rect2>`                        | :ref:`get_item_icon_region<class_ItemList_method_get_item_icon_region>` **(** :ref:`int<class_int>` idx **)** |const|                                                              |
++--------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`                      | :ref:`get_item_language<class_ItemList_method_get_item_language>` **(** :ref:`int<class_int>` idx **)** |const|                                                                    |
++--------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Variant<class_Variant>`                    | :ref:`get_item_metadata<class_ItemList_method_get_item_metadata>` **(** :ref:`int<class_int>` idx **)** |const|                                                                    |
++--------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`                      | :ref:`get_item_text<class_ItemList_method_get_item_text>` **(** :ref:`int<class_int>` idx **)** |const|                                                                            |
++--------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`TextDirection<enum_Control_TextDirection>` | :ref:`get_item_text_direction<class_ItemList_method_get_item_text_direction>` **(** :ref:`int<class_int>` idx **)** |const|                                                        |
++--------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`                      | :ref:`get_item_tooltip<class_ItemList_method_get_item_tooltip>` **(** :ref:`int<class_int>` idx **)** |const|                                                                      |
++--------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`PackedInt32Array<class_PackedInt32Array>`  | :ref:`get_selected_items<class_ItemList_method_get_selected_items>` **(** **)**                                                                                                    |
++--------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`VScrollBar<class_VScrollBar>`              | :ref:`get_v_scroll_bar<class_ItemList_method_get_v_scroll_bar>` **(** **)**                                                                                                        |
++--------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                          | :ref:`is_anything_selected<class_ItemList_method_is_anything_selected>` **(** **)**                                                                                                |
++--------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                          | :ref:`is_item_disabled<class_ItemList_method_is_item_disabled>` **(** :ref:`int<class_int>` idx **)** |const|                                                                      |
++--------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                          | :ref:`is_item_icon_transposed<class_ItemList_method_is_item_icon_transposed>` **(** :ref:`int<class_int>` idx **)** |const|                                                        |
++--------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                          | :ref:`is_item_selectable<class_ItemList_method_is_item_selectable>` **(** :ref:`int<class_int>` idx **)** |const|                                                                  |
++--------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                          | :ref:`is_item_tooltip_enabled<class_ItemList_method_is_item_tooltip_enabled>` **(** :ref:`int<class_int>` idx **)** |const|                                                        |
++--------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                          | :ref:`is_selected<class_ItemList_method_is_selected>` **(** :ref:`int<class_int>` idx **)** |const|                                                                                |
++--------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                             | :ref:`move_item<class_ItemList_method_move_item>` **(** :ref:`int<class_int>` from_idx, :ref:`int<class_int>` to_idx **)**                                                         |
++--------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                             | :ref:`remove_item<class_ItemList_method_remove_item>` **(** :ref:`int<class_int>` idx **)**                                                                                        |
++--------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                             | :ref:`select<class_ItemList_method_select>` **(** :ref:`int<class_int>` idx, :ref:`bool<class_bool>` single=true **)**                                                             |
++--------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                             | :ref:`set_item_custom_bg_color<class_ItemList_method_set_item_custom_bg_color>` **(** :ref:`int<class_int>` idx, :ref:`Color<class_Color>` custom_bg_color **)**                   |
++--------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                             | :ref:`set_item_custom_fg_color<class_ItemList_method_set_item_custom_fg_color>` **(** :ref:`int<class_int>` idx, :ref:`Color<class_Color>` custom_fg_color **)**                   |
++--------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                             | :ref:`set_item_disabled<class_ItemList_method_set_item_disabled>` **(** :ref:`int<class_int>` idx, :ref:`bool<class_bool>` disabled **)**                                          |
++--------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                             | :ref:`set_item_icon<class_ItemList_method_set_item_icon>` **(** :ref:`int<class_int>` idx, :ref:`Texture2D<class_Texture2D>` icon **)**                                            |
++--------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                             | :ref:`set_item_icon_modulate<class_ItemList_method_set_item_icon_modulate>` **(** :ref:`int<class_int>` idx, :ref:`Color<class_Color>` modulate **)**                              |
++--------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                             | :ref:`set_item_icon_region<class_ItemList_method_set_item_icon_region>` **(** :ref:`int<class_int>` idx, :ref:`Rect2<class_Rect2>` rect **)**                                      |
++--------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                             | :ref:`set_item_icon_transposed<class_ItemList_method_set_item_icon_transposed>` **(** :ref:`int<class_int>` idx, :ref:`bool<class_bool>` transposed **)**                          |
++--------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                             | :ref:`set_item_language<class_ItemList_method_set_item_language>` **(** :ref:`int<class_int>` idx, :ref:`String<class_String>` language **)**                                      |
++--------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                             | :ref:`set_item_metadata<class_ItemList_method_set_item_metadata>` **(** :ref:`int<class_int>` idx, :ref:`Variant<class_Variant>` metadata **)**                                    |
++--------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                             | :ref:`set_item_selectable<class_ItemList_method_set_item_selectable>` **(** :ref:`int<class_int>` idx, :ref:`bool<class_bool>` selectable **)**                                    |
++--------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                             | :ref:`set_item_text<class_ItemList_method_set_item_text>` **(** :ref:`int<class_int>` idx, :ref:`String<class_String>` text **)**                                                  |
++--------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                             | :ref:`set_item_text_direction<class_ItemList_method_set_item_text_direction>` **(** :ref:`int<class_int>` idx, :ref:`TextDirection<enum_Control_TextDirection>` direction **)**    |
++--------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                             | :ref:`set_item_tooltip<class_ItemList_method_set_item_tooltip>` **(** :ref:`int<class_int>` idx, :ref:`String<class_String>` tooltip **)**                                         |
++--------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                             | :ref:`set_item_tooltip_enabled<class_ItemList_method_set_item_tooltip_enabled>` **(** :ref:`int<class_int>` idx, :ref:`bool<class_bool>` enable **)**                              |
++--------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                             | :ref:`sort_items_by_text<class_ItemList_method_sort_items_by_text>` **(** **)**                                                                                                    |
++--------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 
 Theme Properties
 ----------------
@@ -523,14 +517,6 @@ Removes all items from the list.
 
 ----
 
-.. _class_ItemList_method_clear_item_opentype_features:
-
-- void **clear_item_opentype_features** **(** :ref:`int<class_int>` idx **)**
-
-Removes all OpenType features from the item's text.
-
-----
-
 .. _class_ItemList_method_deselect:
 
 - void **deselect** **(** :ref:`int<class_int>` idx **)**
@@ -621,14 +607,6 @@ Returns the metadata value of the specified index.
 
 ----
 
-.. _class_ItemList_method_get_item_opentype_feature:
-
-- :ref:`int<class_int>` **get_item_opentype_feature** **(** :ref:`int<class_int>` idx, :ref:`String<class_String>` tag **)** |const|
-
-Returns OpenType feature ``tag`` of the item's text.
-
-----
-
 .. _class_ItemList_method_get_item_text:
 
 - :ref:`String<class_String>` **get_item_text** **(** :ref:`int<class_int>` idx **)** |const|
@@ -819,14 +797,6 @@ Sets a value (of any type) to be stored with the item associated with the specif
 
 ----
 
-.. _class_ItemList_method_set_item_opentype_feature:
-
-- void **set_item_opentype_feature** **(** :ref:`int<class_int>` idx, :ref:`String<class_String>` tag, :ref:`int<class_int>` value **)**
-
-Sets OpenType feature ``tag`` for the item's text. More info: `OpenType feature tags <https://docs.microsoft.com/en-us/typography/opentype/spec/featuretags>`__.
-
-----
-
 .. _class_ItemList_method_set_item_selectable:
 
 - void **set_item_selectable** **(** :ref:`int<class_int>` idx, :ref:`bool<class_bool>` selectable **)**

+ 24 - 40
classes/class_label.rst

@@ -35,6 +35,8 @@ Properties
 +-----------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------+
 | :ref:`HorizontalAlignment<enum_@GlobalScope_HorizontalAlignment>`           | :ref:`horizontal_alignment<class_Label_property_horizontal_alignment>`                                   | ``0``                                                                        |
 +-----------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------+
+| :ref:`LabelSettings<class_LabelSettings>`                                   | :ref:`label_settings<class_Label_property_label_settings>`                                               |                                                                              |
++-----------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------+
 | :ref:`String<class_String>`                                                 | :ref:`language<class_Label_property_language>`                                                           | ``""``                                                                       |
 +-----------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------+
 | :ref:`int<class_int>`                                                       | :ref:`lines_skipped<class_Label_property_lines_skipped>`                                                 | ``0``                                                                        |
@@ -69,21 +71,15 @@ Properties
 Methods
 -------
 
-+-----------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
-| void                  | :ref:`clear_opentype_features<class_Label_method_clear_opentype_features>` **(** **)**                                                        |
-+-----------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>` | :ref:`get_line_count<class_Label_method_get_line_count>` **(** **)** |const|                                                                  |
-+-----------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>` | :ref:`get_line_height<class_Label_method_get_line_height>` **(** :ref:`int<class_int>` line=-1 **)** |const|                                  |
-+-----------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>` | :ref:`get_opentype_feature<class_Label_method_get_opentype_feature>` **(** :ref:`String<class_String>` tag **)** |const|                      |
-+-----------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>` | :ref:`get_total_character_count<class_Label_method_get_total_character_count>` **(** **)** |const|                                            |
-+-----------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>` | :ref:`get_visible_line_count<class_Label_method_get_visible_line_count>` **(** **)** |const|                                                  |
-+-----------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
-| void                  | :ref:`set_opentype_feature<class_Label_method_set_opentype_feature>` **(** :ref:`String<class_String>` tag, :ref:`int<class_int>` value **)** |
-+-----------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
++-----------------------+--------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>` | :ref:`get_line_count<class_Label_method_get_line_count>` **(** **)** |const|                                 |
++-----------------------+--------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>` | :ref:`get_line_height<class_Label_method_get_line_height>` **(** :ref:`int<class_int>` line=-1 **)** |const| |
++-----------------------+--------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>` | :ref:`get_total_character_count<class_Label_method_get_total_character_count>` **(** **)** |const|           |
++-----------------------+--------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>` | :ref:`get_visible_line_count<class_Label_method_get_visible_line_count>` **(** **)** |const|                 |
++-----------------------+--------------------------------------------------------------------------------------------------------------+
 
 Theme Properties
 ----------------
@@ -163,6 +159,18 @@ Controls the text's horizontal alignment. Supports left, center, right, and fill
 
 ----
 
+.. _class_Label_property_label_settings:
+
+- :ref:`LabelSettings<class_LabelSettings>` **label_settings**
+
++----------+---------------------------+
+| *Setter* | set_label_settings(value) |
++----------+---------------------------+
+| *Getter* | get_label_settings()      |
++----------+---------------------------+
+
+----
+
 .. _class_Label_property_language:
 
 - :ref:`String<class_String>` **language**
@@ -376,14 +384,6 @@ Sets the clipping behavior when :ref:`visible_characters<class_Label_property_vi
 Method Descriptions
 -------------------
 
-.. _class_Label_method_clear_opentype_features:
-
-- void **clear_opentype_features** **(** **)**
-
-Removes all OpenType features.
-
-----
-
 .. _class_Label_method_get_line_count:
 
 - :ref:`int<class_int>` **get_line_count** **(** **)** |const|
@@ -404,14 +404,6 @@ If there're no lines returns font size in pixels.
 
 ----
 
-.. _class_Label_method_get_opentype_feature:
-
-- :ref:`int<class_int>` **get_opentype_feature** **(** :ref:`String<class_String>` tag **)** |const|
-
-Returns OpenType feature ``tag``.
-
-----
-
 .. _class_Label_method_get_total_character_count:
 
 - :ref:`int<class_int>` **get_total_character_count** **(** **)** |const|
@@ -426,14 +418,6 @@ Returns the total number of printable characters in the text (excluding spaces a
 
 Returns the number of lines shown. Useful if the ``Label``'s height cannot currently display all lines.
 
-----
-
-.. _class_Label_method_set_opentype_feature:
-
-- void **set_opentype_feature** **(** :ref:`String<class_String>` tag, :ref:`int<class_int>` value **)**
-
-Returns OpenType feature ``tag``. More info: `OpenType feature tags <https://docs.microsoft.com/en-us/typography/opentype/spec/featuretags>`__.
-
 Theme Property Descriptions
 ---------------------------
 
@@ -457,7 +441,7 @@ Default text :ref:`Color<class_Color>` of the ``Label``.
 | *Default* | ``Color(1, 1, 1, 1)`` |
 +-----------+-----------------------+
 
-The tint of :ref:`Font<class_Font>`'s outline.
+The tint of text outline.
 
 ----
 

+ 2 - 32
classes/class_label3d.rst

@@ -82,19 +82,13 @@ Properties
 Methods
 -------
 
-+-----------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                    | :ref:`clear_opentype_features<class_Label3D_method_clear_opentype_features>` **(** **)**                                                            |
 +-----------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`TriangleMesh<class_TriangleMesh>` | :ref:`generate_triangle_mesh<class_Label3D_method_generate_triangle_mesh>` **(** **)** |const|                                                      |
 +-----------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`bool<class_bool>`                 | :ref:`get_draw_flag<class_Label3D_method_get_draw_flag>` **(** :ref:`DrawFlags<enum_Label3D_DrawFlags>` flag **)** |const|                          |
 +-----------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                   | :ref:`get_opentype_feature<class_Label3D_method_get_opentype_feature>` **(** :ref:`String<class_String>` tag **)** |const|                          |
-+-----------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                                    | :ref:`set_draw_flag<class_Label3D_method_set_draw_flag>` **(** :ref:`DrawFlags<enum_Label3D_DrawFlags>` flag, :ref:`bool<class_bool>` enabled **)** |
 +-----------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                    | :ref:`set_opentype_feature<class_Label3D_method_set_opentype_feature>` **(** :ref:`String<class_String>` tag, :ref:`int<class_int>` value **)**     |
-+-----------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------+
 
 Enumerations
 ------------
@@ -256,7 +250,7 @@ If ``true``, the label is rendered at the same size regardless of distance.
 | *Getter* | get_font()      |
 +----------+-----------------+
 
-:ref:`Font<class_Font>` used for the ``Label3D``'s text.
+Font configuration used to display text.
 
 ----
 
@@ -384,7 +378,7 @@ The text drawing offset (in pixels).
 | *Getter*  | get_outline_modulate()      |
 +-----------+-----------------------------+
 
-The tint of :ref:`Font<class_Font>`'s outline.
+The tint of text outline.
 
 ----
 
@@ -605,14 +599,6 @@ Text width (in pixels), used for autowrap and fill alignment.
 Method Descriptions
 -------------------
 
-.. _class_Label3D_method_clear_opentype_features:
-
-- void **clear_opentype_features** **(** **)**
-
-Removes all OpenType features.
-
-----
-
 .. _class_Label3D_method_generate_triangle_mesh:
 
 - :ref:`TriangleMesh<class_TriangleMesh>` **generate_triangle_mesh** **(** **)** |const|
@@ -629,28 +615,12 @@ Returns the value of the specified flag.
 
 ----
 
-.. _class_Label3D_method_get_opentype_feature:
-
-- :ref:`int<class_int>` **get_opentype_feature** **(** :ref:`String<class_String>` tag **)** |const|
-
-Returns OpenType feature ``tag``.
-
-----
-
 .. _class_Label3D_method_set_draw_flag:
 
 - void **set_draw_flag** **(** :ref:`DrawFlags<enum_Label3D_DrawFlags>` flag, :ref:`bool<class_bool>` enabled **)**
 
 If ``true``, the specified flag will be enabled. See :ref:`DrawFlags<enum_Label3D_DrawFlags>` for a list of flags.
 
-----
-
-.. _class_Label3D_method_set_opentype_feature:
-
-- void **set_opentype_feature** **(** :ref:`String<class_String>` tag, :ref:`int<class_int>` value **)**
-
-Returns OpenType feature ``tag``. More info: `OpenType feature tags <https://docs.microsoft.com/en-us/typography/opentype/spec/featuretags>`__.
-
 .. |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.)`

+ 169 - 0
classes/class_labelsettings.rst

@@ -0,0 +1,169 @@
+:github_url: hide
+
+.. Generated automatically by doc/tools/make_rst.py in Godot's source tree.
+.. DO NOT EDIT THIS FILE, but the LabelSettings.xml source instead.
+.. The source is found in doc/classes or modules/<name>/doc_classes.
+
+.. _class_LabelSettings:
+
+LabelSettings
+=============
+
+**Inherits:** :ref:`Resource<class_Resource>` **<** :ref:`RefCounted<class_RefCounted>` **<** :ref:`Object<class_Object>`
+
+
+
+Properties
+----------
+
++-------------------------------+------------------------------------------------------------------+-----------------------------------+
+| :ref:`Font<class_Font>`       | :ref:`font<class_LabelSettings_property_font>`                   |                                   |
++-------------------------------+------------------------------------------------------------------+-----------------------------------+
+| :ref:`Color<class_Color>`     | :ref:`font_color<class_LabelSettings_property_font_color>`       | ``Color(0.875, 0.875, 0.875, 1)`` |
++-------------------------------+------------------------------------------------------------------+-----------------------------------+
+| :ref:`int<class_int>`         | :ref:`font_size<class_LabelSettings_property_font_size>`         | ``16``                            |
++-------------------------------+------------------------------------------------------------------+-----------------------------------+
+| :ref:`float<class_float>`     | :ref:`line_spacing<class_LabelSettings_property_line_spacing>`   | ``0.0``                           |
++-------------------------------+------------------------------------------------------------------+-----------------------------------+
+| :ref:`Color<class_Color>`     | :ref:`outline_color<class_LabelSettings_property_outline_color>` | ``Color(1, 1, 1, 1)``             |
++-------------------------------+------------------------------------------------------------------+-----------------------------------+
+| :ref:`int<class_int>`         | :ref:`outline_size<class_LabelSettings_property_outline_size>`   | ``0``                             |
++-------------------------------+------------------------------------------------------------------+-----------------------------------+
+| :ref:`Color<class_Color>`     | :ref:`shadow_color<class_LabelSettings_property_shadow_color>`   | ``Color(1, 1, 1, 1)``             |
++-------------------------------+------------------------------------------------------------------+-----------------------------------+
+| :ref:`Vector2<class_Vector2>` | :ref:`shadow_offset<class_LabelSettings_property_shadow_offset>` | ``Vector2(1, 1)``                 |
++-------------------------------+------------------------------------------------------------------+-----------------------------------+
+| :ref:`int<class_int>`         | :ref:`shadow_size<class_LabelSettings_property_shadow_size>`     | ``0``                             |
++-------------------------------+------------------------------------------------------------------+-----------------------------------+
+
+Property Descriptions
+---------------------
+
+.. _class_LabelSettings_property_font:
+
+- :ref:`Font<class_Font>` **font**
+
++----------+-----------------+
+| *Setter* | set_font(value) |
++----------+-----------------+
+| *Getter* | get_font()      |
++----------+-----------------+
+
+----
+
+.. _class_LabelSettings_property_font_color:
+
+- :ref:`Color<class_Color>` **font_color**
+
++-----------+-----------------------------------+
+| *Default* | ``Color(0.875, 0.875, 0.875, 1)`` |
++-----------+-----------------------------------+
+| *Setter*  | set_font_color(value)             |
++-----------+-----------------------------------+
+| *Getter*  | get_font_color()                  |
++-----------+-----------------------------------+
+
+----
+
+.. _class_LabelSettings_property_font_size:
+
+- :ref:`int<class_int>` **font_size**
+
++-----------+----------------------+
+| *Default* | ``16``               |
++-----------+----------------------+
+| *Setter*  | set_font_size(value) |
++-----------+----------------------+
+| *Getter*  | get_font_size()      |
++-----------+----------------------+
+
+----
+
+.. _class_LabelSettings_property_line_spacing:
+
+- :ref:`float<class_float>` **line_spacing**
+
++-----------+-------------------------+
+| *Default* | ``0.0``                 |
++-----------+-------------------------+
+| *Setter*  | set_line_spacing(value) |
++-----------+-------------------------+
+| *Getter*  | get_line_spacing()      |
++-----------+-------------------------+
+
+----
+
+.. _class_LabelSettings_property_outline_color:
+
+- :ref:`Color<class_Color>` **outline_color**
+
++-----------+--------------------------+
+| *Default* | ``Color(1, 1, 1, 1)``    |
++-----------+--------------------------+
+| *Setter*  | set_outline_color(value) |
++-----------+--------------------------+
+| *Getter*  | get_outline_color()      |
++-----------+--------------------------+
+
+----
+
+.. _class_LabelSettings_property_outline_size:
+
+- :ref:`int<class_int>` **outline_size**
+
++-----------+-------------------------+
+| *Default* | ``0``                   |
++-----------+-------------------------+
+| *Setter*  | set_outline_size(value) |
++-----------+-------------------------+
+| *Getter*  | get_outline_size()      |
++-----------+-------------------------+
+
+----
+
+.. _class_LabelSettings_property_shadow_color:
+
+- :ref:`Color<class_Color>` **shadow_color**
+
++-----------+-------------------------+
+| *Default* | ``Color(1, 1, 1, 1)``   |
++-----------+-------------------------+
+| *Setter*  | set_shadow_color(value) |
++-----------+-------------------------+
+| *Getter*  | get_shadow_color()      |
++-----------+-------------------------+
+
+----
+
+.. _class_LabelSettings_property_shadow_offset:
+
+- :ref:`Vector2<class_Vector2>` **shadow_offset**
+
++-----------+--------------------------+
+| *Default* | ``Vector2(1, 1)``        |
++-----------+--------------------------+
+| *Setter*  | set_shadow_offset(value) |
++-----------+--------------------------+
+| *Getter*  | get_shadow_offset()      |
++-----------+--------------------------+
+
+----
+
+.. _class_LabelSettings_property_shadow_size:
+
+- :ref:`int<class_int>` **shadow_size**
+
++-----------+------------------------+
+| *Default* | ``0``                  |
++-----------+------------------------+
+| *Setter*  | set_shadow_size(value) |
++-----------+------------------------+
+| *Getter*  | get_shadow_size()      |
++-----------+------------------------+
+
+.. |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.)`
+.. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
+.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`
+.. |operator| replace:: :abbr:`operator (This method describes a valid operator to use with this type as left-hand operand.)`

+ 2 - 0
classes/class_light3d.rst

@@ -413,6 +413,8 @@ If ``true``, the light's effect is reversed, darkening areas and casting bright
 
 :ref:`Texture2D<class_Texture2D>` projected by light. :ref:`shadow_enabled<class_Light3D_property_shadow_enabled>` must be on for the projector to work. Light projectors make the light appear as if it is shining through a colored but transparent object, almost like light shining through stained-glass.
 
+\ **Note:** Unlike :ref:`BaseMaterial3D<class_BaseMaterial3D>` whose filter mode can be adjusted on a per-material basis, the filter mode for light projector textures is set globally with :ref:`ProjectSettings.rendering/textures/light_projectors/filter<class_ProjectSettings_property_rendering/textures/light_projectors/filter>`.
+
 ----
 
 .. _class_Light3D_property_light_size:

+ 1 - 1
classes/class_lightmapgi.rst

@@ -213,7 +213,7 @@ Number of light bounces that are taken into account during baking. Higher values
 | *Getter*  | is_directional()       |
 +-----------+------------------------+
 
-If ``true``, bakes lightmaps to contain directional information as spherical harmonics. This results in more realistic lighting appearance, especially with normal mapped materials and for lights that their have direct light baked (:ref:`Light3D.light_bake_mode<class_Light3D_property_light_bake_mode>` set to :ref:`Light3D.BAKE_STATIC<class_Light3D_constant_BAKE_STATIC>`). The directional information is also used to provide rough reflections for static and dynamic objects. This has a small run-time performance cost as the shader has to perform more work to interpret the direction information from the lightmap. Directional lightmaps also take longer to bake and result in larger file sizes.
+If ``true``, bakes lightmaps to contain directional information as spherical harmonics. This results in more realistic lighting appearance, especially with normal mapped materials and for lights that have their direct light baked (:ref:`Light3D.light_bake_mode<class_Light3D_property_light_bake_mode>` set to :ref:`Light3D.BAKE_STATIC<class_Light3D_constant_BAKE_STATIC>`). The directional information is also used to provide rough reflections for static and dynamic objects. This has a small run-time performance cost as the shader has to perform more work to interpret the direction information from the lightmap. Directional lightmaps also take longer to bake and result in larger file sizes.
 
 \ **Note:** The property's name has no relationship with :ref:`DirectionalLight3D<class_DirectionalLight3D>`. :ref:`directional<class_LightmapGI_property_directional>` works with all light types.
 

+ 1 - 1
classes/class_lightmapgidata.rst

@@ -72,7 +72,7 @@ Adds an object that is considered baked within this ``LightmapGIData``.
 
 - void **clear_users** **(** **)**
 
-Clear all objects that are considred baked within this ``LightmapGIData``.
+Clear all objects that are considered baked within this ``LightmapGIData``.
 
 ----
 

+ 29 - 59
classes/class_lineedit.rst

@@ -128,41 +128,35 @@ Properties
 Methods
 -------
 
-+-----------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                              | :ref:`clear<class_LineEdit_method_clear>` **(** **)**                                                                                            |
-+-----------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                              | :ref:`clear_opentype_features<class_LineEdit_method_clear_opentype_features>` **(** **)**                                                        |
-+-----------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                              | :ref:`delete_char_at_caret<class_LineEdit_method_delete_char_at_caret>` **(** **)**                                                              |
-+-----------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                              | :ref:`delete_text<class_LineEdit_method_delete_text>` **(** :ref:`int<class_int>` from_column, :ref:`int<class_int>` to_column **)**             |
-+-----------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                              | :ref:`deselect<class_LineEdit_method_deselect>` **(** **)**                                                                                      |
-+-----------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`PopupMenu<class_PopupMenu>` | :ref:`get_menu<class_LineEdit_method_get_menu>` **(** **)** |const|                                                                              |
-+-----------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`             | :ref:`get_opentype_feature<class_LineEdit_method_get_opentype_feature>` **(** :ref:`String<class_String>` tag **)** |const|                      |
-+-----------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`             | :ref:`get_scroll_offset<class_LineEdit_method_get_scroll_offset>` **(** **)** |const|                                                            |
-+-----------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`             | :ref:`get_selection_from_column<class_LineEdit_method_get_selection_from_column>` **(** **)** |const|                                            |
-+-----------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`             | :ref:`get_selection_to_column<class_LineEdit_method_get_selection_to_column>` **(** **)** |const|                                                |
-+-----------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`           | :ref:`has_selection<class_LineEdit_method_has_selection>` **(** **)** |const|                                                                    |
-+-----------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                              | :ref:`insert_text_at_caret<class_LineEdit_method_insert_text_at_caret>` **(** :ref:`String<class_String>` text **)**                             |
-+-----------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`           | :ref:`is_menu_visible<class_LineEdit_method_is_menu_visible>` **(** **)** |const|                                                                |
-+-----------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                              | :ref:`menu_option<class_LineEdit_method_menu_option>` **(** :ref:`int<class_int>` option **)**                                                   |
-+-----------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                              | :ref:`select<class_LineEdit_method_select>` **(** :ref:`int<class_int>` from=0, :ref:`int<class_int>` to=-1 **)**                                |
-+-----------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                              | :ref:`select_all<class_LineEdit_method_select_all>` **(** **)**                                                                                  |
-+-----------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                              | :ref:`set_opentype_feature<class_LineEdit_method_set_opentype_feature>` **(** :ref:`String<class_String>` tag, :ref:`int<class_int>` value **)** |
-+-----------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
++-----------------------------------+--------------------------------------------------------------------------------------------------------------------------------------+
+| void                              | :ref:`clear<class_LineEdit_method_clear>` **(** **)**                                                                                |
++-----------------------------------+--------------------------------------------------------------------------------------------------------------------------------------+
+| void                              | :ref:`delete_char_at_caret<class_LineEdit_method_delete_char_at_caret>` **(** **)**                                                  |
++-----------------------------------+--------------------------------------------------------------------------------------------------------------------------------------+
+| void                              | :ref:`delete_text<class_LineEdit_method_delete_text>` **(** :ref:`int<class_int>` from_column, :ref:`int<class_int>` to_column **)** |
++-----------------------------------+--------------------------------------------------------------------------------------------------------------------------------------+
+| void                              | :ref:`deselect<class_LineEdit_method_deselect>` **(** **)**                                                                          |
++-----------------------------------+--------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`PopupMenu<class_PopupMenu>` | :ref:`get_menu<class_LineEdit_method_get_menu>` **(** **)** |const|                                                                  |
++-----------------------------------+--------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`             | :ref:`get_scroll_offset<class_LineEdit_method_get_scroll_offset>` **(** **)** |const|                                                |
++-----------------------------------+--------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`             | :ref:`get_selection_from_column<class_LineEdit_method_get_selection_from_column>` **(** **)** |const|                                |
++-----------------------------------+--------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`             | :ref:`get_selection_to_column<class_LineEdit_method_get_selection_to_column>` **(** **)** |const|                                    |
++-----------------------------------+--------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`           | :ref:`has_selection<class_LineEdit_method_has_selection>` **(** **)** |const|                                                        |
++-----------------------------------+--------------------------------------------------------------------------------------------------------------------------------------+
+| void                              | :ref:`insert_text_at_caret<class_LineEdit_method_insert_text_at_caret>` **(** :ref:`String<class_String>` text **)**                 |
++-----------------------------------+--------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`           | :ref:`is_menu_visible<class_LineEdit_method_is_menu_visible>` **(** **)** |const|                                                    |
++-----------------------------------+--------------------------------------------------------------------------------------------------------------------------------------+
+| void                              | :ref:`menu_option<class_LineEdit_method_menu_option>` **(** :ref:`int<class_int>` option **)**                                       |
++-----------------------------------+--------------------------------------------------------------------------------------------------------------------------------------+
+| void                              | :ref:`select<class_LineEdit_method_select>` **(** :ref:`int<class_int>` from=0, :ref:`int<class_int>` to=-1 **)**                    |
++-----------------------------------+--------------------------------------------------------------------------------------------------------------------------------------+
+| void                              | :ref:`select_all<class_LineEdit_method_select_all>` **(** **)**                                                                      |
++-----------------------------------+--------------------------------------------------------------------------------------------------------------------------------------+
 
 Theme Properties
 ----------------
@@ -832,14 +826,6 @@ Erases the ``LineEdit``'s :ref:`text<class_LineEdit_property_text>`.
 
 ----
 
-.. _class_LineEdit_method_clear_opentype_features:
-
-- void **clear_opentype_features** **(** **)**
-
-Removes all OpenType features.
-
-----
-
 .. _class_LineEdit_method_delete_char_at_caret:
 
 - void **delete_char_at_caret** **(** **)**
@@ -874,14 +860,6 @@ Returns the :ref:`PopupMenu<class_PopupMenu>` of this ``LineEdit``. By default,
 
 ----
 
-.. _class_LineEdit_method_get_opentype_feature:
-
-- :ref:`int<class_int>` **get_opentype_feature** **(** :ref:`String<class_String>` tag **)** |const|
-
-Returns OpenType feature ``tag``.
-
-----
-
 .. _class_LineEdit_method_get_scroll_offset:
 
 - :ref:`int<class_int>` **get_scroll_offset** **(** **)** |const|
@@ -971,14 +949,6 @@ Selects characters inside ``LineEdit`` between ``from`` and ``to``. By default,
 
 Selects the whole :ref:`String<class_String>`.
 
-----
-
-.. _class_LineEdit_method_set_opentype_feature:
-
-- void **set_opentype_feature** **(** :ref:`String<class_String>` tag, :ref:`int<class_int>` value **)**
-
-Returns OpenType feature ``tag``. More info: `OpenType feature tags <https://docs.microsoft.com/en-us/typography/opentype/spec/featuretags>`__.
-
 Theme Property Descriptions
 ---------------------------
 

+ 0 - 36
classes/class_linkbutton.rst

@@ -37,17 +37,6 @@ Properties
 | :ref:`UnderlineMode<enum_LinkButton_UnderlineMode>`               | :ref:`underline<class_LinkButton_property_underline>`                                                         | ``0``  |
 +-------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------+--------+
 
-Methods
--------
-
-+-----------------------+----------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                  | :ref:`clear_opentype_features<class_LinkButton_method_clear_opentype_features>` **(** **)**                                                        |
-+-----------------------+----------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>` | :ref:`get_opentype_feature<class_LinkButton_method_get_opentype_feature>` **(** :ref:`String<class_String>` tag **)** |const|                      |
-+-----------------------+----------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                  | :ref:`set_opentype_feature<class_LinkButton_method_set_opentype_feature>` **(** :ref:`String<class_String>` tag, :ref:`int<class_int>` value **)** |
-+-----------------------+----------------------------------------------------------------------------------------------------------------------------------------------------+
-
 Theme Properties
 ----------------
 
@@ -189,31 +178,6 @@ Base text writing direction.
 
 Determines when to show the underline. See :ref:`UnderlineMode<enum_LinkButton_UnderlineMode>` for options.
 
-Method Descriptions
--------------------
-
-.. _class_LinkButton_method_clear_opentype_features:
-
-- void **clear_opentype_features** **(** **)**
-
-Removes all OpenType features.
-
-----
-
-.. _class_LinkButton_method_get_opentype_feature:
-
-- :ref:`int<class_int>` **get_opentype_feature** **(** :ref:`String<class_String>` tag **)** |const|
-
-Returns OpenType feature ``tag``.
-
-----
-
-.. _class_LinkButton_method_set_opentype_feature:
-
-- void **set_opentype_feature** **(** :ref:`String<class_String>` tag, :ref:`int<class_int>` value **)**
-
-Returns OpenType feature ``tag``. More info: `OpenType feature tags <https://docs.microsoft.com/en-us/typography/opentype/spec/featuretags>`__.
-
 Theme Property Descriptions
 ---------------------------
 

+ 3 - 3
classes/class_moviewriter.rst

@@ -20,9 +20,9 @@ Godot can record videos with non-real-time simulation. Like the ``--fixed-fps``
 
 Godot has 2 built-in ``MovieWriter``\ s:
 
-- AVI container with MJPEG for video and uncompressed audio (``.avi`` file extension). Lossy compression, medium file sizes, fast encoding. The lossy compression quality can be adjusted by changing :ref:`ProjectSettings.editor/movie_writer/mjpeg_quality<class_ProjectSettings_property_editor/movie_writer/mjpeg_quality>`. The resulting file can be viewed in most video players, but it must be converted to another format for viewing on the web or by Godot with :ref:`VideoStreamPlayer<class_VideoStreamPlayer>`. AVI output is currently limited to a file of 4 GB in size at most.
+- AVI container with MJPEG for video and uncompressed audio (``.avi`` file extension). Lossy compression, medium file sizes, fast encoding. The lossy compression quality can be adjusted by changing :ref:`ProjectSettings.editor/movie_writer/mjpeg_quality<class_ProjectSettings_property_editor/movie_writer/mjpeg_quality>`. The resulting file can be viewed in most video players, but it must be converted to another format for viewing on the web or by Godot with :ref:`VideoStreamPlayer<class_VideoStreamPlayer>`. MJPEG does not support transparency. AVI output is currently limited to a file of 4 GB in size at most.
 
-- PNG image sequence for video and WAV for audio (``.png`` file extension). Lossless compression, large file sizes, slow encoding. Designed to be encoded to a video file with another tool such as `FFmpeg <https://ffmpeg.org/>`__ after recording. Transparency is currently not supported.
+- PNG image sequence for video and WAV for audio (``.png`` file extension). Lossless compression, large file sizes, slow encoding. Designed to be encoded to a video file with another tool such as `FFmpeg <https://ffmpeg.org/>`__ after recording. Transparency is currently not supported, even if the root viewport is set to be transparent.
 
 If you need to encode to a different format or pipe a stream through third-party software, you can extend the ``MovieWriter`` class to create your own movie writers. This should typically be done using GDExtension for performance reasons.
 
@@ -113,7 +113,7 @@ Called at the end of every rendered frame. The ``frame_image`` and ``audio_frame
 
 - void **add_writer** **(** :ref:`MovieWriter<class_MovieWriter>` writer **)** |static|
 
-Adds a writer to be usable by the engine. The supported file extensions can be set by overridding :ref:`_handles_file<class_MovieWriter_method__handles_file>`.
+Adds a writer to be usable by the engine. The supported file extensions can be set by overriding :ref:`_handles_file<class_MovieWriter_method__handles_file>`.
 
 \ **Note:** :ref:`add_writer<class_MovieWriter_method_add_writer>` must be called early enough in the engine initialization to work, as movie writing is designed to start at the same time as the rest of the engine.
 

+ 3 - 1
classes/class_multimesh.rst

@@ -137,7 +137,9 @@ Property Descriptions
 | *Getter*  | get_instance_count()      |
 +-----------+---------------------------+
 
-Number of instances that will get drawn. This clears and (re)sizes the buffers. By default, all instances are drawn but you can limit this with :ref:`visible_instance_count<class_MultiMesh_property_visible_instance_count>`.
+Number of instances that will get drawn. This clears and (re)sizes the buffers. Setting data format or flags afterwards will have no effect.
+
+By default, all instances are drawn but you can limit this with :ref:`visible_instance_count<class_MultiMesh_property_visible_instance_count>`.
 
 ----
 

+ 53 - 33
classes/class_multiplayerpeerextension.rst

@@ -21,39 +21,43 @@ This class is designed to be inherited from a GDExtension plugin to implement cu
 Methods
 -------
 
-+-------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`   | :ref:`_get_available_packet_count<class_MultiplayerPeerExtension_method__get_available_packet_count>` **(** **)** |virtual| |const|                          |
-+-------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`   | :ref:`_get_connection_status<class_MultiplayerPeerExtension_method__get_connection_status>` **(** **)** |virtual| |const|                                    |
-+-------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`   | :ref:`_get_max_packet_size<class_MultiplayerPeerExtension_method__get_max_packet_size>` **(** **)** |virtual| |const|                                        |
-+-------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`   | :ref:`_get_packet<class_MultiplayerPeerExtension_method__get_packet>` **(** const uint8_t ** r_buffer, int32_t* r_buffer_size **)** |virtual|                |
-+-------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`   | :ref:`_get_packet_peer<class_MultiplayerPeerExtension_method__get_packet_peer>` **(** **)** |virtual| |const|                                                |
-+-------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`   | :ref:`_get_transfer_channel<class_MultiplayerPeerExtension_method__get_transfer_channel>` **(** **)** |virtual| |const|                                      |
-+-------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`   | :ref:`_get_transfer_mode<class_MultiplayerPeerExtension_method__get_transfer_mode>` **(** **)** |virtual| |const|                                            |
-+-------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`   | :ref:`_get_unique_id<class_MultiplayerPeerExtension_method__get_unique_id>` **(** **)** |virtual| |const|                                                    |
-+-------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>` | :ref:`_is_refusing_new_connections<class_MultiplayerPeerExtension_method__is_refusing_new_connections>` **(** **)** |virtual| |const|                        |
-+-------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>` | :ref:`_is_server<class_MultiplayerPeerExtension_method__is_server>` **(** **)** |virtual| |const|                                                            |
-+-------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`   | :ref:`_poll<class_MultiplayerPeerExtension_method__poll>` **(** **)** |virtual|                                                                              |
-+-------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`   | :ref:`_put_packet<class_MultiplayerPeerExtension_method__put_packet>` **(** const uint8_t* p_buffer, :ref:`int<class_int>` p_buffer_size **)** |virtual|     |
-+-------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                    | :ref:`_set_refuse_new_connections<class_MultiplayerPeerExtension_method__set_refuse_new_connections>` **(** :ref:`bool<class_bool>` p_enable **)** |virtual| |
-+-------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                    | :ref:`_set_target_peer<class_MultiplayerPeerExtension_method__set_target_peer>` **(** :ref:`int<class_int>` p_peer **)** |virtual|                           |
-+-------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                    | :ref:`_set_transfer_channel<class_MultiplayerPeerExtension_method__set_transfer_channel>` **(** :ref:`int<class_int>` p_channel **)** |virtual|              |
-+-------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                    | :ref:`_set_transfer_mode<class_MultiplayerPeerExtension_method__set_transfer_mode>` **(** :ref:`int<class_int>` p_mode **)** |virtual|                       |
-+-------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
++-----------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                         | :ref:`_get_available_packet_count<class_MultiplayerPeerExtension_method__get_available_packet_count>` **(** **)** |virtual| |const|                              |
++-----------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                         | :ref:`_get_connection_status<class_MultiplayerPeerExtension_method__get_connection_status>` **(** **)** |virtual| |const|                                        |
++-----------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                         | :ref:`_get_max_packet_size<class_MultiplayerPeerExtension_method__get_max_packet_size>` **(** **)** |virtual| |const|                                            |
++-----------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                         | :ref:`_get_packet<class_MultiplayerPeerExtension_method__get_packet>` **(** const uint8_t ** r_buffer, int32_t* r_buffer_size **)** |virtual|                    |
++-----------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                         | :ref:`_get_packet_peer<class_MultiplayerPeerExtension_method__get_packet_peer>` **(** **)** |virtual| |const|                                                    |
++-----------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`PackedByteArray<class_PackedByteArray>` | :ref:`_get_packet_script<class_MultiplayerPeerExtension_method__get_packet_script>` **(** **)** |virtual|                                                        |
++-----------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                         | :ref:`_get_transfer_channel<class_MultiplayerPeerExtension_method__get_transfer_channel>` **(** **)** |virtual| |const|                                          |
++-----------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                         | :ref:`_get_transfer_mode<class_MultiplayerPeerExtension_method__get_transfer_mode>` **(** **)** |virtual| |const|                                                |
++-----------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                         | :ref:`_get_unique_id<class_MultiplayerPeerExtension_method__get_unique_id>` **(** **)** |virtual| |const|                                                        |
++-----------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                       | :ref:`_is_refusing_new_connections<class_MultiplayerPeerExtension_method__is_refusing_new_connections>` **(** **)** |virtual| |const|                            |
++-----------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                       | :ref:`_is_server<class_MultiplayerPeerExtension_method__is_server>` **(** **)** |virtual| |const|                                                                |
++-----------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                         | :ref:`_poll<class_MultiplayerPeerExtension_method__poll>` **(** **)** |virtual|                                                                                  |
++-----------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                         | :ref:`_put_packet<class_MultiplayerPeerExtension_method__put_packet>` **(** const uint8_t* p_buffer, :ref:`int<class_int>` p_buffer_size **)** |virtual|         |
++-----------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                         | :ref:`_put_packet_script<class_MultiplayerPeerExtension_method__put_packet_script>` **(** :ref:`PackedByteArray<class_PackedByteArray>` p_buffer **)** |virtual| |
++-----------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                          | :ref:`_set_refuse_new_connections<class_MultiplayerPeerExtension_method__set_refuse_new_connections>` **(** :ref:`bool<class_bool>` p_enable **)** |virtual|     |
++-----------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                          | :ref:`_set_target_peer<class_MultiplayerPeerExtension_method__set_target_peer>` **(** :ref:`int<class_int>` p_peer **)** |virtual|                               |
++-----------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                          | :ref:`_set_transfer_channel<class_MultiplayerPeerExtension_method__set_transfer_channel>` **(** :ref:`int<class_int>` p_channel **)** |virtual|                  |
++-----------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                          | :ref:`_set_transfer_mode<class_MultiplayerPeerExtension_method__set_transfer_mode>` **(** :ref:`int<class_int>` p_mode **)** |virtual|                           |
++-----------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 
 Method Descriptions
 -------------------
@@ -98,6 +102,14 @@ Called when the ID of the :ref:`MultiplayerPeer<class_MultiplayerPeer>` who sent
 
 ----
 
+.. _class_MultiplayerPeerExtension_method__get_packet_script:
+
+- :ref:`PackedByteArray<class_PackedByteArray>` **_get_packet_script** **(** **)** |virtual|
+
+Called when a packet needs to be received by the :ref:`MultiplayerAPI<class_MultiplayerAPI>`, if :ref:`_get_packet<class_MultiplayerPeerExtension_method__get_packet>` isn't implemented. Use this when extending this class via GDScript.
+
+----
+
 .. _class_MultiplayerPeerExtension_method__get_transfer_channel:
 
 - :ref:`int<class_int>` **_get_transfer_channel** **(** **)** |virtual| |const|
@@ -154,6 +166,14 @@ Called when a packet needs to be sent by the :ref:`MultiplayerAPI<class_Multipla
 
 ----
 
+.. _class_MultiplayerPeerExtension_method__put_packet_script:
+
+- :ref:`int<class_int>` **_put_packet_script** **(** :ref:`PackedByteArray<class_PackedByteArray>` p_buffer **)** |virtual|
+
+Called when a packet needs to be sent by the :ref:`MultiplayerAPI<class_MultiplayerAPI>`, if :ref:`_put_packet<class_MultiplayerPeerExtension_method__put_packet>` isn't implemented. Use this when extending this class via GDScript.
+
+----
+
 .. _class_MultiplayerPeerExtension_method__set_refuse_new_connections:
 
 - void **_set_refuse_new_connections** **(** :ref:`bool<class_bool>` p_enable **)** |virtual|

+ 0 - 16
classes/class_multiplayerspawner.rst

@@ -16,8 +16,6 @@ MultiplayerSpawner
 Properties
 ----------
 
-+---------------------------------+-------------------------------------------------------------------+------------------+
-| :ref:`bool<class_bool>`         | :ref:`auto_spawn<class_MultiplayerSpawner_property_auto_spawn>`   | ``false``        |
 +---------------------------------+-------------------------------------------------------------------+------------------+
 | :ref:`int<class_int>`           | :ref:`spawn_limit<class_MultiplayerSpawner_property_spawn_limit>` | ``0``            |
 +---------------------------------+-------------------------------------------------------------------+------------------+
@@ -57,20 +55,6 @@ Signals
 Property Descriptions
 ---------------------
 
-.. _class_MultiplayerSpawner_property_auto_spawn:
-
-- :ref:`bool<class_bool>` **auto_spawn**
-
-+-----------+--------------------------+
-| *Default* | ``false``                |
-+-----------+--------------------------+
-| *Setter*  | set_auto_spawning(value) |
-+-----------+--------------------------+
-| *Getter*  | is_auto_spawning()       |
-+-----------+--------------------------+
-
-----
-
 .. _class_MultiplayerSpawner_property_spawn_limit:
 
 - :ref:`int<class_int>` **spawn_limit**

+ 111 - 7
classes/class_multiplayersynchronizer.rst

@@ -16,17 +16,76 @@ MultiplayerSynchronizer
 Properties
 ----------
 
-+-------------------------------------------------------------+------------------------------------------------------------------------------------------+--------------------+
-| :ref:`SceneReplicationConfig<class_SceneReplicationConfig>` | :ref:`replication_config<class_MultiplayerSynchronizer_property_replication_config>`     |                    |
-+-------------------------------------------------------------+------------------------------------------------------------------------------------------+--------------------+
-| :ref:`float<class_float>`                                   | :ref:`replication_interval<class_MultiplayerSynchronizer_property_replication_interval>` | ``0.0``            |
-+-------------------------------------------------------------+------------------------------------------------------------------------------------------+--------------------+
-| :ref:`NodePath<class_NodePath>`                             | :ref:`root_path<class_MultiplayerSynchronizer_property_root_path>`                       | ``NodePath("..")`` |
-+-------------------------------------------------------------+------------------------------------------------------------------------------------------+--------------------+
++--------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------+--------------------+
+| :ref:`bool<class_bool>`                                                        | :ref:`public_visibility<class_MultiplayerSynchronizer_property_public_visibility>`           | ``true``           |
++--------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------+--------------------+
+| :ref:`SceneReplicationConfig<class_SceneReplicationConfig>`                    | :ref:`replication_config<class_MultiplayerSynchronizer_property_replication_config>`         |                    |
++--------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------+--------------------+
+| :ref:`float<class_float>`                                                      | :ref:`replication_interval<class_MultiplayerSynchronizer_property_replication_interval>`     | ``0.0``            |
++--------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------+--------------------+
+| :ref:`NodePath<class_NodePath>`                                                | :ref:`root_path<class_MultiplayerSynchronizer_property_root_path>`                           | ``NodePath("..")`` |
++--------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------+--------------------+
+| :ref:`VisibilityUpdateMode<enum_MultiplayerSynchronizer_VisibilityUpdateMode>` | :ref:`visibility_update_mode<class_MultiplayerSynchronizer_property_visibility_update_mode>` | ``0``              |
++--------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------+--------------------+
+
+Methods
+-------
+
++-------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                    | :ref:`add_visibility_filter<class_MultiplayerSynchronizer_method_add_visibility_filter>` **(** :ref:`Callable<class_Callable>` filter **)**                |
++-------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>` | :ref:`get_visibility_for<class_MultiplayerSynchronizer_method_get_visibility_for>` **(** :ref:`int<class_int>` peer **)** |const|                          |
++-------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                    | :ref:`remove_visibility_filter<class_MultiplayerSynchronizer_method_remove_visibility_filter>` **(** :ref:`Callable<class_Callable>` filter **)**          |
++-------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                    | :ref:`set_visibility_for<class_MultiplayerSynchronizer_method_set_visibility_for>` **(** :ref:`int<class_int>` peer, :ref:`bool<class_bool>` visible **)** |
++-------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                    | :ref:`update_visibility<class_MultiplayerSynchronizer_method_update_visibility>` **(** :ref:`int<class_int>` for_peer=0 **)**                              |
++-------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+Signals
+-------
+
+.. _class_MultiplayerSynchronizer_signal_visibility_changed:
+
+- **visibility_changed** **(** :ref:`int<class_int>` for_peer **)**
+
+Enumerations
+------------
+
+.. _enum_MultiplayerSynchronizer_VisibilityUpdateMode:
+
+.. _class_MultiplayerSynchronizer_constant_VISIBILITY_PROCESS_IDLE:
+
+.. _class_MultiplayerSynchronizer_constant_VISIBILITY_PROCESS_PHYSICS:
+
+.. _class_MultiplayerSynchronizer_constant_VISIBILITY_PROCESS_NONE:
+
+enum **VisibilityUpdateMode**:
+
+- **VISIBILITY_PROCESS_IDLE** = **0**
+
+- **VISIBILITY_PROCESS_PHYSICS** = **1**
+
+- **VISIBILITY_PROCESS_NONE** = **2**
 
 Property Descriptions
 ---------------------
 
+.. _class_MultiplayerSynchronizer_property_public_visibility:
+
+- :ref:`bool<class_bool>` **public_visibility**
+
++-----------+------------------------------+
+| *Default* | ``true``                     |
++-----------+------------------------------+
+| *Setter*  | set_visibility_public(value) |
++-----------+------------------------------+
+| *Getter*  | is_visibility_public()       |
++-----------+------------------------------+
+
+----
+
 .. _class_MultiplayerSynchronizer_property_replication_config:
 
 - :ref:`SceneReplicationConfig<class_SceneReplicationConfig>` **replication_config**
@@ -65,6 +124,51 @@ Property Descriptions
 | *Getter*  | get_root_path()      |
 +-----------+----------------------+
 
+----
+
+.. _class_MultiplayerSynchronizer_property_visibility_update_mode:
+
+- :ref:`VisibilityUpdateMode<enum_MultiplayerSynchronizer_VisibilityUpdateMode>` **visibility_update_mode**
+
++-----------+-----------------------------------+
+| *Default* | ``0``                             |
++-----------+-----------------------------------+
+| *Setter*  | set_visibility_update_mode(value) |
++-----------+-----------------------------------+
+| *Getter*  | get_visibility_update_mode()      |
++-----------+-----------------------------------+
+
+Method Descriptions
+-------------------
+
+.. _class_MultiplayerSynchronizer_method_add_visibility_filter:
+
+- void **add_visibility_filter** **(** :ref:`Callable<class_Callable>` filter **)**
+
+----
+
+.. _class_MultiplayerSynchronizer_method_get_visibility_for:
+
+- :ref:`bool<class_bool>` **get_visibility_for** **(** :ref:`int<class_int>` peer **)** |const|
+
+----
+
+.. _class_MultiplayerSynchronizer_method_remove_visibility_filter:
+
+- void **remove_visibility_filter** **(** :ref:`Callable<class_Callable>` filter **)**
+
+----
+
+.. _class_MultiplayerSynchronizer_method_set_visibility_for:
+
+- void **set_visibility_for** **(** :ref:`int<class_int>` peer, :ref:`bool<class_bool>` visible **)**
+
+----
+
+.. _class_MultiplayerSynchronizer_method_update_visibility:
+
+- void **update_visibility** **(** :ref:`int<class_int>` for_peer=0 **)**
+
 .. |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.)`

+ 3 - 1
classes/class_navigationagent2d.rst

@@ -242,7 +242,9 @@ The maximum distance the agent is allowed away from the ideal path to the final
 | *Getter*  | get_radius()      |
 +-----------+-------------------+
 
-The radius of the agent.
+The radius of the avoidance agent. This is the "body" of the avoidance agent and not the avoidance maneuver starting radius (which is controlled by :ref:`neighbor_dist<class_NavigationAgent2D_property_neighbor_dist>`).
+
+Does not affect normal pathfinding. To change an actor's pathfinding radius bake :ref:`NavigationMesh<class_NavigationMesh>` resources with a different :ref:`NavigationMesh.agent_radius<class_NavigationMesh_property_agent_radius>` property and use different navigation maps for each actor size.
 
 ----
 

+ 3 - 1
classes/class_navigationagent3d.rst

@@ -278,7 +278,9 @@ The maximum distance the agent is allowed away from the ideal path to the final
 | *Getter*  | get_radius()      |
 +-----------+-------------------+
 
-The radius of the agent.
+The radius of the avoidance agent. This is the "body" of the avoidance agent and not the avoidance maneuver starting radius (which is controlled by :ref:`neighbor_dist<class_NavigationAgent3D_property_neighbor_dist>`).
+
+Does not affect normal pathfinding. To change an actor's pathfinding radius bake :ref:`NavigationMesh<class_NavigationMesh>` resources with a different :ref:`NavigationMesh.agent_radius<class_NavigationMesh_property_agent_radius>` property and use different navigation maps for each actor size.
 
 ----
 

+ 34 - 0
classes/class_node3d.rst

@@ -37,6 +37,10 @@ Properties
 +-------------------------------------------------------+---------------------------------------------------------------------+-----------------------------------------------------+
 | :ref:`Basis<class_Basis>`                             | :ref:`basis<class_Node3D_property_basis>`                           |                                                     |
 +-------------------------------------------------------+---------------------------------------------------------------------+-----------------------------------------------------+
+| :ref:`Vector3<class_Vector3>`                         | :ref:`global_position<class_Node3D_property_global_position>`       |                                                     |
++-------------------------------------------------------+---------------------------------------------------------------------+-----------------------------------------------------+
+| :ref:`Vector3<class_Vector3>`                         | :ref:`global_rotation<class_Node3D_property_global_rotation>`       |                                                     |
++-------------------------------------------------------+---------------------------------------------------------------------+-----------------------------------------------------+
 | :ref:`Transform3D<class_Transform3D>`                 | :ref:`global_transform<class_Node3D_property_global_transform>`     |                                                     |
 +-------------------------------------------------------+---------------------------------------------------------------------+-----------------------------------------------------+
 | :ref:`Vector3<class_Vector3>`                         | :ref:`position<class_Node3D_property_position>`                     | ``Vector3(0, 0, 0)``                                |
@@ -237,6 +241,36 @@ Direct access to the 3x3 basis of the :ref:`Transform3D<class_Transform3D>` prop
 
 ----
 
+.. _class_Node3D_property_global_position:
+
+- :ref:`Vector3<class_Vector3>` **global_position**
+
++----------+----------------------------+
+| *Setter* | set_global_position(value) |
++----------+----------------------------+
+| *Getter* | get_global_position()      |
++----------+----------------------------+
+
+Global position of this node. This is equivalent to ``global_transform.origin``.
+
+----
+
+.. _class_Node3D_property_global_rotation:
+
+- :ref:`Vector3<class_Vector3>` **global_rotation**
+
++----------+----------------------------+
+| *Setter* | set_global_rotation(value) |
++----------+----------------------------+
+| *Getter* | get_global_rotation()      |
++----------+----------------------------+
+
+Rotation part of the global transformation in radians, specified in terms of YXZ-Euler angles in the format (X angle, Y angle, Z angle).
+
+\ **Note:** In the mathematical sense, rotation is a matrix and not a vector. The three Euler angles, which are the three independent parameters of the Euler-angle parametrization of the rotation matrix, are stored in a :ref:`Vector3<class_Vector3>` data structure not because the rotation is a vector, but only because :ref:`Vector3<class_Vector3>` exists as a convenient data-structure to store 3 floating-point numbers. Therefore, applying affine operations on the rotation "vector" is not meaningful.
+
+----
+
 .. _class_Node3D_property_global_transform:
 
 - :ref:`Transform3D<class_Transform3D>` **global_transform**

+ 10 - 0
classes/class_nodepath.rst

@@ -61,6 +61,8 @@ Methods
 +-------------------------------------+-------------------------------------------------------------------------------------------------------+
 | :ref:`NodePath<class_NodePath>`     | :ref:`get_as_property_path<class_NodePath_method_get_as_property_path>` **(** **)** |const|           |
 +-------------------------------------+-------------------------------------------------------------------------------------------------------+
+| :ref:`StringName<class_StringName>` | :ref:`get_concatenated_names<class_NodePath_method_get_concatenated_names>` **(** **)** |const|       |
++-------------------------------------+-------------------------------------------------------------------------------------------------------+
 | :ref:`StringName<class_StringName>` | :ref:`get_concatenated_subnames<class_NodePath_method_get_concatenated_subnames>` **(** **)** |const| |
 +-------------------------------------+-------------------------------------------------------------------------------------------------------+
 | :ref:`StringName<class_StringName>` | :ref:`get_name<class_NodePath_method_get_name>` **(** :ref:`int<class_int>` idx **)** |const|         |
@@ -157,6 +159,14 @@ Returns a node path with a colon character (``:``) prepended, transforming it to
 
 
 
+----
+
+.. _class_NodePath_method_get_concatenated_names:
+
+- :ref:`StringName<class_StringName>` **get_concatenated_names** **(** **)** |const|
+
+Returns all paths concatenated with a slash character (``/``) as separator without subnames.
+
 ----
 
 .. _class_NodePath_method_get_concatenated_subnames:

File diff suppressed because it is too large
+ 0 - 0
classes/class_object.rst


+ 2 - 2
classes/class_openxrinterface.rst

@@ -18,12 +18,12 @@ Description
 
 The OpenXR interface allows Godot to interact with OpenXR runtimes and make it possible to create XR experiences and games.
 
-Due to the needs of OpenXR this interface works slightly different then other plugin based XR interfaces. It needs to be initialised when Godot starts. You need to enable OpenXR, settings for this can be found in your games project settings under the XR heading. You do need to mark a viewport for use with XR in order for Godot to know which render result should be output to the headset.
+Due to the needs of OpenXR this interface works slightly different than other plugin based XR interfaces. It needs to be initialised when Godot starts. You need to enable OpenXR, settings for this can be found in your games project settings under the XR heading. You do need to mark a viewport for use with XR in order for Godot to know which render result should be output to the headset.
 
 Tutorials
 ---------
 
-- :doc:`OpenXR documentation <../tutorials/vr/openxr/index>`
+- :doc:`Setting up XR <../tutorials/xr/setting_up_xr>`
 
 Signals
 -------

+ 2 - 2
classes/class_openxripbinding.rst

@@ -35,7 +35,7 @@ Methods
 +-------------------------+-------------------------------------------------------------------------------------------------------------+
 | :ref:`int<class_int>`   | :ref:`get_path_count<class_OpenXRIPBinding_method_get_path_count>` **(** **)** |const|                      |
 +-------------------------+-------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>` | :ref:`has_path<class_OpenXRIPBinding_method_has_path>` **(** :ref:`String<class_String>` arg0 **)** |const| |
+| :ref:`bool<class_bool>` | :ref:`has_path<class_OpenXRIPBinding_method_has_path>` **(** :ref:`String<class_String>` path **)** |const| |
 +-------------------------+-------------------------------------------------------------------------------------------------------------+
 | void                    | :ref:`remove_path<class_OpenXRIPBinding_method_remove_path>` **(** :ref:`String<class_String>` path **)**   |
 +-------------------------+-------------------------------------------------------------------------------------------------------------+
@@ -92,7 +92,7 @@ Get the number of input/output paths in this binding.
 
 .. _class_OpenXRIPBinding_method_has_path:
 
-- :ref:`bool<class_bool>` **has_path** **(** :ref:`String<class_String>` arg0 **)** |const|
+- :ref:`bool<class_bool>` **has_path** **(** :ref:`String<class_String>` path **)** |const|
 
 Returns ``true`` if this input/output path is part of this binding.
 

+ 24 - 0
classes/class_os.rst

@@ -100,6 +100,10 @@ Methods
 +---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`String<class_String>`                       | :ref:`get_system_dir<class_OS_method_get_system_dir>` **(** :ref:`SystemDir<enum_OS_SystemDir>` dir, :ref:`bool<class_bool>` shared_storage=true **)** |const|                                                                                                                |
 +---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`                       | :ref:`get_system_font_path<class_OS_method_get_system_font_path>` **(** :ref:`String<class_String>` font_name, :ref:`bool<class_bool>` bold=false, :ref:`bool<class_bool>` italic=false **)** |const|                                                                         |
++---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`PackedStringArray<class_PackedStringArray>` | :ref:`get_system_fonts<class_OS_method_get_system_fonts>` **(** **)** |const|                                                                                                                                                                                                 |
++---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`int<class_int>`                             | :ref:`get_thread_caller_id<class_OS_method_get_thread_caller_id>` **(** **)** |const|                                                                                                                                                                                         |
 +---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`String<class_String>`                       | :ref:`get_unique_id<class_OS_method_get_unique_id>` **(** **)** |const|                                                                                                                                                                                                       |
@@ -826,6 +830,26 @@ Returns the actual path to commonly used folders across different platforms. Ava
 
 ----
 
+.. _class_OS_method_get_system_font_path:
+
+- :ref:`String<class_String>` **get_system_font_path** **(** :ref:`String<class_String>` font_name, :ref:`bool<class_bool>` bold=false, :ref:`bool<class_bool>` italic=false **)** |const|
+
+Returns path to the system font file with ``font_name`` and style. Return empty string if no matching fonts found.
+
+\ **Note:** This method is implemented on iOS, Linux, macOS and Windows.
+
+----
+
+.. _class_OS_method_get_system_fonts:
+
+- :ref:`PackedStringArray<class_PackedStringArray>` **get_system_fonts** **(** **)** |const|
+
+Returns list of font family names available.
+
+\ **Note:** This method is implemented on iOS, Linux, macOS and Windows.
+
+----
+
 .. _class_OS_method_get_thread_caller_id:
 
 - :ref:`int<class_int>` **get_thread_caller_id** **(** **)** |const|

+ 5 - 5
classes/class_packedbytearray.rst

@@ -586,7 +586,7 @@ Sorts the elements of the array in ascending order.
 
 Returns a copy of the data converted to a :ref:`PackedFloat32Array<class_PackedFloat32Array>`, where each block of 4 bytes has been converted to a 32-bit float (C++ ``float``).
 
-The size of the new array will be ``byte_array.size() / 4``.
+The size of the input array must be a multiple of 4 (size of 32-bit float). The size of the new array will be ``byte_array.size() / 4``.
 
 If the original data can't be converted to 32-bit floats, the resulting data is undefined.
 
@@ -598,7 +598,7 @@ If the original data can't be converted to 32-bit floats, the resulting data is
 
 Returns a copy of the data converted to a :ref:`PackedFloat64Array<class_PackedFloat64Array>`, where each block of 8 bytes has been converted to a 64-bit float (C++ ``double``, Godot :ref:`float<class_float>`).
 
-The size of the new array will be ``byte_array.size() / 8``.
+The size of the input array must be a multiple of 8 (size of 64-bit double). The size of the new array will be ``byte_array.size() / 8``.
 
 If the original data can't be converted to 64-bit floats, the resulting data is undefined.
 
@@ -610,7 +610,7 @@ If the original data can't be converted to 64-bit floats, the resulting data is
 
 Returns a copy of the data converted to a :ref:`PackedInt32Array<class_PackedInt32Array>`, where each block of 4 bytes has been converted to a signed 32-bit integer (C++ ``int32_t``).
 
-The size of the new array will be ``byte_array.size() / 4``.
+The size of the input array must be a multiple of 4 (size of 32-bit integer). The size of the new array will be ``byte_array.size() / 4``.
 
 If the original data can't be converted to signed 32-bit integers, the resulting data is undefined.
 
@@ -620,9 +620,9 @@ If the original data can't be converted to signed 32-bit integers, the resulting
 
 - :ref:`PackedInt64Array<class_PackedInt64Array>` **to_int64_array** **(** **)** |const|
 
-Returns a copy of the data converted to a :ref:`PackedInt64Array<class_PackedInt64Array>`, where each block of 4 bytes has been converted to a signed 64-bit integer (C++ ``int64_t``, Godot :ref:`int<class_int>`).
+Returns a copy of the data converted to a :ref:`PackedInt64Array<class_PackedInt64Array>`, where each block of 8 bytes has been converted to a signed 64-bit integer (C++ ``int64_t``, Godot :ref:`int<class_int>`).
 
-The size of the new array will be ``byte_array.size() / 8``.
+The size of the input array must be a multiple of 8 (size of 64-bit integer). The size of the new array will be ``byte_array.size() / 8``.
 
 If the original data can't be converted to signed 64-bit integers, the resulting data is undefined.
 

+ 30 - 20
classes/class_particlesmaterial.rst

@@ -354,7 +354,9 @@ Each particle's rotation will be animated along this :ref:`CurveTexture<class_Cu
 | *Getter*  | get_param_max()      |
 +-----------+----------------------+
 
-Maximum angle.
+Maximum initial rotation applied to each particle, in degrees.
+
+Only applied when :ref:`particle_flag_disable_z<class_ParticlesMaterial_property_particle_flag_disable_z>` or :ref:`particle_flag_rotate_y<class_ParticlesMaterial_property_particle_flag_rotate_y>` are ``true`` or the :ref:`BaseMaterial3D<class_BaseMaterial3D>` being used to draw the particle is using :ref:`BaseMaterial3D.BILLBOARD_PARTICLES<class_BaseMaterial3D_constant_BILLBOARD_PARTICLES>`.
 
 ----
 
@@ -370,7 +372,7 @@ Maximum angle.
 | *Getter*  | get_param_min()      |
 +-----------+----------------------+
 
-Minimum angle.
+Minimum equivalent of :ref:`angle_max<class_ParticlesMaterial_property_angle_max>`.
 
 ----
 
@@ -402,6 +404,8 @@ Each particle's angular velocity (rotation speed) will vary along this :ref:`Cur
 
 Maximum initial angular velocity (rotation speed) applied to each particle in *degrees* per second.
 
+Only applied when :ref:`particle_flag_disable_z<class_ParticlesMaterial_property_particle_flag_disable_z>` or :ref:`particle_flag_rotate_y<class_ParticlesMaterial_property_particle_flag_rotate_y>` are ``true`` or the :ref:`BaseMaterial3D<class_BaseMaterial3D>` being used to draw the particle is using :ref:`BaseMaterial3D.BILLBOARD_PARTICLES<class_BaseMaterial3D_constant_BILLBOARD_PARTICLES>`.
+
 ----
 
 .. _class_ParticlesMaterial_property_angular_velocity_min:
@@ -416,7 +420,7 @@ Maximum initial angular velocity (rotation speed) applied to each particle in *d
 | *Getter*  | get_param_min()      |
 +-----------+----------------------+
 
-Minimum initial angular velocity (rotation speed) applied to each particle in *degrees* per second.
+Minimum equivalent of :ref:`angular_velocity_max<class_ParticlesMaterial_property_angular_velocity_max>`.
 
 ----
 
@@ -446,7 +450,7 @@ Each particle's animation offset will vary along this :ref:`CurveTexture<class_C
 | *Getter*  | get_param_max()      |
 +-----------+----------------------+
 
-Maximum animation offset.
+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>`.
 
 ----
 
@@ -462,7 +466,7 @@ Maximum animation offset.
 | *Getter*  | get_param_min()      |
 +-----------+----------------------+
 
-Minimum animation offset.
+Minimum equivalent of :ref:`anim_offset_max<class_ParticlesMaterial_property_anim_offset_max>`.
 
 ----
 
@@ -510,7 +514,7 @@ With animation speed greater than ``1``, remember to enable :ref:`CanvasItemMate
 | *Getter*  | get_param_min()      |
 +-----------+----------------------+
 
-Minimum particle animation speed.
+Minimum equivalent of :ref:`anim_speed_max<class_ParticlesMaterial_property_anim_speed_max>`.
 
 ----
 
@@ -664,6 +668,8 @@ Damping will vary along this :ref:`CurveTexture<class_CurveTexture>`.
 | *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_ParticlesMaterial_property_damping_min:
@@ -678,6 +684,8 @@ Damping will vary along this :ref:`CurveTexture<class_CurveTexture>`.
 | *Getter*  | get_param_min()      |
 +-----------+----------------------+
 
+Minimum equivalent of :ref:`damping_max<class_ParticlesMaterial_property_damping_max>`.
+
 ----
 
 .. _class_ParticlesMaterial_property_direction:
@@ -910,7 +918,7 @@ Each particle's hue will vary along this :ref:`CurveTexture<class_CurveTexture>`
 | *Getter*  | get_param_max()      |
 +-----------+----------------------+
 
-Maximum hue variation.
+Maximum initial hue variation applied to each particle. It will shift the particle color's hue.
 
 ----
 
@@ -926,7 +934,7 @@ Maximum hue variation.
 | *Getter*  | get_param_min()      |
 +-----------+----------------------+
 
-Minimum hue variation.
+Minimum equivalent of :ref:`hue_variation_max<class_ParticlesMaterial_property_hue_variation_max>`.
 
 ----
 
@@ -942,7 +950,7 @@ Minimum hue variation.
 | *Getter*  | get_param_max()      |
 +-----------+----------------------+
 
-Maximum initial velocity.
+Maximum initial velocity magnitude for each particle. Direction comes from :ref:`direction<class_ParticlesMaterial_property_direction>` and :ref:`spread<class_ParticlesMaterial_property_spread>`.
 
 ----
 
@@ -958,7 +966,7 @@ Maximum initial velocity.
 | *Getter*  | get_param_min()      |
 +-----------+----------------------+
 
-Minimum initial velocity.
+Minimum equivalent of :ref:`initial_velocity_max<class_ParticlesMaterial_property_initial_velocity_max>`.
 
 ----
 
@@ -1004,7 +1012,7 @@ Each particle's linear acceleration will vary along this :ref:`CurveTexture<clas
 | *Getter*  | get_param_max()      |
 +-----------+----------------------+
 
-Maximum linear acceleration.
+Maximum linear acceleration applied to each particle in the direction of motion.
 
 ----
 
@@ -1020,7 +1028,7 @@ Maximum linear acceleration.
 | *Getter*  | get_param_min()      |
 +-----------+----------------------+
 
-Minimum linear acceleration.
+Minimum equivalent of :ref:`linear_accel_min<class_ParticlesMaterial_property_linear_accel_min>`.
 
 ----
 
@@ -1048,7 +1056,9 @@ Each particle's orbital velocity will vary along this :ref:`CurveTexture<class_C
 | *Getter* | get_param_max()      |
 +----------+----------------------+
 
-Maximum orbit velocity.
+Maximum orbital velocity applied to each particle. Makes the particles circle around origin. Specified in number of full rotations around origin per second.
+
+Only available when :ref:`particle_flag_disable_z<class_ParticlesMaterial_property_particle_flag_disable_z>` is ``true``.
 
 ----
 
@@ -1062,7 +1072,7 @@ Maximum orbit velocity.
 | *Getter* | get_param_min()      |
 +----------+----------------------+
 
-Minimum orbit velocity.
+Minimum equivalent of :ref:`orbit_velocity_max<class_ParticlesMaterial_property_orbit_velocity_max>`.
 
 ----
 
@@ -1140,7 +1150,7 @@ Each particle's radial acceleration will vary along this :ref:`CurveTexture<clas
 | *Getter*  | get_param_max()      |
 +-----------+----------------------+
 
-Maximum radial acceleration.
+Maximum radial acceleration applied to each particle. Makes particle accelerate away from the origin or towards it if negative.
 
 ----
 
@@ -1156,7 +1166,7 @@ Maximum radial acceleration.
 | *Getter*  | get_param_min()      |
 +-----------+----------------------+
 
-Minimum radial acceleration.
+Minimum equivalent of :ref:`radial_accel_max<class_ParticlesMaterial_property_radial_accel_max>`.
 
 ----
 
@@ -1186,7 +1196,7 @@ Each particle's scale will vary along this :ref:`CurveTexture<class_CurveTexture
 | *Getter*  | get_param_max()      |
 +-----------+----------------------+
 
-Maximum scale.
+Maximum initial scale applied to each particle.
 
 ----
 
@@ -1202,7 +1212,7 @@ Maximum scale.
 | *Getter*  | get_param_min()      |
 +-----------+----------------------+
 
-Minimum scale.
+Minimum equivalent of :ref:`scale_max<class_ParticlesMaterial_property_scale_max>`.
 
 ----
 
@@ -1300,7 +1310,7 @@ Each particle's tangential acceleration will vary along this :ref:`CurveTexture<
 | *Getter*  | get_param_max()      |
 +-----------+----------------------+
 
-Maximum tangential acceleration.
+Maximum tangential acceleration applied to each particle. Tangential acceleration is perpendicular to the particle's velocity giving the particles a swirling motion.
 
 ----
 
@@ -1316,7 +1326,7 @@ Maximum tangential acceleration.
 | *Getter*  | get_param_min()      |
 +-----------+----------------------+
 
-Minimum tangential acceleration.
+Minimum equivalent of :ref:`tangential_accel_max<class_ParticlesMaterial_property_tangential_accel_max>`.
 
 Method Descriptions
 -------------------

+ 7 - 7
classes/class_plane.rst

@@ -63,7 +63,7 @@ Methods
 +-------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`float<class_float>`     | :ref:`distance_to<class_Plane_method_distance_to>` **(** :ref:`Vector3<class_Vector3>` point **)** |const|                                                |
 +-------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`       | :ref:`has_point<class_Plane_method_has_point>` **(** :ref:`Vector3<class_Vector3>` point, :ref:`float<class_float>` epsilon=1e-05 **)** |const|           |
+| :ref:`bool<class_bool>`       | :ref:`has_point<class_Plane_method_has_point>` **(** :ref:`Vector3<class_Vector3>` point, :ref:`float<class_float>` tolerance=1e-05 **)** |const|         |
 +-------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`Variant<class_Variant>` | :ref:`intersect_3<class_Plane_method_intersect_3>` **(** :ref:`Plane<class_Plane>` b, :ref:`Plane<class_Plane>` c **)** |const|                           |
 +-------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------+
@@ -73,7 +73,7 @@ Methods
 +-------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`bool<class_bool>`       | :ref:`is_equal_approx<class_Plane_method_is_equal_approx>` **(** :ref:`Plane<class_Plane>` to_plane **)** |const|                                         |
 +-------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`       | :ref:`is_point_over<class_Plane_method_is_point_over>` **(** :ref:`Vector3<class_Vector3>` plane **)** |const|                                            |
+| :ref:`bool<class_bool>`       | :ref:`is_point_over<class_Plane_method_is_point_over>` **(** :ref:`Vector3<class_Vector3>` point **)** |const|                                            |
 +-------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`Plane<class_Plane>`     | :ref:`normalized<class_Plane_method_normalized>` **(** **)** |const|                                                                                      |
 +-------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------+
@@ -233,15 +233,15 @@ Returns the center of the plane.
 
 - :ref:`float<class_float>` **distance_to** **(** :ref:`Vector3<class_Vector3>` point **)** |const|
 
-Returns the shortest distance from the plane to the position ``point``.
+Returns the shortest distance from the plane to the position ``point``. If the point is above the plane, the distance will be positive. If below, the distance will be negative.
 
 ----
 
 .. _class_Plane_method_has_point:
 
-- :ref:`bool<class_bool>` **has_point** **(** :ref:`Vector3<class_Vector3>` point, :ref:`float<class_float>` epsilon=1e-05 **)** |const|
+- :ref:`bool<class_bool>` **has_point** **(** :ref:`Vector3<class_Vector3>` point, :ref:`float<class_float>` tolerance=1e-05 **)** |const|
 
-Returns ``true`` if ``point`` is inside the plane. Comparison uses a custom minimum ``epsilon`` threshold.
+Returns ``true`` if ``point`` is inside the plane. Comparison uses a custom minimum ``tolerance`` threshold.
 
 ----
 
@@ -265,7 +265,7 @@ Returns the intersection point of a ray consisting of the position ``from`` and
 
 - :ref:`Variant<class_Variant>` **intersects_segment** **(** :ref:`Vector3<class_Vector3>` from, :ref:`Vector3<class_Vector3>` to **)** |const|
 
-Returns the intersection point of a segment from position ``begin`` to position ``end`` with this plane. If no intersection is found, ``null`` is returned.
+Returns the intersection point of a segment from position ``from`` to position ``to`` with this plane. If no intersection is found, ``null`` is returned.
 
 ----
 
@@ -279,7 +279,7 @@ Returns ``true`` if this plane and ``plane`` are approximately equal, by running
 
 .. _class_Plane_method_is_point_over:
 
-- :ref:`bool<class_bool>` **is_point_over** **(** :ref:`Vector3<class_Vector3>` plane **)** |const|
+- :ref:`bool<class_bool>` **is_point_over** **(** :ref:`Vector3<class_Vector3>` point **)** |const|
 
 Returns ``true`` if ``point`` is located above the plane.
 

+ 0 - 30
classes/class_popupmenu.rst

@@ -79,8 +79,6 @@ Methods
 +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                                             | :ref:`clear<class_PopupMenu_method_clear>` **(** **)**                                                                                                                                                                                                                |
 +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                             | :ref:`clear_item_opentype_features<class_PopupMenu_method_clear_item_opentype_features>` **(** :ref:`int<class_int>` index **)**                                                                                                                                      |
-+--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`int<class_int>`                            | :ref:`get_current_index<class_PopupMenu_method_get_current_index>` **(** **)** |const|                                                                                                                                                                                |
 +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`Key<enum_@GlobalScope_Key>`                | :ref:`get_item_accelerator<class_PopupMenu_method_get_item_accelerator>` **(** :ref:`int<class_int>` index **)** |const|                                                                                                                                              |
@@ -97,8 +95,6 @@ Methods
 +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`Variant<class_Variant>`                    | :ref:`get_item_metadata<class_PopupMenu_method_get_item_metadata>` **(** :ref:`int<class_int>` index **)** |const|                                                                                                                                                    |
 +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                            | :ref:`get_item_opentype_feature<class_PopupMenu_method_get_item_opentype_feature>` **(** :ref:`int<class_int>` index, :ref:`String<class_String>` tag **)** |const|                                                                                                   |
-+--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`Shortcut<class_Shortcut>`                  | :ref:`get_item_shortcut<class_PopupMenu_method_get_item_shortcut>` **(** :ref:`int<class_int>` index **)** |const|                                                                                                                                                    |
 +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`String<class_String>`                      | :ref:`get_item_submenu<class_PopupMenu_method_get_item_submenu>` **(** :ref:`int<class_int>` index **)** |const|                                                                                                                                                      |
@@ -151,8 +147,6 @@ Methods
 +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                                             | :ref:`set_item_multistate<class_PopupMenu_method_set_item_multistate>` **(** :ref:`int<class_int>` index, :ref:`int<class_int>` state **)**                                                                                                                           |
 +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                             | :ref:`set_item_opentype_feature<class_PopupMenu_method_set_item_opentype_feature>` **(** :ref:`int<class_int>` index, :ref:`String<class_String>` tag, :ref:`int<class_int>` value **)**                                                                              |
-+--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                                             | :ref:`set_item_shortcut<class_PopupMenu_method_set_item_shortcut>` **(** :ref:`int<class_int>` index, :ref:`Shortcut<class_Shortcut>` shortcut, :ref:`bool<class_bool>` global=false **)**                                                                            |
 +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                                             | :ref:`set_item_shortcut_disabled<class_PopupMenu_method_set_item_shortcut_disabled>` **(** :ref:`int<class_int>` index, :ref:`bool<class_bool>` disabled **)**                                                                                                        |
@@ -528,14 +522,6 @@ Removes all items from the ``PopupMenu``.
 
 ----
 
-.. _class_PopupMenu_method_clear_item_opentype_features:
-
-- void **clear_item_opentype_features** **(** :ref:`int<class_int>` index **)**
-
-Removes all OpenType features form the item's text.
-
-----
-
 .. _class_PopupMenu_method_get_current_index:
 
 - :ref:`int<class_int>` **get_current_index** **(** **)** |const|
@@ -600,14 +586,6 @@ Returns the metadata of the specified item, which might be of any type. You can
 
 ----
 
-.. _class_PopupMenu_method_get_item_opentype_feature:
-
-- :ref:`int<class_int>` **get_item_opentype_feature** **(** :ref:`int<class_int>` index, :ref:`String<class_String>` tag **)** |const|
-
-Returns OpenType feature ``tag`` of the item's text.
-
-----
-
 .. _class_PopupMenu_method_get_item_shortcut:
 
 - :ref:`Shortcut<class_Shortcut>` **get_item_shortcut** **(** :ref:`int<class_int>` index **)** |const|
@@ -828,14 +806,6 @@ Sets the state of a multistate item. See :ref:`add_multistate_item<class_PopupMe
 
 ----
 
-.. _class_PopupMenu_method_set_item_opentype_feature:
-
-- void **set_item_opentype_feature** **(** :ref:`int<class_int>` index, :ref:`String<class_String>` tag, :ref:`int<class_int>` value **)**
-
-Sets OpenType feature ``tag`` for the item's text. More info: `OpenType feature tags <https://docs.microsoft.com/en-us/typography/opentype/spec/featuretags>`__.
-
-----
-
 .. _class_PopupMenu_method_set_item_shortcut:
 
 - void **set_item_shortcut** **(** :ref:`int<class_int>` index, :ref:`Shortcut<class_Shortcut>` shortcut, :ref:`bool<class_bool>` global=false **)**

+ 392 - 0
classes/class_projection.rst

@@ -0,0 +1,392 @@
+:github_url: hide
+
+.. Generated automatically by doc/tools/make_rst.py in Godot's source tree.
+.. DO NOT EDIT THIS FILE, but the Projection.xml source instead.
+.. The source is found in doc/classes or modules/<name>/doc_classes.
+
+.. _class_Projection:
+
+Projection
+==========
+
+
+
+Properties
+----------
+
++-------------------------------+---------------------------------------+----------------------+
+| :ref:`Vector4<class_Vector4>` | :ref:`w<class_Projection_property_w>` | ``Vector4(0, 0, 0)`` |
++-------------------------------+---------------------------------------+----------------------+
+| :ref:`Vector4<class_Vector4>` | :ref:`x<class_Projection_property_x>` | ``Vector4(1, 0, 0)`` |
++-------------------------------+---------------------------------------+----------------------+
+| :ref:`Vector4<class_Vector4>` | :ref:`y<class_Projection_property_y>` | ``Vector4(0, 1, 0)`` |
++-------------------------------+---------------------------------------+----------------------+
+| :ref:`Vector4<class_Vector4>` | :ref:`z<class_Projection_property_z>` | ``Vector4(0, 0, 1)`` |
++-------------------------------+---------------------------------------+----------------------+
+
+Constructors
+------------
+
++-------------------------------------+-------------------------------------------------------------------------------------------------------------------+
+| :ref:`Projection<class_Projection>` | :ref:`Projection<class_Projection_constructor_Projection>` **(** **)**                                            |
++-------------------------------------+-------------------------------------------------------------------------------------------------------------------+
+| :ref:`Projection<class_Projection>` | :ref:`Projection<class_Projection_constructor_Projection>` **(** :ref:`Projection<class_Projection>` from **)**   |
++-------------------------------------+-------------------------------------------------------------------------------------------------------------------+
+| :ref:`Projection<class_Projection>` | :ref:`Projection<class_Projection_constructor_Projection>` **(** :ref:`Transform3D<class_Transform3D>` from **)** |
++-------------------------------------+-------------------------------------------------------------------------------------------------------------------+
+
+Methods
+-------
+
++-------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Projection<class_Projection>` | :ref:`create_depth_correction<class_Projection_method_create_depth_correction>` **(** :ref:`bool<class_bool>` flip_y **)** |static|                                                                                                                                                                                                                                                          |
++-------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Projection<class_Projection>` | :ref:`create_fit_aabb<class_Projection_method_create_fit_aabb>` **(** :ref:`AABB<class_AABB>` aabb **)** |static|                                                                                                                                                                                                                                                                            |
++-------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Projection<class_Projection>` | :ref:`create_for_hmd<class_Projection_method_create_for_hmd>` **(** :ref:`int<class_int>` eye, :ref:`float<class_float>` aspect, :ref:`float<class_float>` intraocular_dist, :ref:`float<class_float>` display_width, :ref:`float<class_float>` display_to_lens, :ref:`float<class_float>` oversample, :ref:`float<class_float>` z_near, :ref:`float<class_float>` z_far **)** |static|      |
++-------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Projection<class_Projection>` | :ref:`create_frustum<class_Projection_method_create_frustum>` **(** :ref:`float<class_float>` left, :ref:`float<class_float>` right, :ref:`float<class_float>` bottom, :ref:`float<class_float>` top, :ref:`float<class_float>` z_near, :ref:`float<class_float>` z_far **)** |static|                                                                                                       |
++-------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Projection<class_Projection>` | :ref:`create_frustum_aspect<class_Projection_method_create_frustum_aspect>` **(** :ref:`float<class_float>` size, :ref:`float<class_float>` aspect, :ref:`Vector2<class_Vector2>` offset, :ref:`float<class_float>` z_near, :ref:`float<class_float>` z_far, :ref:`bool<class_bool>` flip_fov=false **)** |static|                                                                           |
++-------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Projection<class_Projection>` | :ref:`create_light_atlas_rect<class_Projection_method_create_light_atlas_rect>` **(** :ref:`Rect2<class_Rect2>` rect **)** |static|                                                                                                                                                                                                                                                          |
++-------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Projection<class_Projection>` | :ref:`create_orthogonal<class_Projection_method_create_orthogonal>` **(** :ref:`float<class_float>` left, :ref:`float<class_float>` right, :ref:`float<class_float>` bottom, :ref:`float<class_float>` top, :ref:`float<class_float>` z_near, :ref:`float<class_float>` z_far **)** |static|                                                                                                 |
++-------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Projection<class_Projection>` | :ref:`create_orthogonal_aspect<class_Projection_method_create_orthogonal_aspect>` **(** :ref:`float<class_float>` size, :ref:`float<class_float>` aspect, :ref:`float<class_float>` z_near, :ref:`float<class_float>` z_far, :ref:`bool<class_bool>` flip_fov=false **)** |static|                                                                                                           |
++-------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Projection<class_Projection>` | :ref:`create_perspective<class_Projection_method_create_perspective>` **(** :ref:`float<class_float>` fovy, :ref:`float<class_float>` aspect, :ref:`float<class_float>` z_near, :ref:`float<class_float>` z_far, :ref:`bool<class_bool>` flip_fov=false **)** |static|                                                                                                                       |
++-------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Projection<class_Projection>` | :ref:`create_perspective_hmd<class_Projection_method_create_perspective_hmd>` **(** :ref:`float<class_float>` fovy, :ref:`float<class_float>` aspect, :ref:`float<class_float>` z_near, :ref:`float<class_float>` z_far, :ref:`bool<class_bool>` flip_fov, :ref:`int<class_int>` eye, :ref:`float<class_float>` intraocular_dist, :ref:`float<class_float>`  convergence_dist **)** |static| |
++-------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`           | :ref:`determinant<class_Projection_method_determinant>` **(** **)** |const|                                                                                                                                                                                                                                                                                                                  |
++-------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Projection<class_Projection>` | :ref:`flipped_y<class_Projection_method_flipped_y>` **(** **)** |const|                                                                                                                                                                                                                                                                                                                      |
++-------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`           | :ref:`get_aspect<class_Projection_method_get_aspect>` **(** **)** |const|                                                                                                                                                                                                                                                                                                                    |
++-------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Vector2<class_Vector2>`       | :ref:`get_far_plane_half_extents<class_Projection_method_get_far_plane_half_extents>` **(** **)** |const|                                                                                                                                                                                                                                                                                    |
++-------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`           | :ref:`get_fov<class_Projection_method_get_fov>` **(** **)** |const|                                                                                                                                                                                                                                                                                                                          |
++-------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`           | :ref:`get_fovy<class_Projection_method_get_fovy>` **(** :ref:`float<class_float>` fovx, :ref:`float<class_float>` aspect **)** |static|                                                                                                                                                                                                                                                      |
++-------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`           | :ref:`get_lod_multiplier<class_Projection_method_get_lod_multiplier>` **(** **)** |const|                                                                                                                                                                                                                                                                                                    |
++-------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`               | :ref:`get_pixels_per_meter<class_Projection_method_get_pixels_per_meter>` **(** :ref:`int<class_int>` for_pixel_width **)** |const|                                                                                                                                                                                                                                                          |
++-------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Plane<class_Plane>`           | :ref:`get_projection_plane<class_Projection_method_get_projection_plane>` **(** :ref:`int<class_int>` plane **)** |const|                                                                                                                                                                                                                                                                    |
++-------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Vector2<class_Vector2>`       | :ref:`get_viewport_half_extents<class_Projection_method_get_viewport_half_extents>` **(** **)** |const|                                                                                                                                                                                                                                                                                      |
++-------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`           | :ref:`get_z_far<class_Projection_method_get_z_far>` **(** **)** |const|                                                                                                                                                                                                                                                                                                                      |
++-------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`           | :ref:`get_z_near<class_Projection_method_get_z_near>` **(** **)** |const|                                                                                                                                                                                                                                                                                                                    |
++-------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Projection<class_Projection>` | :ref:`inverse<class_Projection_method_inverse>` **(** **)** |const|                                                                                                                                                                                                                                                                                                                          |
++-------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`             | :ref:`is_orthogonal<class_Projection_method_is_orthogonal>` **(** **)** |const|                                                                                                                                                                                                                                                                                                              |
++-------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Projection<class_Projection>` | :ref:`jitter_offseted<class_Projection_method_jitter_offseted>` **(** :ref:`Vector2<class_Vector2>` offset **)** |const|                                                                                                                                                                                                                                                                     |
++-------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Projection<class_Projection>` | :ref:`perspective_znear_adjusted<class_Projection_method_perspective_znear_adjusted>` **(** :ref:`float<class_float>` new_znear **)** |const|                                                                                                                                                                                                                                                |
++-------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+Operators
+---------
+
++-------------------------------------+-------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`             | :ref:`operator !=<class_Projection_operator_neq_bool>` **(** :ref:`Projection<class_Projection>` right **)**      |
++-------------------------------------+-------------------------------------------------------------------------------------------------------------------+
+| :ref:`Projection<class_Projection>` | :ref:`operator *<class_Projection_operator_mul_Projection>` **(** :ref:`Projection<class_Projection>` right **)** |
++-------------------------------------+-------------------------------------------------------------------------------------------------------------------+
+| :ref:`Vector4<class_Vector4>`       | :ref:`operator *<class_Projection_operator_mul_Vector4>` **(** :ref:`Vector4<class_Vector4>` right **)**          |
++-------------------------------------+-------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`             | :ref:`operator ==<class_Projection_operator_eq_bool>` **(** :ref:`Projection<class_Projection>` right **)**       |
++-------------------------------------+-------------------------------------------------------------------------------------------------------------------+
+| :ref:`Vector4<class_Vector4>`       | :ref:`operator []<class_Projection_operator_idx_Vector4>` **(** :ref:`int<class_int>` index **)**                 |
++-------------------------------------+-------------------------------------------------------------------------------------------------------------------+
+
+Constants
+---------
+
+.. _class_Projection_constant_PLANE_NEAR:
+
+.. _class_Projection_constant_PLANE_FAR:
+
+.. _class_Projection_constant_PLANE_LEFT:
+
+.. _class_Projection_constant_PLANE_TOP:
+
+.. _class_Projection_constant_PLANE_RIGHT:
+
+.. _class_Projection_constant_PLANE_BOTTOM:
+
+.. _class_Projection_constant_IDENTITY:
+
+.. _class_Projection_constant_ZERO:
+
+- **PLANE_NEAR** = **0**
+
+- **PLANE_FAR** = **1**
+
+- **PLANE_LEFT** = **2**
+
+- **PLANE_TOP** = **3**
+
+- **PLANE_RIGHT** = **4**
+
+- **PLANE_BOTTOM** = **5**
+
+- **IDENTITY** = **Projection(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)**
+
+- **ZERO** = **Projection(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)**
+
+Property Descriptions
+---------------------
+
+.. _class_Projection_property_w:
+
+- :ref:`Vector4<class_Vector4>` **w**
+
++-----------+----------------------+
+| *Default* | ``Vector4(0, 0, 0)`` |
++-----------+----------------------+
+
+----
+
+.. _class_Projection_property_x:
+
+- :ref:`Vector4<class_Vector4>` **x**
+
++-----------+----------------------+
+| *Default* | ``Vector4(1, 0, 0)`` |
++-----------+----------------------+
+
+----
+
+.. _class_Projection_property_y:
+
+- :ref:`Vector4<class_Vector4>` **y**
+
++-----------+----------------------+
+| *Default* | ``Vector4(0, 1, 0)`` |
++-----------+----------------------+
+
+----
+
+.. _class_Projection_property_z:
+
+- :ref:`Vector4<class_Vector4>` **z**
+
++-----------+----------------------+
+| *Default* | ``Vector4(0, 0, 1)`` |
++-----------+----------------------+
+
+Constructor Descriptions
+------------------------
+
+.. _class_Projection_constructor_Projection:
+
+- :ref:`Projection<class_Projection>` **Projection** **(** **)**
+
+----
+
+- :ref:`Projection<class_Projection>` **Projection** **(** :ref:`Projection<class_Projection>` from **)**
+
+----
+
+- :ref:`Projection<class_Projection>` **Projection** **(** :ref:`Transform3D<class_Transform3D>` from **)**
+
+Method Descriptions
+-------------------
+
+.. _class_Projection_method_create_depth_correction:
+
+- :ref:`Projection<class_Projection>` **create_depth_correction** **(** :ref:`bool<class_bool>` flip_y **)** |static|
+
+----
+
+.. _class_Projection_method_create_fit_aabb:
+
+- :ref:`Projection<class_Projection>` **create_fit_aabb** **(** :ref:`AABB<class_AABB>` aabb **)** |static|
+
+----
+
+.. _class_Projection_method_create_for_hmd:
+
+- :ref:`Projection<class_Projection>` **create_for_hmd** **(** :ref:`int<class_int>` eye, :ref:`float<class_float>` aspect, :ref:`float<class_float>` intraocular_dist, :ref:`float<class_float>` display_width, :ref:`float<class_float>` display_to_lens, :ref:`float<class_float>` oversample, :ref:`float<class_float>` z_near, :ref:`float<class_float>` z_far **)** |static|
+
+----
+
+.. _class_Projection_method_create_frustum:
+
+- :ref:`Projection<class_Projection>` **create_frustum** **(** :ref:`float<class_float>` left, :ref:`float<class_float>` right, :ref:`float<class_float>` bottom, :ref:`float<class_float>` top, :ref:`float<class_float>` z_near, :ref:`float<class_float>` z_far **)** |static|
+
+----
+
+.. _class_Projection_method_create_frustum_aspect:
+
+- :ref:`Projection<class_Projection>` **create_frustum_aspect** **(** :ref:`float<class_float>` size, :ref:`float<class_float>` aspect, :ref:`Vector2<class_Vector2>` offset, :ref:`float<class_float>` z_near, :ref:`float<class_float>` z_far, :ref:`bool<class_bool>` flip_fov=false **)** |static|
+
+----
+
+.. _class_Projection_method_create_light_atlas_rect:
+
+- :ref:`Projection<class_Projection>` **create_light_atlas_rect** **(** :ref:`Rect2<class_Rect2>` rect **)** |static|
+
+----
+
+.. _class_Projection_method_create_orthogonal:
+
+- :ref:`Projection<class_Projection>` **create_orthogonal** **(** :ref:`float<class_float>` left, :ref:`float<class_float>` right, :ref:`float<class_float>` bottom, :ref:`float<class_float>` top, :ref:`float<class_float>` z_near, :ref:`float<class_float>` z_far **)** |static|
+
+----
+
+.. _class_Projection_method_create_orthogonal_aspect:
+
+- :ref:`Projection<class_Projection>` **create_orthogonal_aspect** **(** :ref:`float<class_float>` size, :ref:`float<class_float>` aspect, :ref:`float<class_float>` z_near, :ref:`float<class_float>` z_far, :ref:`bool<class_bool>` flip_fov=false **)** |static|
+
+----
+
+.. _class_Projection_method_create_perspective:
+
+- :ref:`Projection<class_Projection>` **create_perspective** **(** :ref:`float<class_float>` fovy, :ref:`float<class_float>` aspect, :ref:`float<class_float>` z_near, :ref:`float<class_float>` z_far, :ref:`bool<class_bool>` flip_fov=false **)** |static|
+
+----
+
+.. _class_Projection_method_create_perspective_hmd:
+
+- :ref:`Projection<class_Projection>` **create_perspective_hmd** **(** :ref:`float<class_float>` fovy, :ref:`float<class_float>` aspect, :ref:`float<class_float>` z_near, :ref:`float<class_float>` z_far, :ref:`bool<class_bool>` flip_fov, :ref:`int<class_int>` eye, :ref:`float<class_float>` intraocular_dist, :ref:`float<class_float>`  convergence_dist **)** |static|
+
+----
+
+.. _class_Projection_method_determinant:
+
+- :ref:`float<class_float>` **determinant** **(** **)** |const|
+
+----
+
+.. _class_Projection_method_flipped_y:
+
+- :ref:`Projection<class_Projection>` **flipped_y** **(** **)** |const|
+
+----
+
+.. _class_Projection_method_get_aspect:
+
+- :ref:`float<class_float>` **get_aspect** **(** **)** |const|
+
+----
+
+.. _class_Projection_method_get_far_plane_half_extents:
+
+- :ref:`Vector2<class_Vector2>` **get_far_plane_half_extents** **(** **)** |const|
+
+----
+
+.. _class_Projection_method_get_fov:
+
+- :ref:`float<class_float>` **get_fov** **(** **)** |const|
+
+----
+
+.. _class_Projection_method_get_fovy:
+
+- :ref:`float<class_float>` **get_fovy** **(** :ref:`float<class_float>` fovx, :ref:`float<class_float>` aspect **)** |static|
+
+----
+
+.. _class_Projection_method_get_lod_multiplier:
+
+- :ref:`float<class_float>` **get_lod_multiplier** **(** **)** |const|
+
+----
+
+.. _class_Projection_method_get_pixels_per_meter:
+
+- :ref:`int<class_int>` **get_pixels_per_meter** **(** :ref:`int<class_int>` for_pixel_width **)** |const|
+
+----
+
+.. _class_Projection_method_get_projection_plane:
+
+- :ref:`Plane<class_Plane>` **get_projection_plane** **(** :ref:`int<class_int>` plane **)** |const|
+
+----
+
+.. _class_Projection_method_get_viewport_half_extents:
+
+- :ref:`Vector2<class_Vector2>` **get_viewport_half_extents** **(** **)** |const|
+
+----
+
+.. _class_Projection_method_get_z_far:
+
+- :ref:`float<class_float>` **get_z_far** **(** **)** |const|
+
+----
+
+.. _class_Projection_method_get_z_near:
+
+- :ref:`float<class_float>` **get_z_near** **(** **)** |const|
+
+----
+
+.. _class_Projection_method_inverse:
+
+- :ref:`Projection<class_Projection>` **inverse** **(** **)** |const|
+
+----
+
+.. _class_Projection_method_is_orthogonal:
+
+- :ref:`bool<class_bool>` **is_orthogonal** **(** **)** |const|
+
+----
+
+.. _class_Projection_method_jitter_offseted:
+
+- :ref:`Projection<class_Projection>` **jitter_offseted** **(** :ref:`Vector2<class_Vector2>` offset **)** |const|
+
+----
+
+.. _class_Projection_method_perspective_znear_adjusted:
+
+- :ref:`Projection<class_Projection>` **perspective_znear_adjusted** **(** :ref:`float<class_float>` new_znear **)** |const|
+
+Operator Descriptions
+---------------------
+
+.. _class_Projection_operator_neq_bool:
+
+- :ref:`bool<class_bool>` **operator !=** **(** :ref:`Projection<class_Projection>` right **)**
+
+----
+
+.. _class_Projection_operator_mul_Projection:
+
+- :ref:`Projection<class_Projection>` **operator *** **(** :ref:`Projection<class_Projection>` right **)**
+
+----
+
+- :ref:`Vector4<class_Vector4>` **operator *** **(** :ref:`Vector4<class_Vector4>` right **)**
+
+----
+
+.. _class_Projection_operator_eq_bool:
+
+- :ref:`bool<class_bool>` **operator ==** **(** :ref:`Projection<class_Projection>` right **)**
+
+----
+
+.. _class_Projection_operator_idx_Vector4:
+
+- :ref:`Vector4<class_Vector4>` **operator []** **(** :ref:`int<class_int>` index **)**
+
+.. |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.)`
+.. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
+.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`
+.. |operator| replace:: :abbr:`operator (This method describes a valid operator to use with this type as left-hand operand.)`

+ 152 - 48
classes/class_projectsettings.rst

@@ -43,6 +43,8 @@ Properties
 +---------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+
 | :ref:`String<class_String>`                       | :ref:`application/boot_splash/image<class_ProjectSettings_property_application/boot_splash/image>`                                                                                                 | ``""``                                                                                           |
 +---------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                             | :ref:`application/boot_splash/minimum_display_time<class_ProjectSettings_property_application/boot_splash/minimum_display_time>`                                                                   | ``0``                                                                                            |
++---------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+
 | :ref:`bool<class_bool>`                           | :ref:`application/boot_splash/show_image<class_ProjectSettings_property_application/boot_splash/show_image>`                                                                                       | ``true``                                                                                         |
 +---------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+
 | :ref:`bool<class_bool>`                           | :ref:`application/boot_splash/use_filter<class_ProjectSettings_property_application/boot_splash/use_filter>`                                                                                       | ``true``                                                                                         |
@@ -227,6 +229,10 @@ Properties
 +---------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+
 | :ref:`Color<class_Color>`                         | :ref:`debug/shapes/navigation/geometry_color<class_ProjectSettings_property_debug/shapes/navigation/geometry_color>`                                                                               | ``Color(0.1, 1, 0.7, 0.4)``                                                                      |
 +---------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+
+| :ref:`Color<class_Color>`                         | :ref:`debug/shapes/paths/geometry_color<class_ProjectSettings_property_debug/shapes/paths/geometry_color>`                                                                                         | ``Color(0.1, 1, 0.7, 0.4)``                                                                      |
++---------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                         | :ref:`debug/shapes/paths/geometry_width<class_ProjectSettings_property_debug/shapes/paths/geometry_width>`                                                                                         | ``2.0``                                                                                          |
++---------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+
 | :ref:`String<class_String>`                       | :ref:`display/mouse_cursor/custom_image<class_ProjectSettings_property_display/mouse_cursor/custom_image>`                                                                                         | ``""``                                                                                           |
 +---------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+
 | :ref:`Vector2<class_Vector2>`                     | :ref:`display/mouse_cursor/custom_image_hotspot<class_ProjectSettings_property_display/mouse_cursor/custom_image_hotspot>`                                                                         | ``Vector2(0, 0)``                                                                                |
@@ -263,7 +269,7 @@ Properties
 +---------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+
 | :ref:`int<class_int>`                             | :ref:`editor/movie_writer/fps<class_ProjectSettings_property_editor/movie_writer/fps>`                                                                                                             | ``60``                                                                                           |
 +---------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                             | :ref:`editor/movie_writer/mix_rate_hz<class_ProjectSettings_property_editor/movie_writer/mix_rate_hz>`                                                                                             | ``48000``                                                                                        |
+| :ref:`int<class_int>`                             | :ref:`editor/movie_writer/mix_rate<class_ProjectSettings_property_editor/movie_writer/mix_rate>`                                                                                                   | ``48000``                                                                                        |
 +---------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+
 | :ref:`float<class_float>`                         | :ref:`editor/movie_writer/mjpeg_quality<class_ProjectSettings_property_editor/movie_writer/mjpeg_quality>`                                                                                         | ``0.75``                                                                                         |
 +---------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+
@@ -1135,27 +1141,27 @@ Properties
 +---------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+
 | :ref:`int<class_int>`                             | :ref:`rendering/shadows/directional_shadow/size.mobile<class_ProjectSettings_property_rendering/shadows/directional_shadow/size.mobile>`                                                           | ``2048``                                                                                         |
 +---------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                             | :ref:`rendering/shadows/directional_shadow/soft_shadow_quality<class_ProjectSettings_property_rendering/shadows/directional_shadow/soft_shadow_quality>`                                           | ``2``                                                                                            |
+| :ref:`int<class_int>`                             | :ref:`rendering/shadows/directional_shadow/soft_shadow_filter_quality<class_ProjectSettings_property_rendering/shadows/directional_shadow/soft_shadow_filter_quality>`                             | ``2``                                                                                            |
 +---------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                             | :ref:`rendering/shadows/directional_shadow/soft_shadow_quality.mobile<class_ProjectSettings_property_rendering/shadows/directional_shadow/soft_shadow_quality.mobile>`                             | ``0``                                                                                            |
+| :ref:`int<class_int>`                             | :ref:`rendering/shadows/directional_shadow/soft_shadow_filter_quality.mobile<class_ProjectSettings_property_rendering/shadows/directional_shadow/soft_shadow_filter_quality.mobile>`               | ``0``                                                                                            |
 +---------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                           | :ref:`rendering/shadows/shadow_atlas/16_bits<class_ProjectSettings_property_rendering/shadows/shadow_atlas/16_bits>`                                                                               | ``true``                                                                                         |
+| :ref:`bool<class_bool>`                           | :ref:`rendering/shadows/positional_shadow/atlas_16_bits<class_ProjectSettings_property_rendering/shadows/positional_shadow/atlas_16_bits>`                                                         | ``true``                                                                                         |
 +---------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                             | :ref:`rendering/shadows/shadow_atlas/quadrant_0_subdiv<class_ProjectSettings_property_rendering/shadows/shadow_atlas/quadrant_0_subdiv>`                                                           | ``2``                                                                                            |
+| :ref:`int<class_int>`                             | :ref:`rendering/shadows/positional_shadow/atlas_quadrant_0_subdiv<class_ProjectSettings_property_rendering/shadows/positional_shadow/atlas_quadrant_0_subdiv>`                                     | ``2``                                                                                            |
 +---------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                             | :ref:`rendering/shadows/shadow_atlas/quadrant_1_subdiv<class_ProjectSettings_property_rendering/shadows/shadow_atlas/quadrant_1_subdiv>`                                                           | ``2``                                                                                            |
+| :ref:`int<class_int>`                             | :ref:`rendering/shadows/positional_shadow/atlas_quadrant_1_subdiv<class_ProjectSettings_property_rendering/shadows/positional_shadow/atlas_quadrant_1_subdiv>`                                     | ``2``                                                                                            |
 +---------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                             | :ref:`rendering/shadows/shadow_atlas/quadrant_2_subdiv<class_ProjectSettings_property_rendering/shadows/shadow_atlas/quadrant_2_subdiv>`                                                           | ``3``                                                                                            |
+| :ref:`int<class_int>`                             | :ref:`rendering/shadows/positional_shadow/atlas_quadrant_2_subdiv<class_ProjectSettings_property_rendering/shadows/positional_shadow/atlas_quadrant_2_subdiv>`                                     | ``3``                                                                                            |
 +---------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                             | :ref:`rendering/shadows/shadow_atlas/quadrant_3_subdiv<class_ProjectSettings_property_rendering/shadows/shadow_atlas/quadrant_3_subdiv>`                                                           | ``4``                                                                                            |
+| :ref:`int<class_int>`                             | :ref:`rendering/shadows/positional_shadow/atlas_quadrant_3_subdiv<class_ProjectSettings_property_rendering/shadows/positional_shadow/atlas_quadrant_3_subdiv>`                                     | ``4``                                                                                            |
 +---------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                             | :ref:`rendering/shadows/shadow_atlas/size<class_ProjectSettings_property_rendering/shadows/shadow_atlas/size>`                                                                                     | ``4096``                                                                                         |
+| :ref:`int<class_int>`                             | :ref:`rendering/shadows/positional_shadow/atlas_size<class_ProjectSettings_property_rendering/shadows/positional_shadow/atlas_size>`                                                               | ``4096``                                                                                         |
 +---------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                             | :ref:`rendering/shadows/shadow_atlas/size.mobile<class_ProjectSettings_property_rendering/shadows/shadow_atlas/size.mobile>`                                                                       | ``2048``                                                                                         |
+| :ref:`int<class_int>`                             | :ref:`rendering/shadows/positional_shadow/atlas_size.mobile<class_ProjectSettings_property_rendering/shadows/positional_shadow/atlas_size.mobile>`                                                 | ``2048``                                                                                         |
 +---------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                             | :ref:`rendering/shadows/shadows/soft_shadow_quality<class_ProjectSettings_property_rendering/shadows/shadows/soft_shadow_quality>`                                                                 | ``2``                                                                                            |
+| :ref:`int<class_int>`                             | :ref:`rendering/shadows/positional_shadow/soft_shadow_filter_quality<class_ProjectSettings_property_rendering/shadows/positional_shadow/soft_shadow_filter_quality>`                               | ``2``                                                                                            |
 +---------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                             | :ref:`rendering/shadows/shadows/soft_shadow_quality.mobile<class_ProjectSettings_property_rendering/shadows/shadows/soft_shadow_quality.mobile>`                                                   | ``0``                                                                                            |
+| :ref:`int<class_int>`                             | :ref:`rendering/shadows/positional_shadow/soft_shadow_filter_quality.mobile<class_ProjectSettings_property_rendering/shadows/positional_shadow/soft_shadow_filter_quality.mobile>`                 | ``0``                                                                                            |
 +---------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+
 | :ref:`int<class_int>`                             | :ref:`rendering/textures/decals/filter<class_ProjectSettings_property_rendering/textures/decals/filter>`                                                                                           | ``3``                                                                                            |
 +---------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+
@@ -1177,6 +1183,10 @@ Properties
 +---------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+
 | :ref:`bool<class_bool>`                           | :ref:`rendering/textures/vram_compression/import_s3tc<class_ProjectSettings_property_rendering/textures/vram_compression/import_s3tc>`                                                             | ``true``                                                                                         |
 +---------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                             | :ref:`rendering/vrs/mode<class_ProjectSettings_property_rendering/vrs/mode>`                                                                                                                       | ``0``                                                                                            |
++---------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`                       | :ref:`rendering/vrs/texture<class_ProjectSettings_property_rendering/vrs/texture>`                                                                                                                 | ``""``                                                                                           |
++---------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+
 | :ref:`int<class_int>`                             | :ref:`rendering/vulkan/descriptor_pools/max_descriptors_per_pool<class_ProjectSettings_property_rendering/vulkan/descriptor_pools/max_descriptors_per_pool>`                                       | ``64``                                                                                           |
 +---------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+
 | :ref:`int<class_int>`                             | :ref:`rendering/vulkan/rendering/back_end<class_ProjectSettings_property_rendering/vulkan/rendering/back_end>`                                                                                     | ``0``                                                                                            |
@@ -1189,6 +1199,12 @@ Properties
 +---------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+
 | :ref:`int<class_int>`                             | :ref:`rendering/vulkan/staging_buffer/texture_upload_region_size_px<class_ProjectSettings_property_rendering/vulkan/staging_buffer/texture_upload_region_size_px>`                                 | ``64``                                                                                           |
 +---------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                         | :ref:`threading/worker_pool/low_priority_thread_ratio<class_ProjectSettings_property_threading/worker_pool/low_priority_thread_ratio>`                                                             | ``0.3``                                                                                          |
++---------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                             | :ref:`threading/worker_pool/max_threads<class_ProjectSettings_property_threading/worker_pool/max_threads>`                                                                                         | ``-1``                                                                                           |
++---------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                           | :ref:`threading/worker_pool/use_system_threads_for_low_priority_tasks<class_ProjectSettings_property_threading/worker_pool/use_system_threads_for_low_priority_tasks>`                             | ``true``                                                                                         |
++---------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+
 | :ref:`String<class_String>`                       | :ref:`xr/openxr/default_action_map<class_ProjectSettings_property_xr/openxr/default_action_map>`                                                                                                   | ``"res://openxr_action_map.tres"``                                                               |
 +---------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+
 | :ref:`bool<class_bool>`                           | :ref:`xr/openxr/enabled<class_ProjectSettings_property_xr/openxr/enabled>`                                                                                                                         | ``false``                                                                                        |
@@ -1278,6 +1294,18 @@ Path to an image used as the boot splash. If left empty, the default Godot Engin
 
 ----
 
+.. _class_ProjectSettings_property_application/boot_splash/minimum_display_time:
+
+- :ref:`int<class_int>` **application/boot_splash/minimum_display_time**
+
++-----------+-------+
+| *Default* | ``0`` |
++-----------+-------+
+
+Minimum boot splash display time (in milliseconds). It is not recommended to set too high values for this setting.
+
+----
+
 .. _class_ProjectSettings_property_application/boot_splash/show_image:
 
 - :ref:`bool<class_bool>` **application/boot_splash/show_image**
@@ -2404,6 +2432,30 @@ Color of the navigation geometry, visible when "Visible Navigation" is enabled i
 
 ----
 
+.. _class_ProjectSettings_property_debug/shapes/paths/geometry_color:
+
+- :ref:`Color<class_Color>` **debug/shapes/paths/geometry_color**
+
++-----------+-----------------------------+
+| *Default* | ``Color(0.1, 1, 0.7, 0.4)`` |
++-----------+-----------------------------+
+
+Color of the curve path geometry, visible when "Visible Paths" is enabled in the Debug menu.
+
+----
+
+.. _class_ProjectSettings_property_debug/shapes/paths/geometry_width:
+
+- :ref:`float<class_float>` **debug/shapes/paths/geometry_width**
+
++-----------+---------+
+| *Default* | ``2.0`` |
++-----------+---------+
+
+Line width of the curve path geometry, visible when "Visible Paths" is enabled in the Debug menu.
+
+----
+
 .. _class_ProjectSettings_property_display/mouse_cursor/custom_image:
 
 - :ref:`String<class_String>` **display/mouse_cursor/custom_image**
@@ -2640,15 +2692,15 @@ If ``true``, requests V-Sync to be disabled when writing a movie (similar to set
 | *Default* | ``60`` |
 +-----------+--------+
 
-The number of frames per second to record in the video when writing a movie. Simulation speed will adjust to always match the specified framerate, which means the engine will appear to run slower at higher :ref:`editor/movie_writer/fps<class_ProjectSettings_property_editor/movie_writer/fps>` values. Certain FPS values will require you to adjust :ref:`editor/movie_writer/mix_rate_hz<class_ProjectSettings_property_editor/movie_writer/mix_rate_hz>` to prevent audio from desynchronizing over time.
+The number of frames per second to record in the video when writing a movie. Simulation speed will adjust to always match the specified framerate, which means the engine will appear to run slower at higher :ref:`editor/movie_writer/fps<class_ProjectSettings_property_editor/movie_writer/fps>` values. Certain FPS values will require you to adjust :ref:`editor/movie_writer/mix_rate<class_ProjectSettings_property_editor/movie_writer/mix_rate>` to prevent audio from desynchronizing over time.
 
 This can be specified manually on the command line using the ``--fixed-fps <fps>`` command line argument.
 
 ----
 
-.. _class_ProjectSettings_property_editor/movie_writer/mix_rate_hz:
+.. _class_ProjectSettings_property_editor/movie_writer/mix_rate:
 
-- :ref:`int<class_int>` **editor/movie_writer/mix_rate_hz**
+- :ref:`int<class_int>` **editor/movie_writer/mix_rate**
 
 +-----------+-----------+
 | *Default* | ``48000`` |
@@ -2666,9 +2718,7 @@ The audio mix rate to use in the recorded audio when writing a movie (in Hz). Th
 | *Default* | ``0.75`` |
 +-----------+----------+
 
-The JPEG quality to use when writing a video to an AVI file, between ``0.01`` and ``1.0`` (inclusive). Higher ``quality`` values result in better-looking output at the cost of larger file sizes. Recommended ``quality`` values are between ``0.75`` and ``0.90``. Even at quality ``1.00``, JPEG compression remains lossy.
-
-\ **Note:** JPEG does not saving an alpha channel. If the :ref:`Image<class_Image>` contains an alpha channel, the image will still be saved, but the resulting JPEG file won't contain the alpha channel.
+The JPEG quality to use when writing a video to an AVI file, between ``0.01`` and ``1.0`` (inclusive). Higher ``quality`` values result in better-looking output at the cost of larger file sizes. Recommended ``quality`` values are between ``0.75`` and ``0.9``. Even at quality ``1.0``, JPEG compression remains lossy.
 
 \ **Note:** This does not affect the audio quality or writing PNG image sequences.
 
@@ -2686,9 +2736,9 @@ The output path for the movie. The file extension determines the :ref:`MovieWrit
 
 Godot has 2 built-in :ref:`MovieWriter<class_MovieWriter>`\ s:
 
-- AVI container with MJPEG for video and uncompressed audio (``.avi`` file extension). Lossy compression, medium file sizes, fast encoding. The lossy compression quality can be adjusted by changing :ref:`editor/movie_writer/mjpeg_quality<class_ProjectSettings_property_editor/movie_writer/mjpeg_quality>`. The resulting file can be viewed in most video players, but it must be converted to another format for viewing on the web or by Godot with :ref:`VideoStreamPlayer<class_VideoStreamPlayer>`. AVI output is currently limited to a file of 4 GB in size at most.
+- AVI container with MJPEG for video and uncompressed audio (``.avi`` file extension). Lossy compression, medium file sizes, fast encoding. The lossy compression quality can be adjusted by changing :ref:`editor/movie_writer/mjpeg_quality<class_ProjectSettings_property_editor/movie_writer/mjpeg_quality>`. The resulting file can be viewed in most video players, but it must be converted to another format for viewing on the web or by Godot with :ref:`VideoStreamPlayer<class_VideoStreamPlayer>`. MJPEG does not support transparency. AVI output is currently limited to a file of 4 GB in size at most.
 
-- PNG image sequence for video and WAV for audio (``.png`` file extension). Lossless compression, large file sizes, slow encoding. Designed to be encoded to a video file with another tool such as `FFmpeg <https://ffmpeg.org/>`__ after recording. Transparency is currently not supported.
+- PNG image sequence for video and WAV for audio (``.png`` file extension). Lossless compression, large file sizes, slow encoding. Designed to be encoded to a video file with another tool such as `FFmpeg <https://ffmpeg.org/>`__ after recording. Transparency is currently not supported, even if the root viewport is set to be transparent.
 
 If you need to encode to a different format or pipe a stream through third-party software, you can extend this :ref:`MovieWriter<class_MovieWriter>` class to create your own movie writers.
 
@@ -2866,7 +2916,7 @@ Path to a custom :ref:`Font<class_Font>` resource to use as default for all GUI
 | *Default* | ``true`` |
 +-----------+----------+
 
-If set to ``true``, default font uses 8-bit anitialiased glyph rendering.  See :ref:`FontData.antialiased<class_FontData_property_antialiased>`.
+If set to ``true``, default font uses 8-bit anitialiased glyph rendering.  See :ref:`FontFile.antialiased<class_FontFile_property_antialiased>`.
 
 ----
 
@@ -2894,7 +2944,7 @@ Enabling :ref:`gui/theme/default_font_generate_mipmaps<class_ProjectSettings_pro
 | *Default* | ``1`` |
 +-----------+-------+
 
-Default font hinting mode. See :ref:`FontData.hinting<class_FontData_property_hinting>`.
+Default font hinting mode. See :ref:`FontFile.hinting<class_FontFile_property_hinting>`.
 
 ----
 
@@ -2922,7 +2972,7 @@ MSDF font rendering can be combined with :ref:`gui/theme/default_font_generate_m
 | *Default* | ``1`` |
 +-----------+-------+
 
-Default font glyph sub-pixel positioning mode. See :ref:`FontData.subpixel_positioning<class_FontData_property_subpixel_positioning>`.
+Default font glyph sub-pixel positioning mode. See :ref:`FontFile.subpixel_positioning<class_FontFile_property_subpixel_positioning>`.
 
 ----
 
@@ -7602,9 +7652,9 @@ Lower-end override for :ref:`rendering/shadows/directional_shadow/size<class_Pro
 
 ----
 
-.. _class_ProjectSettings_property_rendering/shadows/directional_shadow/soft_shadow_quality:
+.. _class_ProjectSettings_property_rendering/shadows/directional_shadow/soft_shadow_filter_quality:
 
-- :ref:`int<class_int>` **rendering/shadows/directional_shadow/soft_shadow_quality**
+- :ref:`int<class_int>` **rendering/shadows/directional_shadow/soft_shadow_filter_quality**
 
 +-----------+-------+
 | *Default* | ``2`` |
@@ -7618,21 +7668,21 @@ Quality setting for shadows cast by :ref:`DirectionalLight3D<class_DirectionalLi
 
 ----
 
-.. _class_ProjectSettings_property_rendering/shadows/directional_shadow/soft_shadow_quality.mobile:
+.. _class_ProjectSettings_property_rendering/shadows/directional_shadow/soft_shadow_filter_quality.mobile:
 
-- :ref:`int<class_int>` **rendering/shadows/directional_shadow/soft_shadow_quality.mobile**
+- :ref:`int<class_int>` **rendering/shadows/directional_shadow/soft_shadow_filter_quality.mobile**
 
 +-----------+-------+
 | *Default* | ``0`` |
 +-----------+-------+
 
-Lower-end override for :ref:`rendering/shadows/directional_shadow/soft_shadow_quality<class_ProjectSettings_property_rendering/shadows/directional_shadow/soft_shadow_quality>` on mobile devices, due to performance concerns or driver support.
+Lower-end override for :ref:`rendering/shadows/directional_shadow/soft_shadow_filter_quality<class_ProjectSettings_property_rendering/shadows/directional_shadow/soft_shadow_filter_quality>` on mobile devices, due to performance concerns or driver support.
 
 ----
 
-.. _class_ProjectSettings_property_rendering/shadows/shadow_atlas/16_bits:
+.. _class_ProjectSettings_property_rendering/shadows/positional_shadow/atlas_16_bits:
 
-- :ref:`bool<class_bool>` **rendering/shadows/shadow_atlas/16_bits**
+- :ref:`bool<class_bool>` **rendering/shadows/positional_shadow/atlas_16_bits**
 
 +-----------+----------+
 | *Default* | ``true`` |
@@ -7640,9 +7690,9 @@ Lower-end override for :ref:`rendering/shadows/directional_shadow/soft_shadow_qu
 
 ----
 
-.. _class_ProjectSettings_property_rendering/shadows/shadow_atlas/quadrant_0_subdiv:
+.. _class_ProjectSettings_property_rendering/shadows/positional_shadow/atlas_quadrant_0_subdiv:
 
-- :ref:`int<class_int>` **rendering/shadows/shadow_atlas/quadrant_0_subdiv**
+- :ref:`int<class_int>` **rendering/shadows/positional_shadow/atlas_quadrant_0_subdiv**
 
 +-----------+-------+
 | *Default* | ``2`` |
@@ -7652,9 +7702,9 @@ Subdivision quadrant size for shadow mapping. See shadow mapping documentation.
 
 ----
 
-.. _class_ProjectSettings_property_rendering/shadows/shadow_atlas/quadrant_1_subdiv:
+.. _class_ProjectSettings_property_rendering/shadows/positional_shadow/atlas_quadrant_1_subdiv:
 
-- :ref:`int<class_int>` **rendering/shadows/shadow_atlas/quadrant_1_subdiv**
+- :ref:`int<class_int>` **rendering/shadows/positional_shadow/atlas_quadrant_1_subdiv**
 
 +-----------+-------+
 | *Default* | ``2`` |
@@ -7664,9 +7714,9 @@ Subdivision quadrant size for shadow mapping. See shadow mapping documentation.
 
 ----
 
-.. _class_ProjectSettings_property_rendering/shadows/shadow_atlas/quadrant_2_subdiv:
+.. _class_ProjectSettings_property_rendering/shadows/positional_shadow/atlas_quadrant_2_subdiv:
 
-- :ref:`int<class_int>` **rendering/shadows/shadow_atlas/quadrant_2_subdiv**
+- :ref:`int<class_int>` **rendering/shadows/positional_shadow/atlas_quadrant_2_subdiv**
 
 +-----------+-------+
 | *Default* | ``3`` |
@@ -7676,9 +7726,9 @@ Subdivision quadrant size for shadow mapping. See shadow mapping documentation.
 
 ----
 
-.. _class_ProjectSettings_property_rendering/shadows/shadow_atlas/quadrant_3_subdiv:
+.. _class_ProjectSettings_property_rendering/shadows/positional_shadow/atlas_quadrant_3_subdiv:
 
-- :ref:`int<class_int>` **rendering/shadows/shadow_atlas/quadrant_3_subdiv**
+- :ref:`int<class_int>` **rendering/shadows/positional_shadow/atlas_quadrant_3_subdiv**
 
 +-----------+-------+
 | *Default* | ``4`` |
@@ -7688,9 +7738,9 @@ Subdivision quadrant size for shadow mapping. See shadow mapping documentation.
 
 ----
 
-.. _class_ProjectSettings_property_rendering/shadows/shadow_atlas/size:
+.. _class_ProjectSettings_property_rendering/shadows/positional_shadow/atlas_size:
 
-- :ref:`int<class_int>` **rendering/shadows/shadow_atlas/size**
+- :ref:`int<class_int>` **rendering/shadows/positional_shadow/atlas_size**
 
 +-----------+----------+
 | *Default* | ``4096`` |
@@ -7700,21 +7750,21 @@ Size for shadow atlas (used for OmniLights and SpotLights). See documentation.
 
 ----
 
-.. _class_ProjectSettings_property_rendering/shadows/shadow_atlas/size.mobile:
+.. _class_ProjectSettings_property_rendering/shadows/positional_shadow/atlas_size.mobile:
 
-- :ref:`int<class_int>` **rendering/shadows/shadow_atlas/size.mobile**
+- :ref:`int<class_int>` **rendering/shadows/positional_shadow/atlas_size.mobile**
 
 +-----------+----------+
 | *Default* | ``2048`` |
 +-----------+----------+
 
-Lower-end override for :ref:`rendering/shadows/shadow_atlas/size<class_ProjectSettings_property_rendering/shadows/shadow_atlas/size>` on mobile devices, due to performance concerns or driver support.
+Lower-end override for :ref:`rendering/shadows/positional_shadow/atlas_size<class_ProjectSettings_property_rendering/shadows/positional_shadow/atlas_size>` on mobile devices, due to performance concerns or driver support.
 
 ----
 
-.. _class_ProjectSettings_property_rendering/shadows/shadows/soft_shadow_quality:
+.. _class_ProjectSettings_property_rendering/shadows/positional_shadow/soft_shadow_filter_quality:
 
-- :ref:`int<class_int>` **rendering/shadows/shadows/soft_shadow_quality**
+- :ref:`int<class_int>` **rendering/shadows/positional_shadow/soft_shadow_filter_quality**
 
 +-----------+-------+
 | *Default* | ``2`` |
@@ -7728,15 +7778,15 @@ Quality setting for shadows cast by :ref:`OmniLight3D<class_OmniLight3D>`\ s and
 
 ----
 
-.. _class_ProjectSettings_property_rendering/shadows/shadows/soft_shadow_quality.mobile:
+.. _class_ProjectSettings_property_rendering/shadows/positional_shadow/soft_shadow_filter_quality.mobile:
 
-- :ref:`int<class_int>` **rendering/shadows/shadows/soft_shadow_quality.mobile**
+- :ref:`int<class_int>` **rendering/shadows/positional_shadow/soft_shadow_filter_quality.mobile**
 
 +-----------+-------+
 | *Default* | ``0`` |
 +-----------+-------+
 
-Lower-end override for :ref:`rendering/shadows/shadows/soft_shadow_quality<class_ProjectSettings_property_rendering/shadows/shadows/soft_shadow_quality>` on mobile devices, due to performance concerns or driver support.
+Lower-end override for :ref:`rendering/shadows/positional_shadow/soft_shadow_filter_quality<class_ProjectSettings_property_rendering/shadows/positional_shadow/soft_shadow_filter_quality>` on mobile devices, due to performance concerns or driver support.
 
 ----
 
@@ -7868,6 +7918,30 @@ If ``true``, the texture importer will import VRAM-compressed textures using the
 
 ----
 
+.. _class_ProjectSettings_property_rendering/vrs/mode:
+
+- :ref:`int<class_int>` **rendering/vrs/mode**
+
++-----------+-------+
+| *Default* | ``0`` |
++-----------+-------+
+
+Set the default Variable Rate Shading (VRS) mode for the main viewport. See :ref:`Viewport.vrs_mode<class_Viewport_property_vrs_mode>` to change this at runtime, and :ref:`VRSMode<enum_Viewport_VRSMode>` for possible values.
+
+----
+
+.. _class_ProjectSettings_property_rendering/vrs/texture:
+
+- :ref:`String<class_String>` **rendering/vrs/texture**
+
++-----------+--------+
+| *Default* | ``""`` |
++-----------+--------+
+
+If :ref:`rendering/vrs/mode<class_ProjectSettings_property_rendering/vrs/mode>` is set to texture, this is the path to default texture loaded as the VRS image.
+
+----
+
 .. _class_ProjectSettings_property_rendering/vulkan/descriptor_pools/max_descriptors_per_pool:
 
 - :ref:`int<class_int>` **rendering/vulkan/descriptor_pools/max_descriptors_per_pool**
@@ -7928,6 +8002,36 @@ If ``true``, the texture importer will import VRAM-compressed textures using the
 
 ----
 
+.. _class_ProjectSettings_property_threading/worker_pool/low_priority_thread_ratio:
+
+- :ref:`float<class_float>` **threading/worker_pool/low_priority_thread_ratio**
+
++-----------+---------+
+| *Default* | ``0.3`` |
++-----------+---------+
+
+----
+
+.. _class_ProjectSettings_property_threading/worker_pool/max_threads:
+
+- :ref:`int<class_int>` **threading/worker_pool/max_threads**
+
++-----------+--------+
+| *Default* | ``-1`` |
++-----------+--------+
+
+----
+
+.. _class_ProjectSettings_property_threading/worker_pool/use_system_threads_for_low_priority_tasks:
+
+- :ref:`bool<class_bool>` **threading/worker_pool/use_system_threads_for_low_priority_tasks**
+
++-----------+----------+
+| *Default* | ``true`` |
++-----------+----------+
+
+----
+
 .. _class_ProjectSettings_property_xr/openxr/default_action_map:
 
 - :ref:`String<class_String>` **xr/openxr/default_action_map**

+ 2 - 2
classes/class_renderingdevice.rst

@@ -127,7 +127,7 @@ Methods
 +------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`RID<class_RID>`                                      | :ref:`index_buffer_create<class_RenderingDevice_method_index_buffer_create>` **(** :ref:`int<class_int>` size_indices, :ref:`IndexBufferFormat<enum_RenderingDevice_IndexBufferFormat>` format, :ref:`PackedByteArray<class_PackedByteArray>` data=PackedByteArray(), :ref:`bool<class_bool>` use_restart_indices=false **)**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
 +------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                                      | :ref:`limit_get<class_RenderingDevice_method_limit_get>` **(** :ref:`Limit<enum_RenderingDevice_Limit>` limit **)**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
+| :ref:`int<class_int>`                                      | :ref:`limit_get<class_RenderingDevice_method_limit_get>` **(** :ref:`Limit<enum_RenderingDevice_Limit>` limit **)** |const|                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
 +------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`RID<class_RID>`                                      | :ref:`render_pipeline_create<class_RenderingDevice_method_render_pipeline_create>` **(** :ref:`RID<class_RID>` shader, :ref:`int<class_int>` framebuffer_format, :ref:`int<class_int>` vertex_format, :ref:`RenderPrimitive<enum_RenderingDevice_RenderPrimitive>` primitive, :ref:`RDPipelineRasterizationState<class_RDPipelineRasterizationState>` rasterization_state, :ref:`RDPipelineMultisampleState<class_RDPipelineMultisampleState>` multisample_state, :ref:`RDPipelineDepthStencilState<class_RDPipelineDepthStencilState>` stencil_state, :ref:`RDPipelineColorBlendState<class_RDPipelineColorBlendState>` color_blend_state, :ref:`int<class_int>` dynamic_state_flags=0, :ref:`int<class_int>` for_render_pass=0, :ref:`RDPipelineSpecializationConstant[]<class_RDPipelineSpecializationConstant>` specialization_constants=[] **)** |
 +------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
@@ -2571,7 +2571,7 @@ Method Descriptions
 
 .. _class_RenderingDevice_method_limit_get:
 
-- :ref:`int<class_int>` **limit_get** **(** :ref:`Limit<enum_RenderingDevice_Limit>` limit **)**
+- :ref:`int<class_int>` **limit_get** **(** :ref:`Limit<enum_RenderingDevice_Limit>` limit **)** |const|
 
 ----
 

+ 86 - 26
classes/class_renderingserver.rst

@@ -266,7 +266,7 @@ Methods
 +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                                                               | :ref:`directional_shadow_atlas_set_size<class_RenderingServer_method_directional_shadow_atlas_set_size>` **(** :ref:`int<class_int>` size, :ref:`bool<class_bool>` is_16bits **)**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
 +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                               | :ref:`directional_shadow_quality_set<class_RenderingServer_method_directional_shadow_quality_set>` **(** :ref:`ShadowQuality<enum_RenderingServer_ShadowQuality>` quality **)**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
+| void                                                               | :ref:`directional_soft_shadow_filter_set_quality<class_RenderingServer_method_directional_soft_shadow_filter_set_quality>` **(** :ref:`ShadowQuality<enum_RenderingServer_ShadowQuality>` quality **)**                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
 +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`Image<class_Image>`                                          | :ref:`environment_bake_panorama<class_RenderingServer_method_environment_bake_panorama>` **(** :ref:`RID<class_RID>` environment, :ref:`bool<class_bool>` bake_irradiance, :ref:`Vector2i<class_Vector2i>` size **)**                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
 +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
@@ -678,6 +678,8 @@ Methods
 +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                                                               | :ref:`particles_set_use_local_coordinates<class_RenderingServer_method_particles_set_use_local_coordinates>` **(** :ref:`RID<class_RID>` particles, :ref:`bool<class_bool>` enable **)**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
 +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                               | :ref:`positional_soft_shadow_filter_set_quality<class_RenderingServer_method_positional_soft_shadow_filter_set_quality>` **(** :ref:`ShadowQuality<enum_RenderingServer_ShadowQuality>` quality **)**                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
++--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`RID<class_RID>`                                              | :ref:`reflection_probe_create<class_RenderingServer_method_reflection_probe_create>` **(** **)**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
 +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                                                               | :ref:`reflection_probe_set_ambient_color<class_RenderingServer_method_reflection_probe_set_ambient_color>` **(** :ref:`RID<class_RID>` probe, :ref:`Color<class_Color>` color **)**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
@@ -736,9 +738,11 @@ Methods
 +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`Dictionary[]<class_Dictionary>`                              | :ref:`shader_get_param_list<class_RenderingServer_method_shader_get_param_list>` **(** :ref:`RID<class_RID>` shader **)** |const|                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
 +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                               | :ref:`shader_set_code<class_RenderingServer_method_shader_set_code>` **(** :ref:`RID<class_RID>` shader, :ref:`String<class_String>` code **)**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
++--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                                                               | :ref:`shader_set_default_texture_param<class_RenderingServer_method_shader_set_default_texture_param>` **(** :ref:`RID<class_RID>` shader, :ref:`StringName<class_StringName>` param, :ref:`RID<class_RID>` texture, :ref:`int<class_int>` index=0 **)**                                                                                                                                                                                                                                                                                                                                                                                                                           |
 +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                               | :ref:`shadows_quality_set<class_RenderingServer_method_shadows_quality_set>` **(** :ref:`ShadowQuality<enum_RenderingServer_ShadowQuality>` quality **)**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
+| void                                                               | :ref:`shader_set_path_hint<class_RenderingServer_method_shader_set_path_hint>` **(** :ref:`RID<class_RID>` shader, :ref:`String<class_String>` path **)**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
 +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                                                               | :ref:`skeleton_allocate_data<class_RenderingServer_method_skeleton_allocate_data>` **(** :ref:`RID<class_RID>` skeleton, :ref:`int<class_int>` bones, :ref:`bool<class_bool>` is_2d_skeleton=false **)**                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
 +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
@@ -862,6 +866,10 @@ Methods
 +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                                                               | :ref:`viewport_set_parent_viewport<class_RenderingServer_method_viewport_set_parent_viewport>` **(** :ref:`RID<class_RID>` viewport, :ref:`RID<class_RID>` parent_viewport **)**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
 +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                               | :ref:`viewport_set_positional_shadow_atlas_quadrant_subdivision<class_RenderingServer_method_viewport_set_positional_shadow_atlas_quadrant_subdivision>` **(** :ref:`RID<class_RID>` viewport, :ref:`int<class_int>` quadrant, :ref:`int<class_int>` subdivision **)**                                                                                                                                                                                                                                                                                                                                                                                                             |
++--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                               | :ref:`viewport_set_positional_shadow_atlas_size<class_RenderingServer_method_viewport_set_positional_shadow_atlas_size>` **(** :ref:`RID<class_RID>` viewport, :ref:`int<class_int>` size, :ref:`bool<class_bool>` use_16_bits=false **)**                                                                                                                                                                                                                                                                                                                                                                                                                                         |
++--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                                                               | :ref:`viewport_set_render_direct_to_screen<class_RenderingServer_method_viewport_set_render_direct_to_screen>` **(** :ref:`RID<class_RID>` viewport, :ref:`bool<class_bool>` enabled **)**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
 +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                                                               | :ref:`viewport_set_scaling_3d_mode<class_RenderingServer_method_viewport_set_scaling_3d_mode>` **(** :ref:`RID<class_RID>` viewport, :ref:`ViewportScaling3DMode<enum_RenderingServer_ViewportScaling3DMode>` scaling_3d_mode **)**                                                                                                                                                                                                                                                                                                                                                                                                                                                |
@@ -874,10 +882,6 @@ Methods
 +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                                                               | :ref:`viewport_set_sdf_oversize_and_scale<class_RenderingServer_method_viewport_set_sdf_oversize_and_scale>` **(** :ref:`RID<class_RID>` viewport, :ref:`ViewportSDFOversize<enum_RenderingServer_ViewportSDFOversize>` oversize, :ref:`ViewportSDFScale<enum_RenderingServer_ViewportSDFScale>` scale **)**                                                                                                                                                                                                                                                                                                                                                                       |
 +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                               | :ref:`viewport_set_shadow_atlas_quadrant_subdivision<class_RenderingServer_method_viewport_set_shadow_atlas_quadrant_subdivision>` **(** :ref:`RID<class_RID>` viewport, :ref:`int<class_int>` quadrant, :ref:`int<class_int>` subdivision **)**                                                                                                                                                                                                                                                                                                                                                                                                                                   |
-+--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                               | :ref:`viewport_set_shadow_atlas_size<class_RenderingServer_method_viewport_set_shadow_atlas_size>` **(** :ref:`RID<class_RID>` viewport, :ref:`int<class_int>` size, :ref:`bool<class_bool>` use_16_bits=false **)**                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
-+--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                                                               | :ref:`viewport_set_size<class_RenderingServer_method_viewport_set_size>` **(** :ref:`RID<class_RID>` viewport, :ref:`int<class_int>` width, :ref:`int<class_int>` height **)**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
 +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                                                               | :ref:`viewport_set_snap_2d_transforms_to_pixel<class_RenderingServer_method_viewport_set_snap_2d_transforms_to_pixel>` **(** :ref:`RID<class_RID>` viewport, :ref:`bool<class_bool>` enabled **)**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
@@ -896,6 +900,10 @@ Methods
 +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                                                               | :ref:`viewport_set_use_xr<class_RenderingServer_method_viewport_set_use_xr>` **(** :ref:`RID<class_RID>` viewport, :ref:`bool<class_bool>` use_xr **)**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
 +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                               | :ref:`viewport_set_vrs_mode<class_RenderingServer_method_viewport_set_vrs_mode>` **(** :ref:`RID<class_RID>` viewport, :ref:`ViewportVRSMode<enum_RenderingServer_ViewportVRSMode>` mode **)**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
++--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                               | :ref:`viewport_set_vrs_texture<class_RenderingServer_method_viewport_set_vrs_texture>` **(** :ref:`RID<class_RID>` viewport, :ref:`RID<class_RID>` texture **)**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
++--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`RID<class_RID>`                                              | :ref:`visibility_notifier_create<class_RenderingServer_method_visibility_notifier_create>` **(** **)**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
 +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                                                               | :ref:`visibility_notifier_set_aabb<class_RenderingServer_method_visibility_notifier_set_aabb>` **(** :ref:`RID<class_RID>` notifier, :ref:`AABB<class_AABB>` aabb **)**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
@@ -2113,6 +2121,28 @@ enum **ViewportDebugDraw**:
 
 ----
 
+.. _enum_RenderingServer_ViewportVRSMode:
+
+.. _class_RenderingServer_constant_VIEWPORT_VRS_DISABLED:
+
+.. _class_RenderingServer_constant_VIEWPORT_VRS_TEXTURE:
+
+.. _class_RenderingServer_constant_VIEWPORT_VRS_XR:
+
+.. _class_RenderingServer_constant_VIEWPORT_VRS_MAX:
+
+enum **ViewportVRSMode**:
+
+- **VIEWPORT_VRS_DISABLED** = **0** --- VRS is disabled.
+
+- **VIEWPORT_VRS_TEXTURE** = **1** --- VRS uses a texture. Note, for stereoscopic use a texture atlas with a texture for each view.
+
+- **VIEWPORT_VRS_XR** = **2** --- VRS texture is supplied by the primary :ref:`XRInterface<class_XRInterface>`.
+
+- **VIEWPORT_VRS_MAX** = **3** --- Represents the size of the :ref:`ViewportVRSMode<enum_RenderingServer_ViewportVRSMode>` enum.
+
+----
+
 .. _enum_RenderingServer_SkyMode:
 
 .. _class_RenderingServer_constant_SKY_MODE_AUTOMATIC:
@@ -3864,9 +3894,9 @@ To place in a scene, attach this directional light to an instance using :ref:`in
 
 ----
 
-.. _class_RenderingServer_method_directional_shadow_quality_set:
+.. _class_RenderingServer_method_directional_soft_shadow_filter_set_quality:
 
-- void **directional_shadow_quality_set** **(** :ref:`ShadowQuality<enum_RenderingServer_ShadowQuality>` quality **)**
+- void **directional_soft_shadow_filter_set_quality** **(** :ref:`ShadowQuality<enum_RenderingServer_ShadowQuality>` quality **)**
 
 ----
 
@@ -5398,6 +5428,12 @@ If ``true``, particles use local coordinates. If ``false`` they use global coord
 
 ----
 
+.. _class_RenderingServer_method_positional_soft_shadow_filter_set_quality:
+
+- void **positional_soft_shadow_filter_set_quality** **(** :ref:`ShadowQuality<enum_RenderingServer_ShadowQuality>` quality **)**
+
+----
+
 .. _class_RenderingServer_method_reflection_probe_create:
 
 - :ref:`RID<class_RID>` **reflection_probe_create** **(** **)**
@@ -5626,6 +5662,12 @@ Returns the parameters of a shader.
 
 ----
 
+.. _class_RenderingServer_method_shader_set_code:
+
+- void **shader_set_code** **(** :ref:`RID<class_RID>` shader, :ref:`String<class_String>` code **)**
+
+----
+
 .. _class_RenderingServer_method_shader_set_default_texture_param:
 
 - void **shader_set_default_texture_param** **(** :ref:`RID<class_RID>` shader, :ref:`StringName<class_StringName>` param, :ref:`RID<class_RID>` texture, :ref:`int<class_int>` index=0 **)**
@@ -5636,9 +5678,9 @@ Sets a shader's default texture. Overwrites the texture given by name.
 
 ----
 
-.. _class_RenderingServer_method_shadows_quality_set:
+.. _class_RenderingServer_method_shader_set_path_hint:
 
-- void **shadows_quality_set** **(** :ref:`ShadowQuality<enum_RenderingServer_ShadowQuality>` quality **)**
+- void **shader_set_path_hint** **(** :ref:`RID<class_RID>` shader, :ref:`String<class_String>` path **)**
 
 ----
 
@@ -6091,6 +6133,24 @@ Sets the viewport's parent to another viewport.
 
 ----
 
+.. _class_RenderingServer_method_viewport_set_positional_shadow_atlas_quadrant_subdivision:
+
+- void **viewport_set_positional_shadow_atlas_quadrant_subdivision** **(** :ref:`RID<class_RID>` viewport, :ref:`int<class_int>` quadrant, :ref:`int<class_int>` subdivision **)**
+
+Sets the shadow atlas quadrant's subdivision.
+
+----
+
+.. _class_RenderingServer_method_viewport_set_positional_shadow_atlas_size:
+
+- void **viewport_set_positional_shadow_atlas_size** **(** :ref:`RID<class_RID>` viewport, :ref:`int<class_int>` size, :ref:`bool<class_bool>` use_16_bits=false **)**
+
+Sets the size of the shadow atlas's images (used for omni and spot lights). The value will be rounded up to the nearest power of 2.
+
+\ **Note:** If this is set to ``0``, no shadows will be visible at all (including directional shadows).
+
+----
+
 .. _class_RenderingServer_method_viewport_set_render_direct_to_screen:
 
 - void **viewport_set_render_direct_to_screen** **(** :ref:`RID<class_RID>` viewport, :ref:`bool<class_bool>` enabled **)**
@@ -6139,22 +6199,6 @@ The scenario contains information about environment information, reflection atla
 
 ----
 
-.. _class_RenderingServer_method_viewport_set_shadow_atlas_quadrant_subdivision:
-
-- void **viewport_set_shadow_atlas_quadrant_subdivision** **(** :ref:`RID<class_RID>` viewport, :ref:`int<class_int>` quadrant, :ref:`int<class_int>` subdivision **)**
-
-Sets the shadow atlas quadrant's subdivision.
-
-----
-
-.. _class_RenderingServer_method_viewport_set_shadow_atlas_size:
-
-- void **viewport_set_shadow_atlas_size** **(** :ref:`RID<class_RID>` viewport, :ref:`int<class_int>` size, :ref:`bool<class_bool>` use_16_bits=false **)**
-
-Sets the size of the shadow atlas's images (used for omni and spot lights). The value will be rounded up to the nearest power of 2.
-
-----
-
 .. _class_RenderingServer_method_viewport_set_size:
 
 - void **viewport_set_size** **(** :ref:`RID<class_RID>` viewport, :ref:`int<class_int>` width, :ref:`int<class_int>` height **)**
@@ -6219,6 +6263,22 @@ If ``true``, the viewport uses augmented or virtual reality technologies. See :r
 
 ----
 
+.. _class_RenderingServer_method_viewport_set_vrs_mode:
+
+- void **viewport_set_vrs_mode** **(** :ref:`RID<class_RID>` viewport, :ref:`ViewportVRSMode<enum_RenderingServer_ViewportVRSMode>` mode **)**
+
+Sets the Variable Rate Shading (VRS) mode for the viewport. Note, if hardware does not support VRS this property is ignored.
+
+----
+
+.. _class_RenderingServer_method_viewport_set_vrs_texture:
+
+- void **viewport_set_vrs_texture** **(** :ref:`RID<class_RID>` viewport, :ref:`RID<class_RID>` texture **)**
+
+Texture to use when the VRS mode is set to :ref:`VIEWPORT_VRS_TEXTURE<class_RenderingServer_constant_VIEWPORT_VRS_TEXTURE>`.
+
+----
+
 .. _class_RenderingServer_method_visibility_notifier_create:
 
 - :ref:`RID<class_RID>` **visibility_notifier_create** **(** **)**

File diff suppressed because it is too large
+ 0 - 0
classes/class_resource.rst


+ 8 - 0
classes/class_resourceformatloader.rst

@@ -28,6 +28,8 @@ Methods
 +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`bool<class_bool>`                           | :ref:`_exists<class_ResourceFormatLoader_method__exists>` **(** :ref:`String<class_String>` path **)** |virtual| |const|                                                                                                                   |
 +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`PackedStringArray<class_PackedStringArray>` | :ref:`_get_classes_used<class_ResourceFormatLoader_method__get_classes_used>` **(** :ref:`String<class_String>` path **)** |virtual| |const|                                                                                               |
++---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`PackedStringArray<class_PackedStringArray>` | :ref:`_get_dependencies<class_ResourceFormatLoader_method__get_dependencies>` **(** :ref:`String<class_String>` path, :ref:`bool<class_bool>` add_types **)** |virtual| |const|                                                            |
 +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`PackedStringArray<class_PackedStringArray>` | :ref:`_get_recognized_extensions<class_ResourceFormatLoader_method__get_recognized_extensions>` **(** **)** |virtual| |const|                                                                                                              |
@@ -71,6 +73,12 @@ Method Descriptions
 
 ----
 
+.. _class_ResourceFormatLoader_method__get_classes_used:
+
+- :ref:`PackedStringArray<class_PackedStringArray>` **_get_classes_used** **(** :ref:`String<class_String>` path **)** |virtual| |const|
+
+----
+
 .. _class_ResourceFormatLoader_method__get_dependencies:
 
 - :ref:`PackedStringArray<class_PackedStringArray>` **_get_dependencies** **(** :ref:`String<class_String>` path, :ref:`bool<class_bool>` add_types **)** |virtual| |const|

+ 24 - 0
classes/class_resourceloader.rst

@@ -20,6 +20,8 @@ Singleton used to load resource files from the filesystem.
 
 It uses the many :ref:`ResourceFormatLoader<class_ResourceFormatLoader>` classes registered in the engine (either built-in or from a plugin) to load files into memory and convert them to a format that can be used by the engine.
 
+\ **Note:** You have to import the files into the engine first to load them using :ref:`load<class_ResourceLoader_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>`.
+
 Tutorials
 ---------
 
@@ -28,6 +30,8 @@ Tutorials
 Methods
 -------
 
++---------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                          | :ref:`add_resource_format_loader<class_ResourceLoader_method_add_resource_format_loader>` **(** :ref:`ResourceFormatLoader<class_ResourceFormatLoader>` format_loader, :ref:`bool<class_bool>` at_front=false **)**   |
 +---------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`bool<class_bool>`                                       | :ref:`exists<class_ResourceLoader_method_exists>` **(** :ref:`String<class_String>` path, :ref:`String<class_String>` type_hint="" **)**                                                                              |
 +---------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
@@ -47,6 +51,8 @@ Methods
 +---------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`Error<enum_@GlobalScope_Error>`                         | :ref:`load_threaded_request<class_ResourceLoader_method_load_threaded_request>` **(** :ref:`String<class_String>` path, :ref:`String<class_String>` type_hint="", :ref:`bool<class_bool>` use_sub_threads=false **)** |
 +---------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                          | :ref:`remove_resource_format_loader<class_ResourceLoader_method_remove_resource_format_loader>` **(** :ref:`ResourceFormatLoader<class_ResourceFormatLoader>` format_loader **)**                                     |
++---------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                                                          | :ref:`set_abort_on_missing_resources<class_ResourceLoader_method_set_abort_on_missing_resources>` **(** :ref:`bool<class_bool>` abort **)**                                                                           |
 +---------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 
@@ -94,6 +100,16 @@ enum **CacheMode**:
 Method Descriptions
 -------------------
 
+.. _class_ResourceLoader_method_add_resource_format_loader:
+
+- void **add_resource_format_loader** **(** :ref:`ResourceFormatLoader<class_ResourceFormatLoader>` format_loader, :ref:`bool<class_bool>` at_front=false **)**
+
+Registers a new :ref:`ResourceFormatLoader<class_ResourceFormatLoader>`. The ResourceLoader will use the ResourceFormatLoader as described in :ref:`load<class_ResourceLoader_method_load>`.
+
+This method is performed implicitly for ResourceFormatLoaders written in GDScript (see :ref:`ResourceFormatLoader<class_ResourceFormatLoader>` for more information).
+
+----
+
 .. _class_ResourceLoader_method_exists:
 
 - :ref:`bool<class_bool>` **exists** **(** :ref:`String<class_String>` path, :ref:`String<class_String>` type_hint="" **)**
@@ -184,6 +200,14 @@ Loads the resource using threads. If ``use_sub_threads`` is ``true``, multiple t
 
 ----
 
+.. _class_ResourceLoader_method_remove_resource_format_loader:
+
+- void **remove_resource_format_loader** **(** :ref:`ResourceFormatLoader<class_ResourceFormatLoader>` format_loader **)**
+
+Unregisters the given :ref:`ResourceFormatLoader<class_ResourceFormatLoader>`.
+
+----
+
 .. _class_ResourceLoader_method_set_abort_on_missing_resources:
 
 - void **set_abort_on_missing_resources** **(** :ref:`bool<class_bool>` abort **)**

+ 29 - 7
classes/class_resourcesaver.rst

@@ -23,11 +23,15 @@ It uses the many :ref:`ResourceFormatSaver<class_ResourceFormatSaver>` classes r
 Methods
 -------
 
-+---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`PackedStringArray<class_PackedStringArray>` | :ref:`get_recognized_extensions<class_ResourceSaver_method_get_recognized_extensions>` **(** :ref:`Resource<class_Resource>` type **)**                            |
-+---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Error<enum_@GlobalScope_Error>`             | :ref:`save<class_ResourceSaver_method_save>` **(** :ref:`String<class_String>` path, :ref:`Resource<class_Resource>` resource, :ref:`int<class_int>` flags=0 **)** |
-+---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
++---------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                              | :ref:`add_resource_format_saver<class_ResourceSaver_method_add_resource_format_saver>` **(** :ref:`ResourceFormatSaver<class_ResourceFormatSaver>` format_saver, :ref:`bool<class_bool>` at_front=false **)** |
++---------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`PackedStringArray<class_PackedStringArray>` | :ref:`get_recognized_extensions<class_ResourceSaver_method_get_recognized_extensions>` **(** :ref:`Resource<class_Resource>` type **)**                                                                       |
++---------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                              | :ref:`remove_resource_format_saver<class_ResourceSaver_method_remove_resource_format_saver>` **(** :ref:`ResourceFormatSaver<class_ResourceFormatSaver>` format_saver **)**                                   |
++---------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Error<enum_@GlobalScope_Error>`             | :ref:`save<class_ResourceSaver_method_save>` **(** :ref:`String<class_String>` path, :ref:`Resource<class_Resource>` resource, :ref:`SaverFlags<enum_ResourceSaver_SaverFlags>` flags=0 **)**                 |
++---------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 
 Enumerations
 ------------
@@ -50,7 +54,7 @@ Enumerations
 
 .. _class_ResourceSaver_constant_FLAG_REPLACE_SUBRESOURCE_PATHS:
 
-enum **SaverFlags**:
+flags **SaverFlags**:
 
 - **FLAG_NONE** = **0** --- No resource saving option.
 
@@ -71,6 +75,16 @@ enum **SaverFlags**:
 Method Descriptions
 -------------------
 
+.. _class_ResourceSaver_method_add_resource_format_saver:
+
+- void **add_resource_format_saver** **(** :ref:`ResourceFormatSaver<class_ResourceFormatSaver>` format_saver, :ref:`bool<class_bool>` at_front=false **)**
+
+Registers a new :ref:`ResourceFormatSaver<class_ResourceFormatSaver>`. The ResourceSaver will use the ResourceFormatSaver as described in :ref:`save<class_ResourceSaver_method_save>`.
+
+This method is performed implicitly for ResourceFormatSavers written in GDScript (see :ref:`ResourceFormatSaver<class_ResourceFormatSaver>` for more information).
+
+----
+
 .. _class_ResourceSaver_method_get_recognized_extensions:
 
 - :ref:`PackedStringArray<class_PackedStringArray>` **get_recognized_extensions** **(** :ref:`Resource<class_Resource>` type **)**
@@ -79,9 +93,17 @@ Returns the list of extensions available for saving a resource of a given type.
 
 ----
 
+.. _class_ResourceSaver_method_remove_resource_format_saver:
+
+- void **remove_resource_format_saver** **(** :ref:`ResourceFormatSaver<class_ResourceFormatSaver>` format_saver **)**
+
+Unregisters the given :ref:`ResourceFormatSaver<class_ResourceFormatSaver>`.
+
+----
+
 .. _class_ResourceSaver_method_save:
 
-- :ref:`Error<enum_@GlobalScope_Error>` **save** **(** :ref:`String<class_String>` path, :ref:`Resource<class_Resource>` resource, :ref:`int<class_int>` flags=0 **)**
+- :ref:`Error<enum_@GlobalScope_Error>` **save** **(** :ref:`String<class_String>` path, :ref:`Resource<class_Resource>` resource, :ref:`SaverFlags<enum_ResourceSaver_SaverFlags>` flags=0 **)**
 
 Saves a resource to disk to the given path, using a :ref:`ResourceFormatSaver<class_ResourceFormatSaver>` that recognizes the resource object.
 

+ 2 - 14
classes/class_richtextlabel.rst

@@ -166,9 +166,7 @@ Methods
 +-------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                                | :ref:`push_fgcolor<class_RichTextLabel_method_push_fgcolor>` **(** :ref:`Color<class_Color>` fgcolor **)**                                                                                                                                                                                                                                                                             |
 +-------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                | :ref:`push_font<class_RichTextLabel_method_push_font>` **(** :ref:`Font<class_Font>` font **)**                                                                                                                                                                                                                                                                                        |
-+-------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                | :ref:`push_font_features<class_RichTextLabel_method_push_font_features>` **(** :ref:`Dictionary<class_Dictionary>` opentype_features **)**                                                                                                                                                                                                                                             |
+| void                                | :ref:`push_font<class_RichTextLabel_method_push_font>` **(** :ref:`Font<class_Font>` font, :ref:`int<class_int>` font_size **)**                                                                                                                                                                                                                                                       |
 +-------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                                | :ref:`push_font_size<class_RichTextLabel_method_push_font_size>` **(** :ref:`int<class_int>` font_size **)**                                                                                                                                                                                                                                                                           |
 +-------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
@@ -1162,26 +1160,16 @@ Adds a ``[fgcolor]`` tag to the tag stack.
 
 .. _class_RichTextLabel_method_push_font:
 
-- void **push_font** **(** :ref:`Font<class_Font>` font **)**
+- void **push_font** **(** :ref:`Font<class_Font>` font, :ref:`int<class_int>` font_size **)**
 
 Adds a ``[font]`` tag to the tag stack. Overrides default fonts for its duration.
 
 ----
 
-.. _class_RichTextLabel_method_push_font_features:
-
-- void **push_font_features** **(** :ref:`Dictionary<class_Dictionary>` opentype_features **)**
-
-Adds a ``[ot_feature]`` tag to the tag stack. Overrides default OpenType font feature for its duration.
-
-----
-
 .. _class_RichTextLabel_method_push_font_size:
 
 - void **push_font_size** **(** :ref:`int<class_int>` font_size **)**
 
-Adds a ``[font_size]`` tag to the tag stack. Overrides default font size for its duration.
-
 ----
 
 .. _class_RichTextLabel_method_push_hint:

+ 20 - 6
classes/class_scenetree.rst

@@ -41,6 +41,8 @@ Properties
 +-----------------------------+------------------------------------------------------------------------------+-----------+
 | :ref:`bool<class_bool>`     | :ref:`debug_navigation_hint<class_SceneTree_property_debug_navigation_hint>` | ``false`` |
 +-----------------------------+------------------------------------------------------------------------------+-----------+
+| :ref:`bool<class_bool>`     | :ref:`debug_paths_hint<class_SceneTree_property_debug_paths_hint>`           | ``false`` |
++-----------------------------+------------------------------------------------------------------------------+-----------+
 | :ref:`Node<class_Node>`     | :ref:`edited_scene_root<class_SceneTree_property_edited_scene_root>`         |           |
 +-----------------------------+------------------------------------------------------------------------------+-----------+
 | :ref:`bool<class_bool>`     | :ref:`multiplayer_poll<class_SceneTree_property_multiplayer_poll>`           | ``true``  |
@@ -254,6 +256,22 @@ If ``true``, navigation polygons will be visible when running the game from the
 
 ----
 
+.. _class_SceneTree_property_debug_paths_hint:
+
+- :ref:`bool<class_bool>` **debug_paths_hint**
+
++-----------+-----------------------------+
+| *Default* | ``false``                   |
++-----------+-----------------------------+
+| *Setter*  | set_debug_paths_hint(value) |
++-----------+-----------------------------+
+| *Getter*  | is_debugging_paths_hint()   |
++-----------+-----------------------------+
+
+If ``true``, curves from :ref:`Path2D<class_Path2D>` and :ref:`Path3D<class_Path3D>` nodes will be visible when running the game from the editor for debugging purposes.
+
+----
+
 .. _class_SceneTree_property_edited_scene_root:
 
 - :ref:`Node<class_Node>` **edited_scene_root**
@@ -341,9 +359,7 @@ Method Descriptions
 
 - void **call_group** **(** :ref:`StringName<class_StringName>` group, :ref:`StringName<class_StringName>` method, ... **)** |vararg|
 
-Calls ``method`` on each member of the given group. You can pass arguments to ``method`` by specifying them at the end of the method call.
-
-\ **Note:** Due to design limitations, :ref:`call_group<class_SceneTree_method_call_group>` will fail silently if one of the arguments is ``null``.
+Calls ``method`` on each member of the given group. You can pass arguments to ``method`` by specifying them at the end of the method call. If a node doesn't have the given method or the argument list does not match (either in count or in types), it will be skipped.
 
 \ **Note:** :ref:`call_group<class_SceneTree_method_call_group>` will call methods immediately on all members at once, which can cause stuttering if an expensive method is called on lots of members. To wait for one frame after :ref:`call_group<class_SceneTree_method_call_group>` was called, use :ref:`call_group_flags<class_SceneTree_method_call_group_flags>` with the :ref:`GROUP_CALL_DEFERRED<class_SceneTree_constant_GROUP_CALL_DEFERRED>` flag.
 
@@ -353,15 +369,13 @@ Calls ``method`` on each member of the given group. You can pass arguments to ``
 
 - void **call_group_flags** **(** :ref:`int<class_int>` flags, :ref:`StringName<class_StringName>` group, :ref:`StringName<class_StringName>` method, ... **)** |vararg|
 
-Calls ``method`` on each member of the given group, respecting the given :ref:`GroupCallFlags<enum_SceneTree_GroupCallFlags>`. You can pass arguments to ``method`` by specifying them at the end of the method call.
+Calls ``method`` on each member of the given group, respecting the given :ref:`GroupCallFlags<enum_SceneTree_GroupCallFlags>`. You can pass arguments to ``method`` by specifying them at the end of the method call. If a node doesn't have the given method or the argument list does not match (either in count or in types), it will be skipped.
 
 ::
 
     # Call the method in a deferred manner and in reverse order.
     get_tree().call_group_flags(SceneTree.GROUP_CALL_DEFERRED | SceneTree.GROUP_CALL_REVERSE)
 
-\ **Note:** Due to design limitations, :ref:`call_group_flags<class_SceneTree_method_call_group_flags>` will fail silently if one of the arguments is ``null``.
-
 \ **Note:** Group call flags are used to control the method calling behavior. By default, methods will be called immediately in a way similar to :ref:`call_group<class_SceneTree_method_call_group>`. However, if the :ref:`GROUP_CALL_DEFERRED<class_SceneTree_constant_GROUP_CALL_DEFERRED>` flag is present in the ``flags`` argument, methods will be called with a one-frame delay in a way similar to :ref:`Object.set_deferred<class_Object_method_set_deferred>`.
 
 ----

+ 2 - 0
classes/class_scriptcreatedialog.rst

@@ -47,6 +47,8 @@ Properties
 +-----------------------------+-------------------+------------------------------------------------------------------------------------------+
 | :ref:`bool<class_bool>`     | dialog_hide_on_ok | ``false`` (overrides :ref:`AcceptDialog<class_AcceptDialog_property_dialog_hide_on_ok>`) |
 +-----------------------------+-------------------+------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>` | ok_button_text    | ``"Create"`` (overrides :ref:`AcceptDialog<class_AcceptDialog_property_ok_button_text>`) |
++-----------------------------+-------------------+------------------------------------------------------------------------------------------+
 | :ref:`String<class_String>` | title             | ``"Attach Node Script"`` (overrides :ref:`Window<class_Window_property_title>`)          |
 +-----------------------------+-------------------+------------------------------------------------------------------------------------------+
 

+ 13 - 1
classes/class_scriptlanguageextension.rst

@@ -71,6 +71,8 @@ Methods
 +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`String<class_String>`                       | :ref:`_get_name<class_ScriptLanguageExtension_method__get_name>` **(** **)** |virtual| |const|                                                                                                                                                                                                                                                   |
 +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Dictionary[]<class_Dictionary>`             | :ref:`_get_public_annotations<class_ScriptLanguageExtension_method__get_public_annotations>` **(** **)** |virtual| |const|                                                                                                                                                                                                                       |
++---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`Dictionary<class_Dictionary>`               | :ref:`_get_public_constants<class_ScriptLanguageExtension_method__get_public_constants>` **(** **)** |virtual| |const|                                                                                                                                                                                                                           |
 +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`Dictionary[]<class_Dictionary>`             | :ref:`_get_public_functions<class_ScriptLanguageExtension_method__get_public_functions>` **(** **)** |virtual| |const|                                                                                                                                                                                                                           |
@@ -155,6 +157,8 @@ Enumerations
 
 .. _class_ScriptLanguageExtension_constant_LOOKUP_RESULT_CLASS_TBD_GLOBALSCOPE:
 
+.. _class_ScriptLanguageExtension_constant_LOOKUP_RESULT_CLASS_ANNOTATION:
+
 .. _class_ScriptLanguageExtension_constant_LOOKUP_RESULT_MAX:
 
 enum **LookupResultType**:
@@ -175,7 +179,9 @@ enum **LookupResultType**:
 
 - **LOOKUP_RESULT_CLASS_TBD_GLOBALSCOPE** = **7**
 
-- **LOOKUP_RESULT_MAX** = **8**
+- **LOOKUP_RESULT_CLASS_ANNOTATION** = **8**
+
+- **LOOKUP_RESULT_MAX** = **9**
 
 ----
 
@@ -414,6 +420,12 @@ Method Descriptions
 
 ----
 
+.. _class_ScriptLanguageExtension_method__get_public_annotations:
+
+- :ref:`Dictionary[]<class_Dictionary>` **_get_public_annotations** **(** **)** |virtual| |const|
+
+----
+
 .. _class_ScriptLanguageExtension_method__get_public_constants:
 
 - :ref:`Dictionary<class_Dictionary>` **_get_public_constants** **(** **)** |virtual| |const|

+ 43 - 0
classes/class_shaderinclude.rst

@@ -0,0 +1,43 @@
+:github_url: hide
+
+.. Generated automatically by doc/tools/make_rst.py in Godot's source tree.
+.. DO NOT EDIT THIS FILE, but the ShaderInclude.xml source instead.
+.. The source is found in doc/classes or modules/<name>/doc_classes.
+
+.. _class_ShaderInclude:
+
+ShaderInclude
+=============
+
+**Inherits:** :ref:`Resource<class_Resource>` **<** :ref:`RefCounted<class_RefCounted>` **<** :ref:`Object<class_Object>`
+
+
+
+Properties
+----------
+
++-----------------------------+------------------------------------------------+--------+
+| :ref:`String<class_String>` | :ref:`code<class_ShaderInclude_property_code>` | ``""`` |
++-----------------------------+------------------------------------------------+--------+
+
+Property Descriptions
+---------------------
+
+.. _class_ShaderInclude_property_code:
+
+- :ref:`String<class_String>` **code**
+
++-----------+-----------------+
+| *Default* | ``""``          |
++-----------+-----------------+
+| *Setter*  | set_code(value) |
++-----------+-----------------+
+| *Getter*  | get_code()      |
++-----------+-----------------+
+
+.. |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.)`
+.. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
+.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`
+.. |operator| replace:: :abbr:`operator (This method describes a valid operator to use with this type as left-hand operand.)`

+ 302 - 0
classes/class_skeletonprofile.rst

@@ -0,0 +1,302 @@
+:github_url: hide
+
+.. Generated automatically by doc/tools/make_rst.py in Godot's source tree.
+.. DO NOT EDIT THIS FILE, but the SkeletonProfile.xml source instead.
+.. The source is found in doc/classes or modules/<name>/doc_classes.
+
+.. _class_SkeletonProfile:
+
+SkeletonProfile
+===============
+
+**Inherits:** :ref:`Resource<class_Resource>` **<** :ref:`RefCounted<class_RefCounted>` **<** :ref:`Object<class_Object>`
+
+**Inherited By:** :ref:`SkeletonProfileHumanoid<class_SkeletonProfileHumanoid>`
+
+Profile of a virtual skeleton used as a target for retargeting.
+
+Description
+-----------
+
+This resource is used in :ref:`EditorScenePostImport<class_EditorScenePostImport>`. Some parameters are referring to bones in :ref:`Skeleton3D<class_Skeleton3D>`, :ref:`Skin<class_Skin>`, :ref:`Animation<class_Animation>`, and some other nodes are rewritten based on the parameters of ``SkeletonProfile``.
+
+Properties
+----------
+
++-----------------------+--------------------------------------------------------------+-------+
+| :ref:`int<class_int>` | :ref:`bone_size<class_SkeletonProfile_property_bone_size>`   | ``0`` |
++-----------------------+--------------------------------------------------------------+-------+
+| :ref:`int<class_int>` | :ref:`group_size<class_SkeletonProfile_property_group_size>` | ``0`` |
++-----------------------+--------------------------------------------------------------+-------+
+
+Methods
+-------
+
++----------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                                    | :ref:`find_bone<class_SkeletonProfile_method_find_bone>` **(** :ref:`StringName<class_StringName>` bone_name **)** |const|                                                                     |
++----------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`StringName<class_StringName>`                      | :ref:`get_bone_name<class_SkeletonProfile_method_get_bone_name>` **(** :ref:`int<class_int>` bone_idx **)** |const|                                                                            |
++----------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`StringName<class_StringName>`                      | :ref:`get_bone_parent<class_SkeletonProfile_method_get_bone_parent>` **(** :ref:`int<class_int>` bone_idx **)** |const|                                                                        |
++----------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`StringName<class_StringName>`                      | :ref:`get_bone_tail<class_SkeletonProfile_method_get_bone_tail>` **(** :ref:`int<class_int>` bone_idx **)** |const|                                                                            |
++----------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`StringName<class_StringName>`                      | :ref:`get_group<class_SkeletonProfile_method_get_group>` **(** :ref:`int<class_int>` bone_idx **)** |const|                                                                                    |
++----------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`StringName<class_StringName>`                      | :ref:`get_group_name<class_SkeletonProfile_method_get_group_name>` **(** :ref:`int<class_int>` group_idx **)** |const|                                                                         |
++----------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Vector2<class_Vector2>`                            | :ref:`get_handle_offset<class_SkeletonProfile_method_get_handle_offset>` **(** :ref:`int<class_int>` bone_idx **)** |const|                                                                    |
++----------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Transform3D<class_Transform3D>`                    | :ref:`get_reference_pose<class_SkeletonProfile_method_get_reference_pose>` **(** :ref:`int<class_int>` bone_idx **)** |const|                                                                  |
++----------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`TailDirection<enum_SkeletonProfile_TailDirection>` | :ref:`get_tail_direction<class_SkeletonProfile_method_get_tail_direction>` **(** :ref:`int<class_int>` bone_idx **)** |const|                                                                  |
++----------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Texture2D<class_Texture2D>`                        | :ref:`get_texture<class_SkeletonProfile_method_get_texture>` **(** :ref:`int<class_int>` group_idx **)** |const|                                                                               |
++----------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                     | :ref:`set_bone_name<class_SkeletonProfile_method_set_bone_name>` **(** :ref:`int<class_int>` bone_idx, :ref:`StringName<class_StringName>` bone_name **)**                                     |
++----------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                     | :ref:`set_bone_parent<class_SkeletonProfile_method_set_bone_parent>` **(** :ref:`int<class_int>` bone_idx, :ref:`StringName<class_StringName>` bone_parent **)**                               |
++----------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                     | :ref:`set_bone_tail<class_SkeletonProfile_method_set_bone_tail>` **(** :ref:`int<class_int>` bone_idx, :ref:`StringName<class_StringName>` bone_tail **)**                                     |
++----------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                     | :ref:`set_group<class_SkeletonProfile_method_set_group>` **(** :ref:`int<class_int>` bone_idx, :ref:`StringName<class_StringName>` group **)**                                                 |
++----------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                     | :ref:`set_group_name<class_SkeletonProfile_method_set_group_name>` **(** :ref:`int<class_int>` group_idx, :ref:`StringName<class_StringName>` group_name **)**                                 |
++----------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                     | :ref:`set_handle_offset<class_SkeletonProfile_method_set_handle_offset>` **(** :ref:`int<class_int>` bone_idx, :ref:`Vector2<class_Vector2>` handle_offset **)**                               |
++----------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                     | :ref:`set_reference_pose<class_SkeletonProfile_method_set_reference_pose>` **(** :ref:`int<class_int>` bone_idx, :ref:`Transform3D<class_Transform3D>` bone_name **)**                         |
++----------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                     | :ref:`set_tail_direction<class_SkeletonProfile_method_set_tail_direction>` **(** :ref:`int<class_int>` bone_idx, :ref:`TailDirection<enum_SkeletonProfile_TailDirection>` tail_direction **)** |
++----------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                     | :ref:`set_texture<class_SkeletonProfile_method_set_texture>` **(** :ref:`int<class_int>` group_idx, :ref:`Texture2D<class_Texture2D>` texture **)**                                            |
++----------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+Signals
+-------
+
+.. _class_SkeletonProfile_signal_profile_updated:
+
+- **profile_updated** **(** **)**
+
+This signal is emitted when change the value in profile. This is used to update key name in the :ref:`BoneMap<class_BoneMap>` and to redraw the :ref:`BoneMap<class_BoneMap>` editor.
+
+\ **Note**: This signal is not connected directly to editor to simplify the reference, instead it is passed on to editor through the :ref:`BoneMap<class_BoneMap>`.
+
+Enumerations
+------------
+
+.. _enum_SkeletonProfile_TailDirection:
+
+.. _class_SkeletonProfile_constant_TAIL_DIRECTION_AVERAGE_CHILDREN:
+
+.. _class_SkeletonProfile_constant_TAIL_DIRECTION_SPECIFIC_CHILD:
+
+.. _class_SkeletonProfile_constant_TAIL_DIRECTION_END:
+
+enum **TailDirection**:
+
+- **TAIL_DIRECTION_AVERAGE_CHILDREN** = **0** --- Direction to the average coordinates of bone children.
+
+- **TAIL_DIRECTION_SPECIFIC_CHILD** = **1** --- Direction to the coordinates of specified bone child.
+
+- **TAIL_DIRECTION_END** = **2** --- Direction is not calculated.
+
+Property Descriptions
+---------------------
+
+.. _class_SkeletonProfile_property_bone_size:
+
+- :ref:`int<class_int>` **bone_size**
+
++-----------+----------------------+
+| *Default* | ``0``                |
++-----------+----------------------+
+| *Setter*  | set_bone_size(value) |
++-----------+----------------------+
+| *Getter*  | get_bone_size()      |
++-----------+----------------------+
+
+----
+
+.. _class_SkeletonProfile_property_group_size:
+
+- :ref:`int<class_int>` **group_size**
+
++-----------+-----------------------+
+| *Default* | ``0``                 |
++-----------+-----------------------+
+| *Setter*  | set_group_size(value) |
++-----------+-----------------------+
+| *Getter*  | get_group_size()      |
++-----------+-----------------------+
+
+Method Descriptions
+-------------------
+
+.. _class_SkeletonProfile_method_find_bone:
+
+- :ref:`int<class_int>` **find_bone** **(** :ref:`StringName<class_StringName>` bone_name **)** |const|
+
+Returns the bone index that matches ``bone_name`` as its name.
+
+----
+
+.. _class_SkeletonProfile_method_get_bone_name:
+
+- :ref:`StringName<class_StringName>` **get_bone_name** **(** :ref:`int<class_int>` bone_idx **)** |const|
+
+Returns the name of the bone at ``bone_idx`` that will be the key name in the :ref:`BoneMap<class_BoneMap>`.
+
+In the retargeting process, the returned bone name is the bone name of the target skeleton.
+
+----
+
+.. _class_SkeletonProfile_method_get_bone_parent:
+
+- :ref:`StringName<class_StringName>` **get_bone_parent** **(** :ref:`int<class_int>` bone_idx **)** |const|
+
+Returns the name of the bone which is the parent to the bone at ``bone_idx``. The result is empty if the bone has no parent.
+
+----
+
+.. _class_SkeletonProfile_method_get_bone_tail:
+
+- :ref:`StringName<class_StringName>` **get_bone_tail** **(** :ref:`int<class_int>` bone_idx **)** |const|
+
+Returns the name of the bone which is the tail of the bone at ``bone_idx``.
+
+----
+
+.. _class_SkeletonProfile_method_get_group:
+
+- :ref:`StringName<class_StringName>` **get_group** **(** :ref:`int<class_int>` bone_idx **)** |const|
+
+Returns the group of the bone at ``bone_idx``.
+
+----
+
+.. _class_SkeletonProfile_method_get_group_name:
+
+- :ref:`StringName<class_StringName>` **get_group_name** **(** :ref:`int<class_int>` group_idx **)** |const|
+
+Returns the name of the group at ``group_idx`` that will be the drawing group in the :ref:`BoneMap<class_BoneMap>` editor.
+
+----
+
+.. _class_SkeletonProfile_method_get_handle_offset:
+
+- :ref:`Vector2<class_Vector2>` **get_handle_offset** **(** :ref:`int<class_int>` bone_idx **)** |const|
+
+Returns the offset of the bone at ``bone_idx`` that will be the button position in the :ref:`BoneMap<class_BoneMap>` editor.
+
+This is the offset with origin at the top left corner of the square.
+
+----
+
+.. _class_SkeletonProfile_method_get_reference_pose:
+
+- :ref:`Transform3D<class_Transform3D>` **get_reference_pose** **(** :ref:`int<class_int>` bone_idx **)** |const|
+
+Returns the reference pose transform for bone ``bone_idx``.
+
+----
+
+.. _class_SkeletonProfile_method_get_tail_direction:
+
+- :ref:`TailDirection<enum_SkeletonProfile_TailDirection>` **get_tail_direction** **(** :ref:`int<class_int>` bone_idx **)** |const|
+
+Returns the tail direction of the bone at ``bone_idx``.
+
+----
+
+.. _class_SkeletonProfile_method_get_texture:
+
+- :ref:`Texture2D<class_Texture2D>` **get_texture** **(** :ref:`int<class_int>` group_idx **)** |const|
+
+Returns the texture of the group at ``group_idx`` that will be the drawing group background image in the :ref:`BoneMap<class_BoneMap>` editor.
+
+----
+
+.. _class_SkeletonProfile_method_set_bone_name:
+
+- void **set_bone_name** **(** :ref:`int<class_int>` bone_idx, :ref:`StringName<class_StringName>` bone_name **)**
+
+Sets the name of the bone at ``bone_idx`` that will be the key name in the :ref:`BoneMap<class_BoneMap>`.
+
+In the retargeting process, the setting bone name is the bone name of the target skeleton.
+
+----
+
+.. _class_SkeletonProfile_method_set_bone_parent:
+
+- void **set_bone_parent** **(** :ref:`int<class_int>` bone_idx, :ref:`StringName<class_StringName>` bone_parent **)**
+
+Sets the bone with name ``bone_parent`` as the parent of the bone at ``bone_idx``. If an empty string is passed, then the bone has no parent.
+
+----
+
+.. _class_SkeletonProfile_method_set_bone_tail:
+
+- void **set_bone_tail** **(** :ref:`int<class_int>` bone_idx, :ref:`StringName<class_StringName>` bone_tail **)**
+
+Sets the bone with name ``bone_tail`` as the tail of the bone at ``bone_idx``.
+
+----
+
+.. _class_SkeletonProfile_method_set_group:
+
+- void **set_group** **(** :ref:`int<class_int>` bone_idx, :ref:`StringName<class_StringName>` group **)**
+
+Sets the group of the bone at ``bone_idx``.
+
+----
+
+.. _class_SkeletonProfile_method_set_group_name:
+
+- void **set_group_name** **(** :ref:`int<class_int>` group_idx, :ref:`StringName<class_StringName>` group_name **)**
+
+Sets the name of the group at ``group_idx`` that will be the drawing group in the :ref:`BoneMap<class_BoneMap>` editor.
+
+----
+
+.. _class_SkeletonProfile_method_set_handle_offset:
+
+- void **set_handle_offset** **(** :ref:`int<class_int>` bone_idx, :ref:`Vector2<class_Vector2>` handle_offset **)**
+
+Sets the offset of the bone at ``bone_idx`` that will be the button position in the :ref:`BoneMap<class_BoneMap>` editor.
+
+This is the offset with origin at the top left corner of the square.
+
+----
+
+.. _class_SkeletonProfile_method_set_reference_pose:
+
+- void **set_reference_pose** **(** :ref:`int<class_int>` bone_idx, :ref:`Transform3D<class_Transform3D>` bone_name **)**
+
+Sets the reference pose transform for bone ``bone_idx``.
+
+----
+
+.. _class_SkeletonProfile_method_set_tail_direction:
+
+- void **set_tail_direction** **(** :ref:`int<class_int>` bone_idx, :ref:`TailDirection<enum_SkeletonProfile_TailDirection>` tail_direction **)**
+
+Sets the tail direction of the bone at ``bone_idx``.
+
+\ **Note:** This only specifies the method of calculation. The actual coordinates required should be stored in an external skeleton, so the calculation itself needs to be done externally.
+
+----
+
+.. _class_SkeletonProfile_method_set_texture:
+
+- void **set_texture** **(** :ref:`int<class_int>` group_idx, :ref:`Texture2D<class_Texture2D>` texture **)**
+
+Sets the texture of the group at ``group_idx`` that will be the drawing group background image in the :ref:`BoneMap<class_BoneMap>` 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.)`
+.. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
+.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`
+.. |operator| replace:: :abbr:`operator (This method describes a valid operator to use with this type as left-hand operand.)`

+ 35 - 0
classes/class_skeletonprofilehumanoid.rst

@@ -0,0 +1,35 @@
+:github_url: hide
+
+.. Generated automatically by doc/tools/make_rst.py in Godot's source tree.
+.. DO NOT EDIT THIS FILE, but the SkeletonProfileHumanoid.xml source instead.
+.. The source is found in doc/classes or modules/<name>/doc_classes.
+
+.. _class_SkeletonProfileHumanoid:
+
+SkeletonProfileHumanoid
+=======================
+
+**Inherits:** :ref:`SkeletonProfile<class_SkeletonProfile>` **<** :ref:`Resource<class_Resource>` **<** :ref:`RefCounted<class_RefCounted>` **<** :ref:`Object<class_Object>`
+
+
+
+Description
+-----------
+
+A :ref:`SkeletonProfile<class_SkeletonProfile>` as a preset that is optimized for the human form. This exists for standardization, so all parameters are read-only.
+
+Properties
+----------
+
++-----------------------+------------+-------------------------------------------------------------------------------------+
+| :ref:`int<class_int>` | bone_size  | ``56`` (overrides :ref:`SkeletonProfile<class_SkeletonProfile_property_bone_size>`) |
++-----------------------+------------+-------------------------------------------------------------------------------------+
+| :ref:`int<class_int>` | group_size | ``4`` (overrides :ref:`SkeletonProfile<class_SkeletonProfile_property_group_size>`) |
++-----------------------+------------+-------------------------------------------------------------------------------------+
+
+.. |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.)`
+.. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
+.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`
+.. |operator| replace:: :abbr:`operator (This method describes a valid operator to use with this type as left-hand operand.)`

+ 0 - 16
classes/class_spriteframes.rst

@@ -20,13 +20,6 @@ Sprite frame library for an :ref:`AnimatedSprite2D<class_AnimatedSprite2D>` or :
 
 \ **Note:** You can associate a set of normal or specular maps by creating additional ``SpriteFrames`` resources with a ``_normal`` or ``_specular`` suffix. For example, having 3 ``SpriteFrames`` resources ``run``, ``run_normal``, and ``run_specular`` will make it so the ``run`` animation uses normal and specular maps.
 
-Properties
-----------
-
-+---------------------------+---------------------------------------------------+
-| :ref:`Array<class_Array>` | :ref:`frames<class_SpriteFrames_property_frames>` |
-+---------------------------+---------------------------------------------------+
-
 Methods
 -------
 
@@ -64,15 +57,6 @@ Methods
 | void                                              | :ref:`set_frame<class_SpriteFrames_method_set_frame>` **(** :ref:`StringName<class_StringName>` anim, :ref:`int<class_int>` idx, :ref:`Texture2D<class_Texture2D>` txt **)**              |
 +---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 
-Property Descriptions
----------------------
-
-.. _class_SpriteFrames_property_frames:
-
-- :ref:`Array<class_Array>` **frames**
-
-Compatibility property, always equals to an empty array.
-
 Method Descriptions
 -------------------
 

+ 20 - 1
classes/class_string.rst

@@ -460,7 +460,26 @@ Returns the index of the **first** case-insensitive occurrence of the specified
 
 - :ref:`String<class_String>` **format** **(** :ref:`Variant<class_Variant>` values, :ref:`String<class_String>` placeholder="{_}" **)** |const|
 
-Formats the string by replacing all occurrences of ``placeholder`` with ``values``.
+Formats the string by replacing all occurrences of ``placeholder`` with the elements of ``values``.
+
+\ ``values`` can be a :ref:`Dictionary<class_Dictionary>` or an :ref:`Array<class_Array>`. Any underscores in ``placeholder`` will be replaced with the corresponding keys in advance. Array elements use their index as keys.
+
+::
+
+    # Prints: Waiting for Godot is a play by Samuel Beckett, and Godot Engine is named after it.
+    var use_array_values = "Waiting for {0} is a play by {1}, and {0} Engine is named after it."
+    print(use_array_values.format(["Godot", "Samuel Beckett"]))
+    
+    # Prints: User 42 is Godot.
+    print("User {id} is {name}.".format({"id": 42, "name": "Godot"}))
+
+Some additional handling is performed when ``values`` is an array. If ``placeholder`` does not contain an underscore, the elements of the array will be used to replace one occurrence of the placeholder in turn; If an array element is another 2-element array, it'll be interpreted as a key-value pair.
+
+::
+
+    # Prints: User 42 is Godot.
+    print("User {} is {}.".format([42, "Godot"], "{}"))
+    print("User {id} is {name}.".format([["id", 42], ["name", "Godot"]]))
 
 ----
 

+ 2 - 2
classes/class_stylebox.rst

@@ -174,9 +174,9 @@ Method Descriptions
 
 - void **draw** **(** :ref:`RID<class_RID>` canvas_item, :ref:`Rect2<class_Rect2>` rect **)** |const|
 
-Draws this stylebox using a :ref:`CanvasItem<class_CanvasItem>` with given :ref:`RID<class_RID>`.
+Draws this stylebox using a canvas item identified by the given :ref:`RID<class_RID>`.
 
-You can get a :ref:`RID<class_RID>` value using :ref:`Object.get_instance_id<class_Object_method_get_instance_id>` on a :ref:`CanvasItem<class_CanvasItem>`-derived node.
+The :ref:`RID<class_RID>` value can either be the result of :ref:`CanvasItem.get_canvas_item<class_CanvasItem_method_get_canvas_item>` called on an existing :ref:`CanvasItem<class_CanvasItem>`-derived node, or directly from creating a canvas item in the :ref:`RenderingServer<class_RenderingServer>` with :ref:`RenderingServer.canvas_item_create<class_RenderingServer_method_canvas_item_create>`.
 
 ----
 

+ 202 - 0
classes/class_systemfont.rst

@@ -0,0 +1,202 @@
+:github_url: hide
+
+.. Generated automatically by doc/tools/make_rst.py in Godot's source tree.
+.. DO NOT EDIT THIS FILE, but the SystemFont.xml source instead.
+.. The source is found in doc/classes or modules/<name>/doc_classes.
+
+.. _class_SystemFont:
+
+SystemFont
+==========
+
+**Inherits:** :ref:`Font<class_Font>` **<** :ref:`Resource<class_Resource>` **<** :ref:`RefCounted<class_RefCounted>` **<** :ref:`Object<class_Object>`
+
+Font loaded from a system font.
+
+\ **Note:** This class is implemented on iOS, Linux, macOS and Windows, on other platforms it will fallback to default theme font.
+
+Description
+-----------
+
+``SystemFont`` loads a font from a system font with the first matching name from :ref:`font_names<class_SystemFont_property_font_names>`.
+
+It will attempt to match font style, but it's not guaranteed.
+
+The returned font might be part of a font collection or be a variable font with OpenType "weight" and/or "italic" features set.
+
+You can create :ref:`FontVariation<class_FontVariation>` of the system font for fine control over its features.
+
+Properties
+----------
+
++-----------------------------------------------------------------+-----------------------------------------------------------------------------+-------------------------+
+| :ref:`bool<class_bool>`                                         | :ref:`antialiased<class_SystemFont_property_antialiased>`                   | ``true``                |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------+-------------------------+
+| :ref:`Font[]<class_Font>`                                       | :ref:`fallbacks<class_SystemFont_property_fallbacks>`                       | ``[]``                  |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------+-------------------------+
+| :ref:`PackedStringArray<class_PackedStringArray>`               | :ref:`font_names<class_SystemFont_property_font_names>`                     | ``PackedStringArray()`` |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------+-------------------------+
+| :ref:`FontStyle<enum_TextServer_FontStyle>`                     | :ref:`font_style<class_SystemFont_property_font_style>`                     | ``0``                   |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------+-------------------------+
+| :ref:`bool<class_bool>`                                         | :ref:`force_autohinter<class_SystemFont_property_force_autohinter>`         | ``false``               |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------+-------------------------+
+| :ref:`bool<class_bool>`                                         | :ref:`generate_mipmaps<class_SystemFont_property_generate_mipmaps>`         | ``false``               |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------+-------------------------+
+| :ref:`Hinting<enum_TextServer_Hinting>`                         | :ref:`hinting<class_SystemFont_property_hinting>`                           | ``1``                   |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------+-------------------------+
+| :ref:`float<class_float>`                                       | :ref:`oversampling<class_SystemFont_property_oversampling>`                 | ``0.0``                 |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------+-------------------------+
+| :ref:`SubpixelPositioning<enum_TextServer_SubpixelPositioning>` | :ref:`subpixel_positioning<class_SystemFont_property_subpixel_positioning>` | ``1``                   |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------+-------------------------+
+
+Property Descriptions
+---------------------
+
+.. _class_SystemFont_property_antialiased:
+
+- :ref:`bool<class_bool>` **antialiased**
+
++-----------+------------------------+
+| *Default* | ``true``               |
++-----------+------------------------+
+| *Setter*  | set_antialiased(value) |
++-----------+------------------------+
+| *Getter*  | is_antialiased()       |
++-----------+------------------------+
+
+If set to ``true``, font 8-bit anitialiased glyph rendering is supported and enabled.
+
+----
+
+.. _class_SystemFont_property_fallbacks:
+
+- :ref:`Font[]<class_Font>` **fallbacks**
+
++-----------+----------------------+
+| *Default* | ``[]``               |
++-----------+----------------------+
+| *Setter*  | set_fallbacks(value) |
++-----------+----------------------+
+| *Getter*  | get_fallbacks()      |
++-----------+----------------------+
+
+Array of fallback :ref:`Font<class_Font>`\ s.
+
+----
+
+.. _class_SystemFont_property_font_names:
+
+- :ref:`PackedStringArray<class_PackedStringArray>` **font_names**
+
++-----------+-------------------------+
+| *Default* | ``PackedStringArray()`` |
++-----------+-------------------------+
+| *Setter*  | set_font_names(value)   |
++-----------+-------------------------+
+| *Getter*  | get_font_names()        |
++-----------+-------------------------+
+
+Array of font family names to search, first matching font found is used.
+
+----
+
+.. _class_SystemFont_property_font_style:
+
+- :ref:`FontStyle<enum_TextServer_FontStyle>` **font_style**
+
++-----------+-----------------------+
+| *Default* | ``0``                 |
++-----------+-----------------------+
+| *Setter*  | set_font_style(value) |
++-----------+-----------------------+
+| *Getter*  | get_font_style()      |
++-----------+-----------------------+
+
+Font style flags, see :ref:`FontStyle<enum_TextServer_FontStyle>`.
+
+----
+
+.. _class_SystemFont_property_force_autohinter:
+
+- :ref:`bool<class_bool>` **force_autohinter**
+
++-----------+-----------------------------+
+| *Default* | ``false``                   |
++-----------+-----------------------------+
+| *Setter*  | set_force_autohinter(value) |
++-----------+-----------------------------+
+| *Getter*  | is_force_autohinter()       |
++-----------+-----------------------------+
+
+If set to ``true``, auto-hinting is supported and preferred over font built-in hinting.
+
+----
+
+.. _class_SystemFont_property_generate_mipmaps:
+
+- :ref:`bool<class_bool>` **generate_mipmaps**
+
++-----------+-----------------------------+
+| *Default* | ``false``                   |
++-----------+-----------------------------+
+| *Setter*  | set_generate_mipmaps(value) |
++-----------+-----------------------------+
+| *Getter*  | get_generate_mipmaps()      |
++-----------+-----------------------------+
+
+If set to ``true``, generate mipmaps for the font textures.
+
+----
+
+.. _class_SystemFont_property_hinting:
+
+- :ref:`Hinting<enum_TextServer_Hinting>` **hinting**
+
++-----------+--------------------+
+| *Default* | ``1``              |
++-----------+--------------------+
+| *Setter*  | set_hinting(value) |
++-----------+--------------------+
+| *Getter*  | get_hinting()      |
++-----------+--------------------+
+
+Font hinting mode.
+
+----
+
+.. _class_SystemFont_property_oversampling:
+
+- :ref:`float<class_float>` **oversampling**
+
++-----------+-------------------------+
+| *Default* | ``0.0``                 |
++-----------+-------------------------+
+| *Setter*  | set_oversampling(value) |
++-----------+-------------------------+
+| *Getter*  | get_oversampling()      |
++-----------+-------------------------+
+
+Font oversampling factor, if set to ``0.0`` global oversampling factor is used instead.
+
+----
+
+.. _class_SystemFont_property_subpixel_positioning:
+
+- :ref:`SubpixelPositioning<enum_TextServer_SubpixelPositioning>` **subpixel_positioning**
+
++-----------+---------------------------------+
+| *Default* | ``1``                           |
++-----------+---------------------------------+
+| *Setter*  | set_subpixel_positioning(value) |
++-----------+---------------------------------+
+| *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.
+
+.. |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.)`
+.. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
+.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`
+.. |operator| replace:: :abbr:`operator (This method describes a valid operator to use with this type as left-hand operand.)`

+ 47 - 77
classes/class_tabbar.rst

@@ -48,59 +48,53 @@ Properties
 Methods
 -------
 
-+--------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                             | :ref:`add_tab<class_TabBar_method_add_tab>` **(** :ref:`String<class_String>` title="", :ref:`Texture2D<class_Texture2D>` icon=null **)**                                              |
-+--------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                             | :ref:`clear_tab_opentype_features<class_TabBar_method_clear_tab_opentype_features>` **(** :ref:`int<class_int>` tab_idx **)**                                                          |
-+--------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                             | :ref:`ensure_tab_visible<class_TabBar_method_ensure_tab_visible>` **(** :ref:`int<class_int>` idx **)**                                                                                |
-+--------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                          | :ref:`get_offset_buttons_visible<class_TabBar_method_get_offset_buttons_visible>` **(** **)** |const|                                                                                  |
-+--------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                            | :ref:`get_previous_tab<class_TabBar_method_get_previous_tab>` **(** **)** |const|                                                                                                      |
-+--------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Texture2D<class_Texture2D>`                | :ref:`get_tab_button_icon<class_TabBar_method_get_tab_button_icon>` **(** :ref:`int<class_int>` tab_idx **)** |const|                                                                  |
-+--------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Texture2D<class_Texture2D>`                | :ref:`get_tab_icon<class_TabBar_method_get_tab_icon>` **(** :ref:`int<class_int>` tab_idx **)** |const|                                                                                |
-+--------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                            | :ref:`get_tab_idx_at_point<class_TabBar_method_get_tab_idx_at_point>` **(** :ref:`Vector2<class_Vector2>` point **)** |const|                                                          |
-+--------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_String>`                      | :ref:`get_tab_language<class_TabBar_method_get_tab_language>` **(** :ref:`int<class_int>` tab_idx **)** |const|                                                                        |
-+--------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                            | :ref:`get_tab_offset<class_TabBar_method_get_tab_offset>` **(** **)** |const|                                                                                                          |
-+--------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                            | :ref:`get_tab_opentype_feature<class_TabBar_method_get_tab_opentype_feature>` **(** :ref:`int<class_int>` tab_idx, :ref:`String<class_String>` tag **)** |const|                       |
-+--------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Rect2<class_Rect2>`                        | :ref:`get_tab_rect<class_TabBar_method_get_tab_rect>` **(** :ref:`int<class_int>` tab_idx **)** |const|                                                                                |
-+--------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`TextDirection<enum_Control_TextDirection>` | :ref:`get_tab_text_direction<class_TabBar_method_get_tab_text_direction>` **(** :ref:`int<class_int>` tab_idx **)** |const|                                                            |
-+--------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_String>`                      | :ref:`get_tab_title<class_TabBar_method_get_tab_title>` **(** :ref:`int<class_int>` tab_idx **)** |const|                                                                              |
-+--------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                          | :ref:`is_tab_disabled<class_TabBar_method_is_tab_disabled>` **(** :ref:`int<class_int>` tab_idx **)** |const|                                                                          |
-+--------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                          | :ref:`is_tab_hidden<class_TabBar_method_is_tab_hidden>` **(** :ref:`int<class_int>` tab_idx **)** |const|                                                                              |
-+--------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                             | :ref:`move_tab<class_TabBar_method_move_tab>` **(** :ref:`int<class_int>` from, :ref:`int<class_int>` to **)**                                                                         |
-+--------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                             | :ref:`remove_tab<class_TabBar_method_remove_tab>` **(** :ref:`int<class_int>` tab_idx **)**                                                                                            |
-+--------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                             | :ref:`set_tab_button_icon<class_TabBar_method_set_tab_button_icon>` **(** :ref:`int<class_int>` tab_idx, :ref:`Texture2D<class_Texture2D>` icon **)**                                  |
-+--------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                             | :ref:`set_tab_disabled<class_TabBar_method_set_tab_disabled>` **(** :ref:`int<class_int>` tab_idx, :ref:`bool<class_bool>` disabled **)**                                              |
-+--------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                             | :ref:`set_tab_hidden<class_TabBar_method_set_tab_hidden>` **(** :ref:`int<class_int>` tab_idx, :ref:`bool<class_bool>` hidden **)**                                                    |
-+--------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                             | :ref:`set_tab_icon<class_TabBar_method_set_tab_icon>` **(** :ref:`int<class_int>` tab_idx, :ref:`Texture2D<class_Texture2D>` icon **)**                                                |
-+--------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                             | :ref:`set_tab_language<class_TabBar_method_set_tab_language>` **(** :ref:`int<class_int>` tab_idx, :ref:`String<class_String>` language **)**                                          |
-+--------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                             | :ref:`set_tab_opentype_feature<class_TabBar_method_set_tab_opentype_feature>` **(** :ref:`int<class_int>` tab_idx, :ref:`String<class_String>` tag, :ref:`int<class_int>` values **)** |
-+--------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                             | :ref:`set_tab_text_direction<class_TabBar_method_set_tab_text_direction>` **(** :ref:`int<class_int>` tab_idx, :ref:`TextDirection<enum_Control_TextDirection>` direction **)**        |
-+--------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                             | :ref:`set_tab_title<class_TabBar_method_set_tab_title>` **(** :ref:`int<class_int>` tab_idx, :ref:`String<class_String>` title **)**                                                   |
-+--------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
++--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                             | :ref:`add_tab<class_TabBar_method_add_tab>` **(** :ref:`String<class_String>` title="", :ref:`Texture2D<class_Texture2D>` icon=null **)**                                       |
++--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                             | :ref:`ensure_tab_visible<class_TabBar_method_ensure_tab_visible>` **(** :ref:`int<class_int>` idx **)**                                                                         |
++--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                          | :ref:`get_offset_buttons_visible<class_TabBar_method_get_offset_buttons_visible>` **(** **)** |const|                                                                           |
++--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                            | :ref:`get_previous_tab<class_TabBar_method_get_previous_tab>` **(** **)** |const|                                                                                               |
++--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Texture2D<class_Texture2D>`                | :ref:`get_tab_button_icon<class_TabBar_method_get_tab_button_icon>` **(** :ref:`int<class_int>` tab_idx **)** |const|                                                           |
++--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Texture2D<class_Texture2D>`                | :ref:`get_tab_icon<class_TabBar_method_get_tab_icon>` **(** :ref:`int<class_int>` tab_idx **)** |const|                                                                         |
++--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                            | :ref:`get_tab_idx_at_point<class_TabBar_method_get_tab_idx_at_point>` **(** :ref:`Vector2<class_Vector2>` point **)** |const|                                                   |
++--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`                      | :ref:`get_tab_language<class_TabBar_method_get_tab_language>` **(** :ref:`int<class_int>` tab_idx **)** |const|                                                                 |
++--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                            | :ref:`get_tab_offset<class_TabBar_method_get_tab_offset>` **(** **)** |const|                                                                                                   |
++--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Rect2<class_Rect2>`                        | :ref:`get_tab_rect<class_TabBar_method_get_tab_rect>` **(** :ref:`int<class_int>` tab_idx **)** |const|                                                                         |
++--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`TextDirection<enum_Control_TextDirection>` | :ref:`get_tab_text_direction<class_TabBar_method_get_tab_text_direction>` **(** :ref:`int<class_int>` tab_idx **)** |const|                                                     |
++--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`                      | :ref:`get_tab_title<class_TabBar_method_get_tab_title>` **(** :ref:`int<class_int>` tab_idx **)** |const|                                                                       |
++--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                          | :ref:`is_tab_disabled<class_TabBar_method_is_tab_disabled>` **(** :ref:`int<class_int>` tab_idx **)** |const|                                                                   |
++--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                          | :ref:`is_tab_hidden<class_TabBar_method_is_tab_hidden>` **(** :ref:`int<class_int>` tab_idx **)** |const|                                                                       |
++--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                             | :ref:`move_tab<class_TabBar_method_move_tab>` **(** :ref:`int<class_int>` from, :ref:`int<class_int>` to **)**                                                                  |
++--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                             | :ref:`remove_tab<class_TabBar_method_remove_tab>` **(** :ref:`int<class_int>` tab_idx **)**                                                                                     |
++--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                             | :ref:`set_tab_button_icon<class_TabBar_method_set_tab_button_icon>` **(** :ref:`int<class_int>` tab_idx, :ref:`Texture2D<class_Texture2D>` icon **)**                           |
++--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                             | :ref:`set_tab_disabled<class_TabBar_method_set_tab_disabled>` **(** :ref:`int<class_int>` tab_idx, :ref:`bool<class_bool>` disabled **)**                                       |
++--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                             | :ref:`set_tab_hidden<class_TabBar_method_set_tab_hidden>` **(** :ref:`int<class_int>` tab_idx, :ref:`bool<class_bool>` hidden **)**                                             |
++--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                             | :ref:`set_tab_icon<class_TabBar_method_set_tab_icon>` **(** :ref:`int<class_int>` tab_idx, :ref:`Texture2D<class_Texture2D>` icon **)**                                         |
++--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                             | :ref:`set_tab_language<class_TabBar_method_set_tab_language>` **(** :ref:`int<class_int>` tab_idx, :ref:`String<class_String>` language **)**                                   |
++--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                             | :ref:`set_tab_text_direction<class_TabBar_method_set_tab_text_direction>` **(** :ref:`int<class_int>` tab_idx, :ref:`TextDirection<enum_Control_TextDirection>` direction **)** |
++--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                             | :ref:`set_tab_title<class_TabBar_method_set_tab_title>` **(** :ref:`int<class_int>` tab_idx, :ref:`String<class_String>` title **)**                                            |
++--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 
 Theme Properties
 ----------------
@@ -462,14 +456,6 @@ Adds a new tab.
 
 ----
 
-.. _class_TabBar_method_clear_tab_opentype_features:
-
-- void **clear_tab_opentype_features** **(** :ref:`int<class_int>` tab_idx **)**
-
-Removes all OpenType features from the tab title.
-
-----
-
 .. _class_TabBar_method_ensure_tab_visible:
 
 - void **ensure_tab_visible** **(** :ref:`int<class_int>` idx **)**
@@ -534,14 +520,6 @@ Returns the number of hidden tabs offsetted to the left.
 
 ----
 
-.. _class_TabBar_method_get_tab_opentype_feature:
-
-- :ref:`int<class_int>` **get_tab_opentype_feature** **(** :ref:`int<class_int>` tab_idx, :ref:`String<class_String>` tag **)** |const|
-
-Returns OpenType feature ``tag`` of the tab title.
-
-----
-
 .. _class_TabBar_method_get_tab_rect:
 
 - :ref:`Rect2<class_Rect2>` **get_tab_rect** **(** :ref:`int<class_int>` tab_idx **)** |const|
@@ -638,14 +616,6 @@ Sets language code of tab title used for line-breaking and text shaping algorith
 
 ----
 
-.. _class_TabBar_method_set_tab_opentype_feature:
-
-- void **set_tab_opentype_feature** **(** :ref:`int<class_int>` tab_idx, :ref:`String<class_String>` tag, :ref:`int<class_int>` values **)**
-
-Sets OpenType feature ``tag`` for the tab title. More info: `OpenType feature tags <https://docs.microsoft.com/en-us/typography/opentype/spec/featuretags>`__.
-
-----
-
 .. _class_TabBar_method_set_tab_text_direction:
 
 - void **set_tab_text_direction** **(** :ref:`int<class_int>` tab_idx, :ref:`TextDirection<enum_Control_TextDirection>` direction **)**

+ 43 - 37
classes/class_textedit.rst

@@ -40,6 +40,8 @@ Properties
 +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
 | :ref:`bool<class_bool>`                                           | :ref:`deselect_on_focus_loss_enabled<class_TextEdit_property_deselect_on_focus_loss_enabled>`               | ``true``                                                                            |
 +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                                           | :ref:`drag_and_drop_selection_enabled<class_TextEdit_property_drag_and_drop_selection_enabled>`             | ``true``                                                                            |
++-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
 | :ref:`bool<class_bool>`                                           | :ref:`draw_control_chars<class_TextEdit_property_draw_control_chars>`                                       | ``false``                                                                           |
 +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
 | :ref:`bool<class_bool>`                                           | :ref:`draw_spaces<class_TextEdit_property_draw_spaces>`                                                     | ``false``                                                                           |
@@ -68,6 +70,8 @@ Properties
 +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
 | :ref:`String<class_String>`                                       | :ref:`placeholder_text<class_TextEdit_property_placeholder_text>`                                           | ``""``                                                                              |
 +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                                           | :ref:`scroll_fit_content_height<class_TextEdit_property_scroll_fit_content_height>`                         | ``false``                                                                           |
++-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
 | :ref:`int<class_int>`                                             | :ref:`scroll_horizontal<class_TextEdit_property_scroll_horizontal>`                                         | ``0``                                                                               |
 +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
 | :ref:`bool<class_bool>`                                           | :ref:`scroll_past_end_of_file<class_TextEdit_property_scroll_past_end_of_file>`                             | ``false``                                                                           |
@@ -125,8 +129,6 @@ Methods
 +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                                              | :ref:`clear<class_TextEdit_method_clear>` **(** **)**                                                                                                                                                                                |
 +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                              | :ref:`clear_opentype_features<class_TextEdit_method_clear_opentype_features>` **(** **)**                                                                                                                                            |
-+---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                                              | :ref:`clear_undo_history<class_TextEdit_method_clear_undo_history>` **(** **)**                                                                                                                                                      |
 +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                                              | :ref:`copy<class_TextEdit_method_copy>` **(** **)**                                                                                                                                                                                  |
@@ -205,8 +207,6 @@ Methods
 +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`int<class_int>`                             | :ref:`get_next_visible_line_offset_from<class_TextEdit_method_get_next_visible_line_offset_from>` **(** :ref:`int<class_int>` line, :ref:`int<class_int>` visible_amount **)** |const|                                               |
 +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                             | :ref:`get_opentype_feature<class_TextEdit_method_get_opentype_feature>` **(** :ref:`String<class_String>` tag **)** |const|                                                                                                          |
-+---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`Vector2i<class_Vector2i>`                   | :ref:`get_pos_at_line_column<class_TextEdit_method_get_pos_at_line_column>` **(** :ref:`int<class_int>` line, :ref:`int<class_int>` column **)** |const|                                                                             |
 +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`Rect2i<class_Rect2i>`                       | :ref:`get_rect_at_line_column<class_TextEdit_method_get_rect_at_line_column>` **(** :ref:`int<class_int>` line, :ref:`int<class_int>` column **)** |const|                                                                           |
@@ -337,8 +337,6 @@ Methods
 +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                                              | :ref:`set_line_gutter_text<class_TextEdit_method_set_line_gutter_text>` **(** :ref:`int<class_int>` line, :ref:`int<class_int>` gutter, :ref:`String<class_String>` text **)**                                                       |
 +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                              | :ref:`set_opentype_feature<class_TextEdit_method_set_opentype_feature>` **(** :ref:`String<class_String>` tag, :ref:`int<class_int>` value **)**                                                                                     |
-+---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                                              | :ref:`set_overtype_mode_enabled<class_TextEdit_method_set_overtype_mode_enabled>` **(** :ref:`bool<class_bool>` enabled **)**                                                                                                        |
 +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                                              | :ref:`set_search_flags<class_TextEdit_method_set_search_flags>` **(** :ref:`int<class_int>` flags **)**                                                                                                                              |
@@ -800,6 +798,22 @@ If ``true``, the selected text will be deselected when focus is lost.
 
 ----
 
+.. _class_TextEdit_property_drag_and_drop_selection_enabled:
+
+- :ref:`bool<class_bool>` **drag_and_drop_selection_enabled**
+
++-----------+--------------------------------------------+
+| *Default* | ``true``                                   |
++-----------+--------------------------------------------+
+| *Setter*  | set_drag_and_drop_selection_enabled(value) |
++-----------+--------------------------------------------+
+| *Getter*  | is_drag_and_drop_selection_enabled()       |
++-----------+--------------------------------------------+
+
+If ``true``, allow drag and drop of selected text.
+
+----
+
 .. _class_TextEdit_property_draw_control_chars:
 
 - :ref:`bool<class_bool>` **draw_control_chars**
@@ -994,6 +1008,22 @@ Text shown when the ``TextEdit`` is empty. It is **not** the ``TextEdit``'s defa
 
 ----
 
+.. _class_TextEdit_property_scroll_fit_content_height:
+
+- :ref:`bool<class_bool>` **scroll_fit_content_height**
+
++-----------+---------------------------------------+
+| *Default* | ``false``                             |
++-----------+---------------------------------------+
+| *Setter*  | set_fit_content_height_enabled(value) |
++-----------+---------------------------------------+
+| *Getter*  | is_fit_content_height_enabled()       |
++-----------+---------------------------------------+
+
+If ``true``, ``TextEdit`` will disable vertical scroll and fit minimum height to the number of visible lines.
+
+----
+
 .. _class_TextEdit_property_scroll_horizontal:
 
 - :ref:`int<class_int>` **scroll_horizontal**
@@ -1030,13 +1060,13 @@ Allow scrolling past the last line into "virtual" space.
 
 - :ref:`bool<class_bool>` **scroll_smooth**
 
-+-----------+---------------------------------+
-| *Default* | ``false``                       |
-+-----------+---------------------------------+
-| *Setter*  | set_smooth_scroll_enable(value) |
-+-----------+---------------------------------+
-| *Getter*  | is_smooth_scroll_enabled()      |
-+-----------+---------------------------------+
++-----------+----------------------------------+
+| *Default* | ``false``                        |
++-----------+----------------------------------+
+| *Setter*  | set_smooth_scroll_enabled(value) |
++-----------+----------------------------------+
+| *Getter*  | is_smooth_scroll_enabled()       |
++-----------+----------------------------------+
 
 Scroll smoothly over the text rather then jumping to the next location.
 
@@ -1317,14 +1347,6 @@ Performs a full reset of ``TextEdit``, including undo history.
 
 ----
 
-.. _class_TextEdit_method_clear_opentype_features:
-
-- void **clear_opentype_features** **(** **)**
-
-Removes all OpenType features.
-
-----
-
 .. _class_TextEdit_method_clear_undo_history:
 
 - void **clear_undo_history** **(** **)**
@@ -1639,14 +1661,6 @@ Returns the count to the next visible line from ``line`` to ``line + visible_amo
 
 ----
 
-.. _class_TextEdit_method_get_opentype_feature:
-
-- :ref:`int<class_int>` **get_opentype_feature** **(** :ref:`String<class_String>` tag **)** |const|
-
-Returns OpenType feature ``tag``.
-
-----
-
 .. _class_TextEdit_method_get_pos_at_line_column:
 
 - :ref:`Vector2i<class_Vector2i>` **get_pos_at_line_column** **(** :ref:`int<class_int>` line, :ref:`int<class_int>` column **)** |const|
@@ -2208,14 +2222,6 @@ Sets the text for ``gutter`` on ``line``.
 
 ----
 
-.. _class_TextEdit_method_set_opentype_feature:
-
-- void **set_opentype_feature** **(** :ref:`String<class_String>` tag, :ref:`int<class_int>` value **)**
-
-Sets OpenType feature ``tag``. More info: `OpenType feature tags <https://docs.microsoft.com/en-us/typography/opentype/spec/featuretags>`__.
-
-----
-
 .. _class_TextEdit_method_set_overtype_mode_enabled:
 
 - void **set_overtype_mode_enabled** **(** :ref:`bool<class_bool>` enabled **)**

+ 41 - 41
classes/class_textline.rst

@@ -26,7 +26,7 @@ Properties
 +-------------------------------------------------------------------+-----------------------------------------------------------------------------+-----------+
 | :ref:`Direction<enum_TextServer_Direction>`                       | :ref:`direction<class_TextLine_property_direction>`                         | ``0``     |
 +-------------------------------------------------------------------+-----------------------------------------------------------------------------+-----------+
-| :ref:`int<class_int>`                                             | :ref:`flags<class_TextLine_property_flags>`                                 | ``3``     |
+| :ref:`JustificationFlag<enum_TextServer_JustificationFlag>`       | :ref:`flags<class_TextLine_property_flags>`                                 | ``3``     |
 +-------------------------------------------------------------------+-----------------------------------------------------------------------------+-----------+
 | :ref:`Orientation<enum_TextServer_Orientation>`                   | :ref:`orientation<class_TextLine_property_orientation>`                     | ``0``     |
 +-------------------------------------------------------------------+-----------------------------------------------------------------------------+-----------+
@@ -42,43 +42,43 @@ Properties
 Methods
 -------
 
-+-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`       | :ref:`add_object<class_TextLine_method_add_object>` **(** :ref:`Variant<class_Variant>` key, :ref:`Vector2<class_Vector2>` size, :ref:`InlineAlignment<enum_@GlobalScope_InlineAlignment>` inline_align=5, :ref:`int<class_int>` length=1 **)**                                                         |
-+-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`       | :ref:`add_string<class_TextLine_method_add_string>` **(** :ref:`String<class_String>` text, :ref:`Font<class_Font>` fonts, :ref:`int<class_int>` size, :ref:`Dictionary<class_Dictionary>` opentype_features={}, :ref:`String<class_String>` language="", :ref:`Variant<class_Variant>` meta=null **)** |
-+-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                          | :ref:`clear<class_TextLine_method_clear>` **(** **)**                                                                                                                                                                                                                                                   |
-+-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                          | :ref:`draw<class_TextLine_method_draw>` **(** :ref:`RID<class_RID>` canvas, :ref:`Vector2<class_Vector2>` pos, :ref:`Color<class_Color>` color=Color(1, 1, 1, 1) **)** |const|                                                                                                                          |
-+-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                          | :ref:`draw_outline<class_TextLine_method_draw_outline>` **(** :ref:`RID<class_RID>` canvas, :ref:`Vector2<class_Vector2>` pos, :ref:`int<class_int>` outline_size=1, :ref:`Color<class_Color>` color=Color(1, 1, 1, 1) **)** |const|                                                                    |
-+-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`     | :ref:`get_line_ascent<class_TextLine_method_get_line_ascent>` **(** **)** |const|                                                                                                                                                                                                                       |
-+-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`     | :ref:`get_line_descent<class_TextLine_method_get_line_descent>` **(** **)** |const|                                                                                                                                                                                                                     |
-+-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`     | :ref:`get_line_underline_position<class_TextLine_method_get_line_underline_position>` **(** **)** |const|                                                                                                                                                                                               |
-+-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`     | :ref:`get_line_underline_thickness<class_TextLine_method_get_line_underline_thickness>` **(** **)** |const|                                                                                                                                                                                             |
-+-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`     | :ref:`get_line_width<class_TextLine_method_get_line_width>` **(** **)** |const|                                                                                                                                                                                                                         |
-+-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Rect2<class_Rect2>`     | :ref:`get_object_rect<class_TextLine_method_get_object_rect>` **(** :ref:`Variant<class_Variant>` key **)** |const|                                                                                                                                                                                     |
-+-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Array<class_Array>`     | :ref:`get_objects<class_TextLine_method_get_objects>` **(** **)** |const|                                                                                                                                                                                                                               |
-+-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`RID<class_RID>`         | :ref:`get_rid<class_TextLine_method_get_rid>` **(** **)** |const|                                                                                                                                                                                                                                       |
-+-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Vector2<class_Vector2>` | :ref:`get_size<class_TextLine_method_get_size>` **(** **)** |const|                                                                                                                                                                                                                                     |
-+-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`         | :ref:`hit_test<class_TextLine_method_hit_test>` **(** :ref:`float<class_float>` coords **)** |const|                                                                                                                                                                                                    |
-+-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`       | :ref:`resize_object<class_TextLine_method_resize_object>` **(** :ref:`Variant<class_Variant>` key, :ref:`Vector2<class_Vector2>` size, :ref:`InlineAlignment<enum_@GlobalScope_InlineAlignment>` inline_align=5 **)**                                                                                   |
-+-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                          | :ref:`set_bidi_override<class_TextLine_method_set_bidi_override>` **(** :ref:`Array<class_Array>` override **)**                                                                                                                                                                                        |
-+-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                          | :ref:`tab_align<class_TextLine_method_tab_align>` **(** :ref:`PackedFloat32Array<class_PackedFloat32Array>` tab_stops **)**                                                                                                                                                                             |
-+-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`       | :ref:`add_object<class_TextLine_method_add_object>` **(** :ref:`Variant<class_Variant>` key, :ref:`Vector2<class_Vector2>` size, :ref:`InlineAlignment<enum_@GlobalScope_InlineAlignment>` inline_align=5, :ref:`int<class_int>` length=1 **)**   |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`       | :ref:`add_string<class_TextLine_method_add_string>` **(** :ref:`String<class_String>` text, :ref:`Font<class_Font>` font, :ref:`int<class_int>` font_size, :ref:`String<class_String>` language="", :ref:`Variant<class_Variant>` meta=null **)** |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                          | :ref:`clear<class_TextLine_method_clear>` **(** **)**                                                                                                                                                                                             |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                          | :ref:`draw<class_TextLine_method_draw>` **(** :ref:`RID<class_RID>` canvas, :ref:`Vector2<class_Vector2>` pos, :ref:`Color<class_Color>` color=Color(1, 1, 1, 1) **)** |const|                                                                    |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                          | :ref:`draw_outline<class_TextLine_method_draw_outline>` **(** :ref:`RID<class_RID>` canvas, :ref:`Vector2<class_Vector2>` pos, :ref:`int<class_int>` outline_size=1, :ref:`Color<class_Color>` color=Color(1, 1, 1, 1) **)** |const|              |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`     | :ref:`get_line_ascent<class_TextLine_method_get_line_ascent>` **(** **)** |const|                                                                                                                                                                 |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`     | :ref:`get_line_descent<class_TextLine_method_get_line_descent>` **(** **)** |const|                                                                                                                                                               |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`     | :ref:`get_line_underline_position<class_TextLine_method_get_line_underline_position>` **(** **)** |const|                                                                                                                                         |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`     | :ref:`get_line_underline_thickness<class_TextLine_method_get_line_underline_thickness>` **(** **)** |const|                                                                                                                                       |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`     | :ref:`get_line_width<class_TextLine_method_get_line_width>` **(** **)** |const|                                                                                                                                                                   |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Rect2<class_Rect2>`     | :ref:`get_object_rect<class_TextLine_method_get_object_rect>` **(** :ref:`Variant<class_Variant>` key **)** |const|                                                                                                                               |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Array<class_Array>`     | :ref:`get_objects<class_TextLine_method_get_objects>` **(** **)** |const|                                                                                                                                                                         |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`RID<class_RID>`         | :ref:`get_rid<class_TextLine_method_get_rid>` **(** **)** |const|                                                                                                                                                                                 |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Vector2<class_Vector2>` | :ref:`get_size<class_TextLine_method_get_size>` **(** **)** |const|                                                                                                                                                                               |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`         | :ref:`hit_test<class_TextLine_method_hit_test>` **(** :ref:`float<class_float>` coords **)** |const|                                                                                                                                              |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`       | :ref:`resize_object<class_TextLine_method_resize_object>` **(** :ref:`Variant<class_Variant>` key, :ref:`Vector2<class_Vector2>` size, :ref:`InlineAlignment<enum_@GlobalScope_InlineAlignment>` inline_align=5 **)**                             |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                          | :ref:`set_bidi_override<class_TextLine_method_set_bidi_override>` **(** :ref:`Array<class_Array>` override **)**                                                                                                                                  |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                          | :ref:`tab_align<class_TextLine_method_tab_align>` **(** :ref:`PackedFloat32Array<class_PackedFloat32Array>` tab_stops **)**                                                                                                                       |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 
 Property Descriptions
 ---------------------
@@ -115,7 +115,7 @@ Text writing direction.
 
 .. _class_TextLine_property_flags:
 
-- :ref:`int<class_int>` **flags**
+- :ref:`JustificationFlag<enum_TextServer_JustificationFlag>` **flags**
 
 +-----------+------------------+
 | *Default* | ``3``            |
@@ -125,7 +125,7 @@ Text writing direction.
 | *Getter*  | get_flags()      |
 +-----------+------------------+
 
-Line Alignment rules. For more info see :ref:`TextServer<class_TextServer>`.
+Line alignment rules. For more info see :ref:`TextServer<class_TextServer>`.
 
 ----
 
@@ -220,7 +220,7 @@ Adds inline object to the text buffer, ``key`` must be unique. In the text, obje
 
 .. _class_TextLine_method_add_string:
 
-- :ref:`bool<class_bool>` **add_string** **(** :ref:`String<class_String>` text, :ref:`Font<class_Font>` fonts, :ref:`int<class_int>` size, :ref:`Dictionary<class_Dictionary>` opentype_features={}, :ref:`String<class_String>` language="", :ref:`Variant<class_Variant>` meta=null **)**
+- :ref:`bool<class_bool>` **add_string** **(** :ref:`String<class_String>` text, :ref:`Font<class_Font>` font, :ref:`int<class_int>` font_size, :ref:`String<class_String>` language="", :ref:`Variant<class_Variant>` meta=null **)**
 
 Adds text span and font to draw it.
 

+ 1 - 37
classes/class_textmesh.rst

@@ -53,17 +53,6 @@ Properties
 | :ref:`float<class_float>`                                         | :ref:`width<class_TextMesh_property_width>`                                                                 | ``500.0`` |
 +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------+-----------+
 
-Methods
--------
-
-+-----------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                  | :ref:`clear_opentype_features<class_TextMesh_method_clear_opentype_features>` **(** **)**                                                        |
-+-----------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>` | :ref:`get_opentype_feature<class_TextMesh_method_get_opentype_feature>` **(** :ref:`String<class_String>` tag **)** |const|                      |
-+-----------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                  | :ref:`set_opentype_feature<class_TextMesh_method_set_opentype_feature>` **(** :ref:`String<class_String>` tag, :ref:`int<class_int>` value **)** |
-+-----------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
-
 Property Descriptions
 ---------------------
 
@@ -109,7 +98,7 @@ Depths of the mesh, if set to ``0.0`` only front surface, is generated, and UV l
 | *Getter* | get_font()      |
 +----------+-----------------+
 
-:ref:`Font<class_Font>` used for the ``TextMesh``'s text.
+Font configuration used to display text.
 
 ----
 
@@ -271,31 +260,6 @@ If ``true``, all the text displays as UPPERCASE.
 
 Text width (in pixels), used for fill alignment.
 
-Method Descriptions
--------------------
-
-.. _class_TextMesh_method_clear_opentype_features:
-
-- void **clear_opentype_features** **(** **)**
-
-Removes all OpenType features.
-
-----
-
-.. _class_TextMesh_method_get_opentype_feature:
-
-- :ref:`int<class_int>` **get_opentype_feature** **(** :ref:`String<class_String>` tag **)** |const|
-
-Returns OpenType feature ``tag``.
-
-----
-
-.. _class_TextMesh_method_set_opentype_feature:
-
-- void **set_opentype_feature** **(** :ref:`String<class_String>` tag, :ref:`int<class_int>` value **)**
-
-Returns OpenType feature ``tag``. More info: `OpenType feature tags <https://docs.microsoft.com/en-us/typography/opentype/spec/featuretags>`__.
-
 .. |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.)`

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