浏览代码

classref: Sync with latest 4.0-alpha

Rémi Verschelde 3 年之前
父节点
当前提交
19fca2678c
共有 100 个文件被更改,包括 3740 次插入2297 次删除
  1. 198 180
      classes/[email protected]
  2. 4 4
      classes/class_animationnode.rst
  3. 3 3
      classes/class_area2d.rst
  4. 3 3
      classes/class_area3d.rst
  5. 2 2
      classes/class_array.rst
  6. 80 0
      classes/class_arrayoccluder3d.rst
  7. 19 21
      classes/class_audioserver.rst
  8. 1 1
      classes/class_audiostream.rst
  9. 1 1
      classes/class_audiostreamplayer2d.rst
  10. 1 1
      classes/class_audiostreamplayer3d.rst
  11. 199 0
      classes/class_audiostreamrandomizer.rst
  12. 0 66
      classes/class_audiostreamrandompitch.rst
  13. 1 1
      classes/class_bool.rst
  14. 2 2
      classes/class_boxmesh.rst
  15. 52 0
      classes/class_boxoccluder3d.rst
  16. 2 2
      classes/class_boxshape3d.rst
  17. 4 4
      classes/class_button.rst
  18. 3 1
      classes/class_callable.rst
  19. 2 2
      classes/class_canvasitem.rst
  20. 49 0
      classes/class_canvaslayer.rst
  21. 4 4
      classes/class_capsulemesh.rst
  22. 4 4
      classes/class_capsuleshape3d.rst
  23. 0 2
      classes/class_characterbody2d.rst
  24. 0 2
      classes/class_characterbody3d.rst
  25. 6 6
      classes/class_codeedit.rst
  26. 50 0
      classes/class_color.rst
  27. 0 8
      classes/class_colorpicker.rst
  28. 29 5
      classes/class_container.rst
  29. 10 14
      classes/class_control.rst
  30. 9 2
      classes/class_csgbox3d.rst
  31. 7 0
      classes/class_csgcombiner3d.rst
  32. 11 4
      classes/class_csgcylinder3d.rst
  33. 7 0
      classes/class_csgmesh3d.rst
  34. 7 0
      classes/class_csgpolygon3d.rst
  35. 7 0
      classes/class_csgprimitive3d.rst
  36. 7 0
      classes/class_csgshape3d.rst
  37. 7 0
      classes/class_csgsphere3d.rst
  38. 11 4
      classes/class_csgtorus3d.rst
  39. 4 4
      classes/class_cylindermesh.rst
  40. 2 2
      classes/class_cylindershape3d.rst
  41. 3 1
      classes/class_dictionary.rst
  42. 254 212
      classes/class_displayserver.rst
  43. 136 130
      classes/class_editorplugin.rst
  44. 25 31
      classes/class_enginedebugger.rst
  45. 64 0
      classes/class_engineprofiler.rst
  46. 17 15
      classes/class_environment.rst
  47. 8 8
      classes/class_float.rst
  48. 46 28
      classes/class_fontdata.rst
  49. 5 1
      classes/class_geometryinstance3d.rst
  50. 1 1
      classes/class_gpuparticles2d.rst
  51. 1 1
      classes/class_gpuparticles3d.rst
  52. 10 0
      classes/class_gridmap.rst
  53. 12 0
      classes/class_image.rst
  54. 6 4
      classes/class_input.rst
  55. 6 2
      classes/class_inputeventmouse.rst
  56. 9 1
      classes/class_int.rst
  57. 35 0
      classes/class_javascript.rst
  58. 3 1
      classes/class_line2d.rst
  59. 1 1
      classes/class_mesh.rst
  60. 19 29
      classes/class_multiplayerapi.rst
  61. 0 225
      classes/class_multiplayerreplicator.rst
  62. 126 0
      classes/class_multiplayerspawner.rst
  63. 73 0
      classes/class_multiplayersynchronizer.rst
  64. 48 16
      classes/class_node.rst
  65. 0 0
      classes/class_object.rst
  66. 24 27
      classes/class_occluder3d.rst
  67. 54 7
      classes/class_occluderinstance3d.rst
  68. 13 1
      classes/class_os.rst
  69. 0 37
      classes/class_panel.rst
  70. 47 47
      classes/class_physicalskymaterial.rst
  71. 54 0
      classes/class_polygonoccluder3d.rst
  72. 4 4
      classes/class_popup.rst
  73. 21 1
      classes/class_popupmenu.rst
  74. 52 52
      classes/class_proceduralskymaterial.rst
  75. 78 16
      classes/class_projectsettings.rst
  76. 52 0
      classes/class_quadoccluder3d.rst
  77. 4 2
      classes/class_rect2.rst
  78. 4 2
      classes/class_rect2i.rst
  79. 0 0
      classes/class_refcounted.rst
  80. 11 5
      classes/class_renderingserver.rst
  81. 0 0
      classes/class_resource.rst
  82. 2 2
      classes/class_resourceuid.rst
  83. 90 0
      classes/class_richtextlabel.rst
  84. 13 3
      classes/class_rid.rst
  85. 91 0
      classes/class_scenereplicationconfig.rst
  86. 52 0
      classes/class_sphereoccluder3d.rst
  87. 1 1
      classes/class_spritebase3d.rst
  88. 21 0
      classes/class_streampeerbuffer.rst
  89. 37 3
      classes/class_string.rst
  90. 32 0
      classes/class_stringname.rst
  91. 2 0
      classes/class_subviewportcontainer.rst
  92. 38 38
      classes/class_textline.rst
  93. 2 2
      classes/class_textparagraph.rst
  94. 408 330
      classes/class_textserver.rst
  95. 390 340
      classes/class_textserverextension.rst
  96. 39 39
      classes/class_texturebutton.rst
  97. 165 95
      classes/class_theme.rst
  98. 13 1
      classes/class_translationserver.rst
  99. 12 2
      classes/class_tree.rst
  100. 198 178
      classes/class_treeitem.rst

+ 198 - 180
classes/[email protected]

@@ -99,185 +99,187 @@ Properties
 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:`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:`range_step_decimals<class_@GlobalScope_method_range_step_decimals>` **(** :ref:`float<class_float>` x **)**                                                                                                                         |
-+-------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :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:`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:`range_step_decimals<class_@GlobalScope_method_range_step_decimals>` **(** :ref:`float<class_float>` x **)**                                                                                                                               |
++-------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :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 **)**                                                                                                     |
++-------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 
 Enumerations
 ------------
@@ -420,6 +422,10 @@ enum **VerticalAlignment**:
 
 .. _class_@GlobalScope_constant_INLINE_ALIGNMENT_BOTTOM:
 
+.. _class_@GlobalScope_constant_INLINE_ALIGNMENT_IMAGE_MASK:
+
+.. _class_@GlobalScope_constant_INLINE_ALIGNMENT_TEXT_MASK:
+
 enum **InlineAlignment**:
 
 - **INLINE_ALIGNMENT_TOP_TO** = **0** --- Aligns the top of the inline object (e.g. image, table) to the position of the text specified by ``INLINE_ALIGNMENT_TO_*`` constant.
@@ -442,6 +448,10 @@ enum **InlineAlignment**:
 
 - **INLINE_ALIGNMENT_BOTTOM** = **14** --- Aligns bottom of the inline object (e.g. image, table) to the bottom of the text. Equivalent to ``INLINE_ALIGNMENT_BOTTOM_TO | INLINE_ALIGNMENT_TO_BOTTOM``.
 
+- **INLINE_ALIGNMENT_IMAGE_MASK** = **3** --- A bit mask for ``INLINE_ALIGNMENT_*_TO`` alignment constants.
+
+- **INLINE_ALIGNMENT_TEXT_MASK** = **12** --- A bit mask for ``INLINE_ALIGNMENT_TO_*`` alignment constants.
+
 ----
 
 .. _enum_@GlobalScope_Key:
@@ -2065,7 +2075,7 @@ Additionally, other keywords can be included: "exp" for exponential range editin
 
 - **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 such as ``"Hello,Something,Else"``.
 
-- **PROPERTY_HINT_ENUM_SUGGESTION** = **3** --- Hints that a string property is can be an enumerated value to pick in a list specified via a hint string such as ``"Hello,Something,Else"``.
+- **PROPERTY_HINT_ENUM_SUGGESTION** = **3** --- Hints that a string property can be an enumerated value to pick in a list specified via a hint string such as ``"Hello,Something,Else"``.
 
 Unlike :ref:`PROPERTY_HINT_ENUM<class_@GlobalScope_constant_PROPERTY_HINT_ENUM>` a property with this hint still accepts arbitrary values and can be empty. The list of values serves to suggest possible values.
 
@@ -3136,6 +3146,14 @@ Returns the hyperbolic cosine of ``x`` in radians.
 
 ----
 
+.. _class_@GlobalScope_method_cubic_interpolate:
+
+- :ref:`float<class_float>` **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 **)**
+
+Cubic interpolates between two values by the factor defined in ``weight`` with pre and post values.
+
+----
+
 .. _class_@GlobalScope_method_db2linear:
 
 - :ref:`float<class_float>` **db2linear** **(** :ref:`float<class_float>` db **)**

+ 4 - 4
classes/class_animationnode.rst

@@ -82,7 +82,7 @@ Signals
 
 - **removed_from_graph** **(** **)**
 
-Called when the node was removed from the graph.
+Emitted when the node was removed from the graph.
 
 ----
 
@@ -177,7 +177,7 @@ Gets the property information for parameter. Parameters are custom local memory
 
 - :ref:`bool<class_bool>` **_has_filter** **(** **)** |virtual| |const|
 
-Returns ``true`` whether you want the blend tree editor to display filter editing on this node.
+Returns whether you want the blend tree editor to display filter editing on this node.
 
 ----
 
@@ -253,7 +253,7 @@ Gets the value of a parameter. Parameters are custom local memory used for your
 
 - :ref:`bool<class_bool>` **is_path_filtered** **(** :ref:`NodePath<class_NodePath>` path **)** |const|
 
-Returns ``true`` whether a given path is filtered.
+Returns whether the given path is filtered.
 
 ----
 
@@ -277,7 +277,7 @@ Adds or removes a path for the filter.
 
 - void **set_parameter** **(** :ref:`StringName<class_StringName>` name, :ref:`Variant<class_Variant>` value **)**
 
-Sets a custom parameter. These are used as local storage, because resources can be reused across the tree or scenes.
+Sets a custom parameter. These are used as local memory, because resources can be reused across the tree or scenes.
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`

+ 3 - 3
classes/class_area2d.rst

@@ -481,7 +481,7 @@ For performance reasons (collisions are all processed at the same time) this lis
 
 - :ref:`bool<class_bool>` **overlaps_area** **(** :ref:`Node<class_Node>` area **)** |const|
 
-If ``true``, the given area overlaps the Area2D.
+Returns ``true`` if the given ``Area2D`` intersects or overlaps this ``Area2D``, ``false`` otherwise.
 
 \ **Note:** The result of this test is not immediate after moving objects. For performance, the list of overlaps is updated once per frame and before the physics step. Consider using signals instead.
 
@@ -491,11 +491,11 @@ If ``true``, the given area overlaps the Area2D.
 
 - :ref:`bool<class_bool>` **overlaps_body** **(** :ref:`Node<class_Node>` body **)** |const|
 
-If ``true``, the given physics body overlaps the Area2D.
+Returns ``true`` if the given physics body intersects or overlaps this ``Area2D``, ``false`` otherwise.
 
 \ **Note:** The result of this test is not immediate after moving objects. For performance, list of overlaps is updated once per frame and before the physics step. Consider using signals instead.
 
-The ``body`` argument can either be a :ref:`PhysicsBody2D<class_PhysicsBody2D>` or a :ref:`TileMap<class_TileMap>` instance (while TileMaps are not physics bodies themselves, they register their tiles with collision shapes as a virtual physics body).
+The ``body`` argument can either be a :ref:`PhysicsBody2D<class_PhysicsBody2D>` or a :ref:`TileMap<class_TileMap>` instance. While TileMaps are not physics bodies themselves, they register their tiles with collision shapes as a virtual physics body.
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`

+ 3 - 3
classes/class_area3d.rst

@@ -603,7 +603,7 @@ For performance reasons (collisions are all processed at the same time) this lis
 
 - :ref:`bool<class_bool>` **overlaps_area** **(** :ref:`Node<class_Node>` area **)** |const|
 
-If ``true``, the given area overlaps the Area3D.
+Returns ``true`` if the given ``Area3D`` intersects or overlaps this ``Area3D``, ``false`` otherwise.
 
 \ **Note:** The result of this test is not immediate after moving objects. For performance, list of overlaps is updated once per frame and before the physics step. Consider using signals instead.
 
@@ -613,11 +613,11 @@ If ``true``, the given area overlaps the Area3D.
 
 - :ref:`bool<class_bool>` **overlaps_body** **(** :ref:`Node<class_Node>` body **)** |const|
 
-If ``true``, the given physics body overlaps the Area3D.
+Returns ``true`` if the given physics body intersects or overlaps this ``Area3D``, ``false`` otherwise.
 
 \ **Note:** The result of this test is not immediate after moving objects. For performance, list of overlaps is updated once per frame and before the physics step. Consider using signals instead.
 
-The ``body`` argument can either be a :ref:`PhysicsBody3D<class_PhysicsBody3D>` or a :ref:`GridMap<class_GridMap>` instance (while GridMaps are not physics body themselves, they register their tiles with collision shapes as a virtual physics body).
+The ``body`` argument can either be a :ref:`PhysicsBody3D<class_PhysicsBody3D>` or a :ref:`GridMap<class_GridMap>` instance. While GridMaps are not physics body themselves, they register their tiles with collision shapes as a virtual physics body.
 
 .. |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 - 2
classes/class_array.rst

@@ -486,9 +486,9 @@ Returns ``true`` if the array contains the given value.
 
 - :ref:`int<class_int>` **hash** **(** **)** |const|
 
-Returns a hashed integer value representing the array and its contents.
+Returns a hashed 32-bit integer value representing the array and its contents.
 
-\ **Note:** Arrays with equal contents can still produce different hashes. Only the exact same arrays will produce the same hashed integer value.
+\ **Note:** ``Array``\ s with equal content will always produce identical hash values. However, the reverse is not true. Returning identical hash values does *not* imply the arrays are equal, because different arrays can have identical hash values due to hash collisions.
 
 ----
 

+ 80 - 0
classes/class_arrayoccluder3d.rst

@@ -0,0 +1,80 @@
+:github_url: hide
+
+.. Generated automatically by doc/tools/make_rst.py in Godot's source tree.
+.. DO NOT EDIT THIS FILE, but the ArrayOccluder3D.xml source instead.
+.. The source is found in doc/classes or modules/<name>/doc_classes.
+
+.. _class_ArrayOccluder3D:
+
+ArrayOccluder3D
+===============
+
+**Inherits:** :ref:`Occluder3D<class_Occluder3D>` **<** :ref:`Resource<class_Resource>` **<** :ref:`RefCounted<class_RefCounted>` **<** :ref:`Object<class_Object>`
+
+3D polygon shape for use with occlusion culling in :ref:`OccluderInstance3D<class_OccluderInstance3D>`.
+
+Description
+-----------
+
+``ArrayOccluder3D`` stores an arbitrary 3D polygon shape that can be used by the engine's occlusion culling system. This is analogous to :ref:`ArrayMesh<class_ArrayMesh>`, but for occluders.
+
+See :ref:`OccluderInstance3D<class_OccluderInstance3D>`'s documentation for instructions on setting up occlusion culling.
+
+Properties
+----------
+
++-----------------------------------------------------+----------------------------------------------------------+--------------------------+
+| :ref:`PackedInt32Array<class_PackedInt32Array>`     | :ref:`indices<class_ArrayOccluder3D_property_indices>`   | ``PackedInt32Array()``   |
++-----------------------------------------------------+----------------------------------------------------------+--------------------------+
+| :ref:`PackedVector3Array<class_PackedVector3Array>` | :ref:`vertices<class_ArrayOccluder3D_property_vertices>` | ``PackedVector3Array()`` |
++-----------------------------------------------------+----------------------------------------------------------+--------------------------+
+
+Methods
+-------
+
++------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void | :ref:`set_arrays<class_ArrayOccluder3D_method_set_arrays>` **(** :ref:`PackedVector3Array<class_PackedVector3Array>` vertices, :ref:`PackedInt32Array<class_PackedInt32Array>` indices **)** |
++------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+Property Descriptions
+---------------------
+
+.. _class_ArrayOccluder3D_property_indices:
+
+- :ref:`PackedInt32Array<class_PackedInt32Array>` **indices**
+
++-----------+------------------------+
+| *Default* | ``PackedInt32Array()`` |
++-----------+------------------------+
+| *Setter*  | set_indices(value)     |
++-----------+------------------------+
+| *Getter*  | get_indices()          |
++-----------+------------------------+
+
+----
+
+.. _class_ArrayOccluder3D_property_vertices:
+
+- :ref:`PackedVector3Array<class_PackedVector3Array>` **vertices**
+
++-----------+--------------------------+
+| *Default* | ``PackedVector3Array()`` |
++-----------+--------------------------+
+| *Setter*  | set_vertices(value)      |
++-----------+--------------------------+
+| *Getter*  | get_vertices()           |
++-----------+--------------------------+
+
+Method Descriptions
+-------------------
+
+.. _class_ArrayOccluder3D_method_set_arrays:
+
+- void **set_arrays** **(** :ref:`PackedVector3Array<class_PackedVector3Array>` vertices, :ref:`PackedInt32Array<class_PackedInt32Array>` indices **)**
+
+.. |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.)`

+ 19 - 21
classes/class_audioserver.rst

@@ -35,6 +35,8 @@ Properties
 +-----------------------------+------------------------------------------------------------------------------+---------------+
 | :ref:`int<class_int>`       | :ref:`bus_count<class_AudioServer_property_bus_count>`                       | ``1``         |
 +-----------------------------+------------------------------------------------------------------------------+---------------+
+| :ref:`String<class_String>` | :ref:`capture_device<class_AudioServer_property_capture_device>`             | ``"Default"`` |
++-----------------------------+------------------------------------------------------------------------------+---------------+
 | :ref:`String<class_String>` | :ref:`device<class_AudioServer_property_device>`                             | ``"Default"`` |
 +-----------------------------+------------------------------------------------------------------------------+---------------+
 | :ref:`float<class_float>`   | :ref:`playback_speed_scale<class_AudioServer_property_playback_speed_scale>` | ``1.0``       |
@@ -48,12 +50,8 @@ Methods
 +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                                                  | :ref:`add_bus_effect<class_AudioServer_method_add_bus_effect>` **(** :ref:`int<class_int>` bus_idx, :ref:`AudioEffect<class_AudioEffect>` effect, :ref:`int<class_int>` at_position=-1 **)**  |
 +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_String>`                           | :ref:`capture_get_device<class_AudioServer_method_capture_get_device>` **(** **)**                                                                                                            |
-+-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`Array<class_Array>`                             | :ref:`capture_get_device_list<class_AudioServer_method_capture_get_device_list>` **(** **)**                                                                                                  |
 +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                  | :ref:`capture_set_device<class_AudioServer_method_capture_set_device>` **(** :ref:`String<class_String>` name **)**                                                                           |
-+-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`AudioBusLayout<class_AudioBusLayout>`           | :ref:`generate_bus_layout<class_AudioServer_method_generate_bus_layout>` **(** **)** |const|                                                                                                  |
 +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`int<class_int>`                                 | :ref:`get_bus_channels<class_AudioServer_method_get_bus_channels>` **(** :ref:`int<class_int>` bus_idx **)** |const|                                                                          |
@@ -176,6 +174,22 @@ Number of available audio buses.
 
 ----
 
+.. _class_AudioServer_property_capture_device:
+
+- :ref:`String<class_String>` **capture_device**
+
++-----------+---------------------------+
+| *Default* | ``"Default"``             |
++-----------+---------------------------+
+| *Setter*  | capture_set_device(value) |
++-----------+---------------------------+
+| *Getter*  | capture_get_device()      |
++-----------+---------------------------+
+
+Name of the current device for audio input (see :ref:`get_device_list<class_AudioServer_method_get_device_list>`). On systems with multiple audio inputs (such as analog, USB and HDMI audio), this can be used to select the audio input device. The value ``"Default"`` will record audio on the system-wide default audio input. If an invalid device name is set, the value will be reverted back to ``"Default"``.
+
+----
+
 .. _class_AudioServer_property_device:
 
 - :ref:`String<class_String>` **device**
@@ -188,7 +202,7 @@ Number of available audio buses.
 | *Getter*  | get_device()      |
 +-----------+-------------------+
 
-Name of the current device for audio output (see :ref:`get_device_list<class_AudioServer_method_get_device_list>`).
+Name of the current device for audio output (see :ref:`get_device_list<class_AudioServer_method_get_device_list>`). On systems with multiple audio outputs (such as analog, USB and HDMI audio), this can be used to select the audio output device. The value ``"Default"`` will play audio on the system-wide default audio output. If an invalid device name is set, the value will be reverted back to ``"Default"``.
 
 ----
 
@@ -225,14 +239,6 @@ Adds an :ref:`AudioEffect<class_AudioEffect>` effect to the bus ``bus_idx`` at `
 
 ----
 
-.. _class_AudioServer_method_capture_get_device:
-
-- :ref:`String<class_String>` **capture_get_device** **(** **)**
-
-Name of the current device for audio input (see :ref:`capture_get_device_list<class_AudioServer_method_capture_get_device_list>`).
-
-----
-
 .. _class_AudioServer_method_capture_get_device_list:
 
 - :ref:`Array<class_Array>` **capture_get_device_list** **(** **)**
@@ -241,14 +247,6 @@ Returns the names of all audio input devices detected on the system.
 
 ----
 
-.. _class_AudioServer_method_capture_set_device:
-
-- void **capture_set_device** **(** :ref:`String<class_String>` name **)**
-
-Sets which audio input device is used for audio capture.
-
-----
-
 .. _class_AudioServer_method_generate_bus_layout:
 
 - :ref:`AudioBusLayout<class_AudioBusLayout>` **generate_bus_layout** **(** **)** |const|

+ 1 - 1
classes/class_audiostream.rst

@@ -11,7 +11,7 @@ AudioStream
 
 **Inherits:** :ref:`Resource<class_Resource>` **<** :ref:`RefCounted<class_RefCounted>` **<** :ref:`Object<class_Object>`
 
-**Inherited By:** :ref:`AudioStreamGenerator<class_AudioStreamGenerator>`, :ref:`AudioStreamMP3<class_AudioStreamMP3>`, :ref:`AudioStreamMicrophone<class_AudioStreamMicrophone>`, :ref:`AudioStreamOGGVorbis<class_AudioStreamOGGVorbis>`, :ref:`AudioStreamRandomPitch<class_AudioStreamRandomPitch>`, :ref:`AudioStreamSample<class_AudioStreamSample>`
+**Inherited By:** :ref:`AudioStreamGenerator<class_AudioStreamGenerator>`, :ref:`AudioStreamMP3<class_AudioStreamMP3>`, :ref:`AudioStreamMicrophone<class_AudioStreamMicrophone>`, :ref:`AudioStreamOGGVorbis<class_AudioStreamOGGVorbis>`, :ref:`AudioStreamRandomizer<class_AudioStreamRandomizer>`, :ref:`AudioStreamSample<class_AudioStreamSample>`
 
 Base class for audio streams.
 

+ 1 - 1
classes/class_audiostreamplayer2d.rst

@@ -93,7 +93,7 @@ Property Descriptions
 | *Getter*  | get_area_mask()      |
 +-----------+----------------------+
 
-Areas in which this sound plays.
+Determines which :ref:`Area2D<class_Area2D>` layers affect the sound for reverb and audio bus effects. Areas can be used to redirect :ref:`AudioStream<class_AudioStream>`\ s so that they play in a certain audio bus. An example of how you might use this is making a "water" area so that sounds played in the water are redirected through an audio bus to make them sound like they are being played underwater.
 
 ----
 

+ 1 - 1
classes/class_audiostreamplayer3d.rst

@@ -152,7 +152,7 @@ Property Descriptions
 | *Getter*  | get_area_mask()      |
 +-----------+----------------------+
 
-Areas in which this sound plays.
+Determines which :ref:`Area3D<class_Area3D>` layers affect the sound for reverb and audio bus effects. Areas can be used to redirect :ref:`AudioStream<class_AudioStream>`\ s so that they play in a certain audio bus. An example of how you might use this is making a "water" area so that sounds played in the water are redirected through an audio bus to make them sound like they are being played underwater.
 
 ----
 

+ 199 - 0
classes/class_audiostreamrandomizer.rst

@@ -0,0 +1,199 @@
+:github_url: hide
+
+.. Generated automatically by doc/tools/make_rst.py in Godot's source tree.
+.. DO NOT EDIT THIS FILE, but the AudioStreamRandomizer.xml source instead.
+.. The source is found in doc/classes or modules/<name>/doc_classes.
+
+.. _class_AudioStreamRandomizer:
+
+AudioStreamRandomizer
+=====================
+
+**Inherits:** :ref:`AudioStream<class_AudioStream>` **<** :ref:`Resource<class_Resource>` **<** :ref:`RefCounted<class_RefCounted>` **<** :ref:`Object<class_Object>`
+
+Wraps a pool of audio streams with pitch and volume shifting.
+
+Description
+-----------
+
+Picks a random AudioStream from the pool, depending on the playback mode, and applies random pitch shifting and volume shifting during playback.
+
+Properties
+----------
+
++--------------------------------------------------------------+----------------------------------------------------------------------------------------------+---------+
+| :ref:`PlaybackMode<enum_AudioStreamRandomizer_PlaybackMode>` | :ref:`playback_mode<class_AudioStreamRandomizer_property_playback_mode>`                     | ``0``   |
++--------------------------------------------------------------+----------------------------------------------------------------------------------------------+---------+
+| :ref:`float<class_float>`                                    | :ref:`random_pitch<class_AudioStreamRandomizer_property_random_pitch>`                       | ``1.1`` |
++--------------------------------------------------------------+----------------------------------------------------------------------------------------------+---------+
+| :ref:`float<class_float>`                                    | :ref:`random_volume_offset_db<class_AudioStreamRandomizer_property_random_volume_offset_db>` | ``5.0`` |
++--------------------------------------------------------------+----------------------------------------------------------------------------------------------+---------+
+| :ref:`int<class_int>`                                        | :ref:`streams_count<class_AudioStreamRandomizer_property_streams_count>`                     | ``0``   |
++--------------------------------------------------------------+----------------------------------------------------------------------------------------------+---------+
+
+Methods
+-------
+
++---------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                  | :ref:`add_stream<class_AudioStreamRandomizer_method_add_stream>` **(** :ref:`int<class_int>` index **)**                                                                         |
++---------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`AudioStream<class_AudioStream>` | :ref:`get_stream<class_AudioStreamRandomizer_method_get_stream>` **(** :ref:`int<class_int>` index **)** |const|                                                                 |
++---------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`             | :ref:`get_stream_probability_weight<class_AudioStreamRandomizer_method_get_stream_probability_weight>` **(** :ref:`int<class_int>` index **)** |const|                           |
++---------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                  | :ref:`move_stream<class_AudioStreamRandomizer_method_move_stream>` **(** :ref:`int<class_int>` index_from, :ref:`int<class_int>` index_to **)**                                  |
++---------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                  | :ref:`remove_stream<class_AudioStreamRandomizer_method_remove_stream>` **(** :ref:`int<class_int>` index **)**                                                                   |
++---------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                  | :ref:`set_stream<class_AudioStreamRandomizer_method_set_stream>` **(** :ref:`int<class_int>` index, :ref:`AudioStream<class_AudioStream>` stream **)**                           |
++---------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                  | :ref:`set_stream_probability_weight<class_AudioStreamRandomizer_method_set_stream_probability_weight>` **(** :ref:`int<class_int>` index, :ref:`float<class_float>` weight **)** |
++---------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+Enumerations
+------------
+
+.. _enum_AudioStreamRandomizer_PlaybackMode:
+
+.. _class_AudioStreamRandomizer_constant_PLAYBACK_RANDOM_NO_REPEATS:
+
+.. _class_AudioStreamRandomizer_constant_PLAYBACK_RANDOM:
+
+.. _class_AudioStreamRandomizer_constant_PLAYBACK_SEQUENTIAL:
+
+enum **PlaybackMode**:
+
+- **PLAYBACK_RANDOM_NO_REPEATS** = **0** --- Pick a stream at random according to the probability weights chosen for each stream, but avoid playing the same stream twice in a row whenever possible.
+
+- **PLAYBACK_RANDOM** = **1** --- Pick a stream at random according to the probability weights chosen for each stream.
+
+- **PLAYBACK_SEQUENTIAL** = **2** --- Play streams in the order they appear in the stream pool.
+
+Property Descriptions
+---------------------
+
+.. _class_AudioStreamRandomizer_property_playback_mode:
+
+- :ref:`PlaybackMode<enum_AudioStreamRandomizer_PlaybackMode>` **playback_mode**
+
++-----------+--------------------------+
+| *Default* | ``0``                    |
++-----------+--------------------------+
+| *Setter*  | set_playback_mode(value) |
++-----------+--------------------------+
+| *Getter*  | get_playback_mode()      |
++-----------+--------------------------+
+
+Controls how this AudioStreamRandomizer picks which AudioStream to play next.
+
+----
+
+.. _class_AudioStreamRandomizer_property_random_pitch:
+
+- :ref:`float<class_float>` **random_pitch**
+
++-----------+-------------------------+
+| *Default* | ``1.1``                 |
++-----------+-------------------------+
+| *Setter*  | set_random_pitch(value) |
++-----------+-------------------------+
+| *Getter*  | get_random_pitch()      |
++-----------+-------------------------+
+
+The intensity of random pitch variation. A value of 1 means no variation.
+
+----
+
+.. _class_AudioStreamRandomizer_property_random_volume_offset_db:
+
+- :ref:`float<class_float>` **random_volume_offset_db**
+
++-----------+------------------------------------+
+| *Default* | ``5.0``                            |
++-----------+------------------------------------+
+| *Setter*  | set_random_volume_offset_db(value) |
++-----------+------------------------------------+
+| *Getter*  | get_random_volume_offset_db()      |
++-----------+------------------------------------+
+
+The intensity of random volume variation. A value of 0 means no variation.
+
+----
+
+.. _class_AudioStreamRandomizer_property_streams_count:
+
+- :ref:`int<class_int>` **streams_count**
+
++-----------+--------------------------+
+| *Default* | ``0``                    |
++-----------+--------------------------+
+| *Setter*  | set_streams_count(value) |
++-----------+--------------------------+
+| *Getter*  | get_streams_count()      |
++-----------+--------------------------+
+
+The number of streams in the stream pool.
+
+Method Descriptions
+-------------------
+
+.. _class_AudioStreamRandomizer_method_add_stream:
+
+- void **add_stream** **(** :ref:`int<class_int>` index **)**
+
+Insert a stream at the specified index.
+
+----
+
+.. _class_AudioStreamRandomizer_method_get_stream:
+
+- :ref:`AudioStream<class_AudioStream>` **get_stream** **(** :ref:`int<class_int>` index **)** |const|
+
+Returns the stream at the specified index.
+
+----
+
+.. _class_AudioStreamRandomizer_method_get_stream_probability_weight:
+
+- :ref:`float<class_float>` **get_stream_probability_weight** **(** :ref:`int<class_int>` index **)** |const|
+
+Returns the probability weight associated with the stream at the given index.
+
+----
+
+.. _class_AudioStreamRandomizer_method_move_stream:
+
+- void **move_stream** **(** :ref:`int<class_int>` index_from, :ref:`int<class_int>` index_to **)**
+
+Move a stream from one index to another.
+
+----
+
+.. _class_AudioStreamRandomizer_method_remove_stream:
+
+- void **remove_stream** **(** :ref:`int<class_int>` index **)**
+
+Remove the stream at the specified index.
+
+----
+
+.. _class_AudioStreamRandomizer_method_set_stream:
+
+- void **set_stream** **(** :ref:`int<class_int>` index, :ref:`AudioStream<class_AudioStream>` stream **)**
+
+Set the AudioStream at the specified index.
+
+----
+
+.. _class_AudioStreamRandomizer_method_set_stream_probability_weight:
+
+- void **set_stream_probability_weight** **(** :ref:`int<class_int>` index, :ref:`float<class_float>` weight **)**
+
+Set the probability weight of the stream at the specified index. The higher this value, the more likely that the randomizer will choose this stream during random playback modes.
+
+.. |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 - 66
classes/class_audiostreamrandompitch.rst

@@ -1,66 +0,0 @@
-:github_url: hide
-
-.. Generated automatically by doc/tools/make_rst.py in Godot's source tree.
-.. DO NOT EDIT THIS FILE, but the AudioStreamRandomPitch.xml source instead.
-.. The source is found in doc/classes or modules/<name>/doc_classes.
-
-.. _class_AudioStreamRandomPitch:
-
-AudioStreamRandomPitch
-======================
-
-**Inherits:** :ref:`AudioStream<class_AudioStream>` **<** :ref:`Resource<class_Resource>` **<** :ref:`RefCounted<class_RefCounted>` **<** :ref:`Object<class_Object>`
-
-Plays audio with random pitch shifting.
-
-Description
------------
-
-Randomly varies pitch on each start.
-
-Properties
-----------
-
-+---------------------------------------+-------------------------------------------------------------------------+---------+
-| :ref:`AudioStream<class_AudioStream>` | :ref:`audio_stream<class_AudioStreamRandomPitch_property_audio_stream>` |         |
-+---------------------------------------+-------------------------------------------------------------------------+---------+
-| :ref:`float<class_float>`             | :ref:`random_pitch<class_AudioStreamRandomPitch_property_random_pitch>` | ``1.1`` |
-+---------------------------------------+-------------------------------------------------------------------------+---------+
-
-Property Descriptions
----------------------
-
-.. _class_AudioStreamRandomPitch_property_audio_stream:
-
-- :ref:`AudioStream<class_AudioStream>` **audio_stream**
-
-+----------+-------------------------+
-| *Setter* | set_audio_stream(value) |
-+----------+-------------------------+
-| *Getter* | get_audio_stream()      |
-+----------+-------------------------+
-
-The current :ref:`AudioStream<class_AudioStream>`.
-
-----
-
-.. _class_AudioStreamRandomPitch_property_random_pitch:
-
-- :ref:`float<class_float>` **random_pitch**
-
-+-----------+-------------------------+
-| *Default* | ``1.1``                 |
-+-----------+-------------------------+
-| *Setter*  | set_random_pitch(value) |
-+-----------+-------------------------+
-| *Getter*  | get_random_pitch()      |
-+-----------+-------------------------+
-
-The intensity of random pitch variation.
-
-.. |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.)`

+ 1 - 1
classes/class_bool.rst

@@ -80,7 +80,7 @@ The following code will set ``can_shoot`` to ``false`` and start a timer. This w
  .. code-tab:: gdscript
 
     var _can_shoot = true
-    onready var _cool_down = $CoolDownTimer
+    @onready var _cool_down = $CoolDownTimer
     
     func shoot():
         if _can_shoot and Input.is_action_pressed("shoot"):

+ 2 - 2
classes/class_boxmesh.rst

@@ -26,7 +26,7 @@ Properties
 ----------
 
 +-------------------------------+------------------------------------------------------------------+----------------------+
-| :ref:`Vector3<class_Vector3>` | :ref:`size<class_BoxMesh_property_size>`                         | ``Vector3(2, 2, 2)`` |
+| :ref:`Vector3<class_Vector3>` | :ref:`size<class_BoxMesh_property_size>`                         | ``Vector3(1, 1, 1)`` |
 +-------------------------------+------------------------------------------------------------------+----------------------+
 | :ref:`int<class_int>`         | :ref:`subdivide_depth<class_BoxMesh_property_subdivide_depth>`   | ``0``                |
 +-------------------------------+------------------------------------------------------------------+----------------------+
@@ -43,7 +43,7 @@ Property Descriptions
 - :ref:`Vector3<class_Vector3>` **size**
 
 +-----------+----------------------+
-| *Default* | ``Vector3(2, 2, 2)`` |
+| *Default* | ``Vector3(1, 1, 1)`` |
 +-----------+----------------------+
 | *Setter*  | set_size(value)      |
 +-----------+----------------------+

+ 52 - 0
classes/class_boxoccluder3d.rst

@@ -0,0 +1,52 @@
+:github_url: hide
+
+.. Generated automatically by doc/tools/make_rst.py in Godot's source tree.
+.. DO NOT EDIT THIS FILE, but the BoxOccluder3D.xml source instead.
+.. The source is found in doc/classes or modules/<name>/doc_classes.
+
+.. _class_BoxOccluder3D:
+
+BoxOccluder3D
+=============
+
+**Inherits:** :ref:`Occluder3D<class_Occluder3D>` **<** :ref:`Resource<class_Resource>` **<** :ref:`RefCounted<class_RefCounted>` **<** :ref:`Object<class_Object>`
+
+Cuboid shape for use with occlusion culling in :ref:`OccluderInstance3D<class_OccluderInstance3D>`.
+
+Description
+-----------
+
+``BoxOccluder3D`` stores a cuboid shape that can be used by the engine's occlusion culling system.
+
+See :ref:`OccluderInstance3D<class_OccluderInstance3D>`'s documentation for instructions on setting up occlusion culling.
+
+Properties
+----------
+
++-------------------------------+------------------------------------------------+----------------------+
+| :ref:`Vector3<class_Vector3>` | :ref:`size<class_BoxOccluder3D_property_size>` | ``Vector3(1, 1, 1)`` |
++-------------------------------+------------------------------------------------+----------------------+
+
+Property Descriptions
+---------------------
+
+.. _class_BoxOccluder3D_property_size:
+
+- :ref:`Vector3<class_Vector3>` **size**
+
++-----------+----------------------+
+| *Default* | ``Vector3(1, 1, 1)`` |
++-----------+----------------------+
+| *Setter*  | set_size(value)      |
++-----------+----------------------+
+| *Getter*  | get_size()           |
++-----------+----------------------+
+
+The box's size in 3D units.
+
+.. |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 - 2
classes/class_boxshape3d.rst

@@ -31,7 +31,7 @@ Properties
 ----------
 
 +-------------------------------+---------------------------------------------+----------------------+
-| :ref:`Vector3<class_Vector3>` | :ref:`size<class_BoxShape3D_property_size>` | ``Vector3(2, 2, 2)`` |
+| :ref:`Vector3<class_Vector3>` | :ref:`size<class_BoxShape3D_property_size>` | ``Vector3(1, 1, 1)`` |
 +-------------------------------+---------------------------------------------+----------------------+
 
 Property Descriptions
@@ -42,7 +42,7 @@ Property Descriptions
 - :ref:`Vector3<class_Vector3>` **size**
 
 +-----------+----------------------+
-| *Default* | ``Vector3(2, 2, 2)`` |
+| *Default* | ``Vector3(1, 1, 1)`` |
 +-----------+----------------------+
 | *Setter*  | set_size(value)      |
 +-----------+----------------------+

+ 4 - 4
classes/class_button.rst

@@ -118,7 +118,7 @@ Theme Properties
 +---------------------------------+------------------------------------------------------------------------------------+-------------------------------------+
 | :ref:`Color<class_Color>`       | :ref:`font_pressed_color<class_Button_theme_color_font_pressed_color>`             | ``Color(1, 1, 1, 1)``               |
 +---------------------------------+------------------------------------------------------------------------------------+-------------------------------------+
-| :ref:`Color<class_Color>`       | :ref:`icon_disabled_color<class_Button_theme_color_icon_disabled_color>`           | ``Color(1, 1, 1, 1)``               |
+| :ref:`Color<class_Color>`       | :ref:`icon_disabled_color<class_Button_theme_color_icon_disabled_color>`           | ``Color(1, 1, 1, 0.4)``             |
 +---------------------------------+------------------------------------------------------------------------------------+-------------------------------------+
 | :ref:`Color<class_Color>`       | :ref:`icon_focus_color<class_Button_theme_color_icon_focus_color>`                 | ``Color(1, 1, 1, 1)``               |
 +---------------------------------+------------------------------------------------------------------------------------+-------------------------------------+
@@ -410,9 +410,9 @@ Text :ref:`Color<class_Color>` used when the ``Button`` is being pressed.
 
 - :ref:`Color<class_Color>` **icon_disabled_color**
 
-+-----------+-----------------------+
-| *Default* | ``Color(1, 1, 1, 1)`` |
-+-----------+-----------------------+
++-----------+-------------------------+
+| *Default* | ``Color(1, 1, 1, 0.4)`` |
++-----------+-------------------------+
 
 Icon modulate :ref:`Color<class_Color>` used when the ``Button`` is disabled.
 

+ 3 - 1
classes/class_callable.rst

@@ -182,7 +182,9 @@ Returns the ID of this ``Callable``'s object (see :ref:`Object.get_instance_id<c
 
 - :ref:`int<class_int>` **hash** **(** **)** |const|
 
-Returns the hash value of this ``Callable``'s object.
+Returns the 32-bit hash value of this ``Callable``'s object.
+
+\ **Note:** ``Callable``\ s with equal content will always produce identical hash values. However, the reverse is not true. Returning identical hash values does *not* imply the callables are equal, because different callables can have identical hash values due to hash collisions. The engine uses a 32-bit hash algorithm for :ref:`hash<class_Callable_method_hash>`.
 
 ----
 

+ 2 - 2
classes/class_canvasitem.rst

@@ -757,7 +757,7 @@ Returns the transform matrix of this item's canvas.
 
 - :ref:`Vector2<class_Vector2>` **get_global_mouse_position** **(** **)** |const|
 
-Returns the global position of the mouse.
+Returns the mouse's position in the :ref:`CanvasLayer<class_CanvasLayer>` that this ``CanvasItem`` is in using the coordinate system of the :ref:`CanvasLayer<class_CanvasLayer>`.
 
 ----
 
@@ -781,7 +781,7 @@ Returns the global transform matrix of this item in relation to the canvas.
 
 - :ref:`Vector2<class_Vector2>` **get_local_mouse_position** **(** **)** |const|
 
-Returns the mouse position relative to this item's position.
+Returns the mouse's position in this ``CanvasItem`` using the local coordinate system of this ``CanvasItem``.
 
 ----
 

+ 49 - 0
classes/class_canvaslayer.rst

@@ -49,6 +49,8 @@ Properties
 +---------------------------------------+----------------------------------------------------------------------------------+-----------------------------------+
 | :ref:`Transform2D<class_Transform2D>` | :ref:`transform<class_CanvasLayer_property_transform>`                           | ``Transform2D(1, 0, 0, 1, 0, 0)`` |
 +---------------------------------------+----------------------------------------------------------------------------------+-----------------------------------+
+| :ref:`bool<class_bool>`               | :ref:`visible<class_CanvasLayer_property_visible>`                               | ``true``                          |
++---------------------------------------+----------------------------------------------------------------------------------+-----------------------------------+
 
 Methods
 -------
@@ -56,6 +58,19 @@ Methods
 +-----------------------+----------------------------------------------------------------------------+
 | :ref:`RID<class_RID>` | :ref:`get_canvas<class_CanvasLayer_method_get_canvas>` **(** **)** |const| |
 +-----------------------+----------------------------------------------------------------------------+
+| void                  | :ref:`hide<class_CanvasLayer_method_hide>` **(** **)**                     |
++-----------------------+----------------------------------------------------------------------------+
+| void                  | :ref:`show<class_CanvasLayer_method_show>` **(** **)**                     |
++-----------------------+----------------------------------------------------------------------------+
+
+Signals
+-------
+
+.. _class_CanvasLayer_signal_visibility_changed:
+
+- **visibility_changed** **(** **)**
+
+Emitted when visibility of the layer is changed. See :ref:`visible<class_CanvasLayer_property_visible>`.
 
 Property Descriptions
 ---------------------
@@ -184,6 +199,24 @@ The layer's scale.
 
 The layer's transform.
 
+----
+
+.. _class_CanvasLayer_property_visible:
+
+- :ref:`bool<class_bool>` **visible**
+
++-----------+--------------------+
+| *Default* | ``true``           |
++-----------+--------------------+
+| *Setter*  | set_visible(value) |
++-----------+--------------------+
+| *Getter*  | is_visible()       |
++-----------+--------------------+
+
+If ``false``, any :ref:`CanvasItem<class_CanvasItem>` under this ``CanvasLayer`` will be hidden.
+
+Unlike :ref:`CanvasItem.visible<class_CanvasItem_property_visible>`, visibility of a ``CanvasLayer`` isn't propagated to underlying layers.
+
 Method Descriptions
 -------------------
 
@@ -193,6 +226,22 @@ Method Descriptions
 
 Returns the RID of the canvas used by this layer.
 
+----
+
+.. _class_CanvasLayer_method_hide:
+
+- void **hide** **(** **)**
+
+Hides any :ref:`CanvasItem<class_CanvasItem>` under this ``CanvasLayer``. This is equivalent to setting :ref:`visible<class_CanvasLayer_property_visible>` to ``false``.
+
+----
+
+.. _class_CanvasLayer_method_show:
+
+- void **show** **(** **)**
+
+Shows any :ref:`CanvasItem<class_CanvasItem>` under this ``CanvasLayer``. This is equivalent to setting :ref:`visible<class_CanvasLayer_property_visible>` to ``true``.
+
 .. |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.)`

+ 4 - 4
classes/class_capsulemesh.rst

@@ -22,11 +22,11 @@ Properties
 ----------
 
 +---------------------------+--------------------------------------------------------------------+---------+
-| :ref:`float<class_float>` | :ref:`height<class_CapsuleMesh_property_height>`                   | ``3.0`` |
+| :ref:`float<class_float>` | :ref:`height<class_CapsuleMesh_property_height>`                   | ``2.0`` |
 +---------------------------+--------------------------------------------------------------------+---------+
 | :ref:`int<class_int>`     | :ref:`radial_segments<class_CapsuleMesh_property_radial_segments>` | ``64``  |
 +---------------------------+--------------------------------------------------------------------+---------+
-| :ref:`float<class_float>` | :ref:`radius<class_CapsuleMesh_property_radius>`                   | ``1.0`` |
+| :ref:`float<class_float>` | :ref:`radius<class_CapsuleMesh_property_radius>`                   | ``0.5`` |
 +---------------------------+--------------------------------------------------------------------+---------+
 | :ref:`int<class_int>`     | :ref:`rings<class_CapsuleMesh_property_rings>`                     | ``8``   |
 +---------------------------+--------------------------------------------------------------------+---------+
@@ -39,7 +39,7 @@ Property Descriptions
 - :ref:`float<class_float>` **height**
 
 +-----------+-------------------+
-| *Default* | ``3.0``           |
+| *Default* | ``2.0``           |
 +-----------+-------------------+
 | *Setter*  | set_height(value) |
 +-----------+-------------------+
@@ -71,7 +71,7 @@ Number of radial segments on the capsule mesh.
 - :ref:`float<class_float>` **radius**
 
 +-----------+-------------------+
-| *Default* | ``1.0``           |
+| *Default* | ``0.5``           |
 +-----------+-------------------+
 | *Setter*  | set_radius(value) |
 +-----------+-------------------+

+ 4 - 4
classes/class_capsuleshape3d.rst

@@ -27,9 +27,9 @@ Properties
 ----------
 
 +---------------------------+-----------------------------------------------------+---------+
-| :ref:`float<class_float>` | :ref:`height<class_CapsuleShape3D_property_height>` | ``3.0`` |
+| :ref:`float<class_float>` | :ref:`height<class_CapsuleShape3D_property_height>` | ``2.0`` |
 +---------------------------+-----------------------------------------------------+---------+
-| :ref:`float<class_float>` | :ref:`radius<class_CapsuleShape3D_property_radius>` | ``1.0`` |
+| :ref:`float<class_float>` | :ref:`radius<class_CapsuleShape3D_property_radius>` | ``0.5`` |
 +---------------------------+-----------------------------------------------------+---------+
 
 Property Descriptions
@@ -40,7 +40,7 @@ Property Descriptions
 - :ref:`float<class_float>` **height**
 
 +-----------+-------------------+
-| *Default* | ``3.0``           |
+| *Default* | ``2.0``           |
 +-----------+-------------------+
 | *Setter*  | set_height(value) |
 +-----------+-------------------+
@@ -56,7 +56,7 @@ The capsule's height.
 - :ref:`float<class_float>` **radius**
 
 +-----------+-------------------+
-| *Default* | ``1.0``           |
+| *Default* | ``0.5``           |
 +-----------+-------------------+
 | *Setter*  | set_radius(value) |
 +-----------+-------------------+

+ 0 - 2
classes/class_characterbody2d.rst

@@ -551,8 +551,6 @@ Returns ``true`` if the body collided only with a wall on the last call of :ref:
 
 Moves the body based on :ref:`motion_velocity<class_CharacterBody2D_property_motion_velocity>`. If the body collides with another, it will slide along the other body (by default only on floor) rather than stop immediately. If the other body is a ``CharacterBody2D`` or :ref:`RigidDynamicBody2D<class_RigidDynamicBody2D>`, it will also be affected by the motion of the other body. You can use this to make moving and rotating platforms, or to make nodes push other nodes.
 
-This method should be used in :ref:`Node._physics_process<class_Node_method__physics_process>` (or in a method called by :ref:`Node._physics_process<class_Node_method__physics_process>`), as it uses the physics step's ``delta`` value automatically in calculations. Otherwise, the simulation will run at an incorrect speed.
-
 Modifies :ref:`motion_velocity<class_CharacterBody2D_property_motion_velocity>` if a slide collision occurred. To get the latest collision call :ref:`get_last_slide_collision<class_CharacterBody2D_method_get_last_slide_collision>`, for detailed information about collisions that occurred, use :ref:`get_slide_collision<class_CharacterBody2D_method_get_slide_collision>`.
 
 When the body touches a moving platform, the platform's velocity is automatically added to the body motion. If a collision occurs due to the platform's motion, it will always be first in the slide collisions.

+ 0 - 2
classes/class_characterbody3d.rst

@@ -532,8 +532,6 @@ Returns ``true`` if the body collided only with a wall on the last call of :ref:
 
 Moves the body based on :ref:`motion_velocity<class_CharacterBody3D_property_motion_velocity>`. If the body collides with another, it will slide along the other body rather than stop immediately. If the other body is a ``CharacterBody3D`` or :ref:`RigidDynamicBody3D<class_RigidDynamicBody3D>`, it will also be affected by the motion of the other body. You can use this to make moving and rotating platforms, or to make nodes push other nodes.
 
-This method should be used in :ref:`Node._physics_process<class_Node_method__physics_process>` (or in a method called by :ref:`Node._physics_process<class_Node_method__physics_process>`), as it uses the physics step's ``delta`` value automatically in calculations. Otherwise, the simulation will run at an incorrect speed.
-
 Modifies :ref:`motion_velocity<class_CharacterBody3D_property_motion_velocity>` if a slide collision occurred. To get the latest collision call :ref:`get_last_slide_collision<class_CharacterBody3D_method_get_last_slide_collision>`, for more detailed information about collisions that occurred, use :ref:`get_slide_collision<class_CharacterBody3D_method_get_slide_collision>`.
 
 When the body touches a moving platform, the platform's velocity is automatically added to the body motion. If a collision occurs due to the platform's motion, it will always be first in the slide collisions.

+ 6 - 6
classes/class_codeedit.rst

@@ -216,7 +216,7 @@ Theme Properties
 +-----------------------------------+--------------------------------------------------------------------------------------------+-------------------------------------+
 | :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, 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)``      |
 +-----------------------------------+--------------------------------------------------------------------------------------------+-------------------------------------+
@@ -250,7 +250,7 @@ Theme Properties
 +-----------------------------------+--------------------------------------------------------------------------------------------+-------------------------------------+
 | :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>`      | ``3``                               |
+| :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``                               |
 +-----------------------------------+--------------------------------------------------------------------------------------------+-------------------------------------+
@@ -1314,9 +1314,9 @@ Font :ref:`Color<class_Color>` for the code completion popup.
 
 - :ref:`Color<class_Color>` **completion_scroll_color**
 
-+-----------+-----------------------+
-| *Default* | ``Color(1, 1, 1, 1)`` |
-+-----------+-----------------------+
++-----------+--------------------------+
+| *Default* | ``Color(1, 1, 1, 0.29)`` |
++-----------+--------------------------+
 
 :ref:`Color<class_Color>` of the scrollbar in the code completion popup.
 
@@ -1519,7 +1519,7 @@ Max width of options in the code completion popup. Options longer then this will
 - :ref:`int<class_int>` **completion_scroll_width**
 
 +-----------+-------+
-| *Default* | ``3`` |
+| *Default* | ``6`` |
 +-----------+-------+
 
 Width of the scrollbar in the code completion popup.

+ 50 - 0
classes/class_color.rst

@@ -1117,12 +1117,62 @@ This is useful when determining light or dark color. Colors with a luminance sma
 
 - :ref:`Color<class_Color>` **html** **(** :ref:`String<class_String>` rgba **)** |static|
 
+Returns a new color from ``rgba``, an HTML hexadecimal color string. ``rgba`` is not case sensitive, and may be prefixed with a '#' character.
+
+\ ``rgba`` must be a valid three-digit or six-digit hexadecimal color string, and may contain an alpha channel value. If ``rgba`` does not contain an alpha channel value, an alpha channel value of 1.0 is applied.
+
+If ``rgba`` is invalid a Color(0.0, 0.0, 0.0, 1.0) is returned.
+
+\ **Note:** This method is not implemented in C#, but the same functionality is provided in the class constructor.
+
+
+.. tabs::
+
+ .. code-tab:: gdscript
+
+    var green = Color.html("#00FF00FF") # set green to Color(0.0, 1.0, 0.0, 1.0)
+    var blue = Color.html("#0000FF") # set blue to Color(0.0, 0.0, 1.0, 1.0)
+
+ .. code-tab:: csharp
+
+    var green = new Color("#00FF00FF"); // set green to Color(0.0, 1.0, 0.0, 1.0)
+    var blue = new Color("#0000FF"); // set blue to Color(0.0, 0.0, 1.0, 1.0)
+
+
+
 ----
 
 .. _class_Color_method_html_is_valid:
 
 - :ref:`bool<class_bool>` **html_is_valid** **(** :ref:`String<class_String>` color **)** |static|
 
+Returns ``true`` if ``color`` is a valid HTML hexadecimal color string. ``color`` is not case sensitive, and may be prefixed with a '#' character.
+
+For a string to be valid it must be three-digit or six-digit hexadecimal, and may contain an alpha channel value.
+
+
+.. tabs::
+
+ .. code-tab:: gdscript
+
+    var result = Color.html_is_valid("#55aaFF") # result is true
+    result = Color.html_is_valid("#55AAFF20") # result is true
+    result = Color.html_is_valid("55AAFF") # result is true
+    result = Color.html_is_valid("#F2C") # result is true
+    result = Color.html_is_valid("#AABBC) # result is false
+    result = Color.html_is_valid("#55aaFF5") # result is false
+
+ .. code-tab:: csharp
+
+    var result = Color.HtmlIsValid("#55AAFF"); // result is true
+    result = Color.HtmlIsValid("#55AAFF20"); // result is true
+    result = Color.HtmlIsValid("55AAFF); // result is true
+    result = Color.HtmlIsValid("#F2C"); // result is true
+    result = Color.HtmlIsValid("#AABBC"); // result is false
+    result = Color.HtmlIsValid("#55aaFF5"); // result is false
+
+
+
 ----
 
 .. _class_Color_method_inverted:

+ 0 - 8
classes/class_colorpicker.rst

@@ -77,8 +77,6 @@ Theme Properties
 +-----------------------------------+--------------------------------------------------------------------------------+---------+
 | :ref:`Texture2D<class_Texture2D>` | :ref:`color_hue<class_ColorPicker_theme_icon_color_hue>`                       |         |
 +-----------------------------------+--------------------------------------------------------------------------------+---------+
-| :ref:`Texture2D<class_Texture2D>` | :ref:`color_sample<class_ColorPicker_theme_icon_color_sample>`                 |         |
-+-----------------------------------+--------------------------------------------------------------------------------+---------+
 | :ref:`Texture2D<class_Texture2D>` | :ref:`overbright_indicator<class_ColorPicker_theme_icon_overbright_indicator>` |         |
 +-----------------------------------+--------------------------------------------------------------------------------+---------+
 | :ref:`Texture2D<class_Texture2D>` | :ref:`picker_cursor<class_ColorPicker_theme_icon_picker_cursor>`               |         |
@@ -377,12 +375,6 @@ Custom texture for the hue selection slider on the right.
 
 ----
 
-.. _class_ColorPicker_theme_icon_color_sample:
-
-- :ref:`Texture2D<class_Texture2D>` **color_sample**
-
-----
-
 .. _class_ColorPicker_theme_icon_overbright_indicator:
 
 - :ref:`Texture2D<class_Texture2D>` **overbright_indicator**

+ 29 - 5
classes/class_container.rst

@@ -32,11 +32,15 @@ Properties
 Methods
 -------
 
-+------+----------------------------------------------------------------------------------------------------------------------------------------------------+
-| void | :ref:`fit_child_in_rect<class_Container_method_fit_child_in_rect>` **(** :ref:`Control<class_Control>` child, :ref:`Rect2<class_Rect2>` rect **)** |
-+------+----------------------------------------------------------------------------------------------------------------------------------------------------+
-| void | :ref:`queue_sort<class_Container_method_queue_sort>` **(** **)**                                                                                   |
-+------+----------------------------------------------------------------------------------------------------------------------------------------------------+
++-------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`PackedInt32Array<class_PackedInt32Array>` | :ref:`_get_allowed_size_flags_horizontal<class_Container_method__get_allowed_size_flags_horizontal>` **(** **)** |virtual| |const|                 |
++-------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`PackedInt32Array<class_PackedInt32Array>` | :ref:`_get_allowed_size_flags_vertical<class_Container_method__get_allowed_size_flags_vertical>` **(** **)** |virtual| |const|                     |
++-------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                            | :ref:`fit_child_in_rect<class_Container_method_fit_child_in_rect>` **(** :ref:`Control<class_Control>` child, :ref:`Rect2<class_Rect2>` rect **)** |
++-------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                            | :ref:`queue_sort<class_Container_method_queue_sort>` **(** **)**                                                                                   |
++-------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------+
 
 Signals
 -------
@@ -69,6 +73,26 @@ Constants
 Method Descriptions
 -------------------
 
+.. _class_Container_method__get_allowed_size_flags_horizontal:
+
+- :ref:`PackedInt32Array<class_PackedInt32Array>` **_get_allowed_size_flags_horizontal** **(** **)** |virtual| |const|
+
+Implement to return a list of allowed horizontal :ref:`SizeFlags<enum_Control_SizeFlags>` for child nodes. This doesn't technically prevent the usages of any other size flags, if your implementation requires that. This only limits the options available to the user in the inspector dock.
+
+\ **Note:** Having no size flags is equal to having :ref:`Control.SIZE_SHRINK_BEGIN<class_Control_constant_SIZE_SHRINK_BEGIN>`. As such, this value is always implicitly allowed.
+
+----
+
+.. _class_Container_method__get_allowed_size_flags_vertical:
+
+- :ref:`PackedInt32Array<class_PackedInt32Array>` **_get_allowed_size_flags_vertical** **(** **)** |virtual| |const|
+
+Implement to return a list of allowed vertical :ref:`SizeFlags<enum_Control_SizeFlags>` for child nodes. This doesn't technically prevent the usages of any other size flags, if your implementation requires that. This only limits the options available to the user in the inspector dock.
+
+\ **Note:** Having no size flags is equal to having :ref:`Control.SIZE_SHRINK_BEGIN<class_Control_constant_SIZE_SHRINK_BEGIN>`. As such, this value is always implicitly allowed.
+
+----
+
 .. _class_Container_method_fit_child_in_rect:
 
 - void **fit_child_in_rect** **(** :ref:`Control<class_Control>` child, :ref:`Rect2<class_Rect2>` rect **)**

+ 10 - 14
classes/class_control.rst

@@ -180,8 +180,6 @@ Methods
 +----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`NodePath<class_NodePath>`              | :ref:`get_focus_neighbor<class_Control_method_get_focus_neighbor>` **(** :ref:`Side<enum_@GlobalScope_Side>` side **)** |const|                                                                                                                                    |
 +----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Control<class_Control>`                | :ref:`get_focus_owner<class_Control_method_get_focus_owner>` **(** **)** |const|                                                                                                                                                                                   |
-+----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`Rect2<class_Rect2>`                    | :ref:`get_global_rect<class_Control_method_get_global_rect>` **(** **)** |const|                                                                                                                                                                                   |
 +----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`Vector2<class_Vector2>`                | :ref:`get_minimum_size<class_Control_method_get_minimum_size>` **(** **)** |const|                                                                                                                                                                                 |
@@ -569,6 +567,8 @@ enum **LayoutPresetMode**:
 
 .. _enum_Control_SizeFlags:
 
+.. _class_Control_constant_SIZE_SHRINK_BEGIN:
+
 .. _class_Control_constant_SIZE_FILL:
 
 .. _class_Control_constant_SIZE_EXPAND:
@@ -581,15 +581,19 @@ enum **LayoutPresetMode**:
 
 enum **SizeFlags**:
 
-- **SIZE_FILL** = **1** --- Tells the parent :ref:`Container<class_Container>` to expand the bounds of this node to fill all the available space without pushing any other node. Use with :ref:`size_flags_horizontal<class_Control_property_size_flags_horizontal>` and :ref:`size_flags_vertical<class_Control_property_size_flags_vertical>`.
+- **SIZE_SHRINK_BEGIN** = **0** --- Tells the parent :ref:`Container<class_Container>` to align the node with its start, either the top or the left edge. It is mutually exclusive with :ref:`SIZE_FILL<class_Control_constant_SIZE_FILL>` and other shrink size flags, but can be used with :ref:`SIZE_EXPAND<class_Control_constant_SIZE_EXPAND>` in some containers. Use with :ref:`size_flags_horizontal<class_Control_property_size_flags_horizontal>` and :ref:`size_flags_vertical<class_Control_property_size_flags_vertical>`.
+
+\ **Note:** Setting this flag is equal to not having any size flags.
+
+- **SIZE_FILL** = **1** --- Tells the parent :ref:`Container<class_Container>` to expand the bounds of this node to fill all the available space without pushing any other node. It is mutually exclusive with shrink size flags. Use with :ref:`size_flags_horizontal<class_Control_property_size_flags_horizontal>` and :ref:`size_flags_vertical<class_Control_property_size_flags_vertical>`.
 
 - **SIZE_EXPAND** = **2** --- Tells the parent :ref:`Container<class_Container>` to let this node take all the available space on the axis you flag. If multiple neighboring nodes are set to expand, they'll share the space based on their stretch ratio. See :ref:`size_flags_stretch_ratio<class_Control_property_size_flags_stretch_ratio>`. Use with :ref:`size_flags_horizontal<class_Control_property_size_flags_horizontal>` and :ref:`size_flags_vertical<class_Control_property_size_flags_vertical>`.
 
-- **SIZE_EXPAND_FILL** = **3** --- Sets the node's size flags to both fill and expand. See the 2 constants above for more information.
+- **SIZE_EXPAND_FILL** = **3** --- Sets the node's size flags to both fill and expand. See :ref:`SIZE_FILL<class_Control_constant_SIZE_FILL>` and :ref:`SIZE_EXPAND<class_Control_constant_SIZE_EXPAND>` for more information.
 
-- **SIZE_SHRINK_CENTER** = **4** --- Tells the parent :ref:`Container<class_Container>` to center the node in itself. It centers the control based on its bounding box, so it doesn't work with the fill or expand size flags. Use with :ref:`size_flags_horizontal<class_Control_property_size_flags_horizontal>` and :ref:`size_flags_vertical<class_Control_property_size_flags_vertical>`.
+- **SIZE_SHRINK_CENTER** = **4** --- Tells the parent :ref:`Container<class_Container>` to center the node in the available space. It is mutually exclusive with :ref:`SIZE_FILL<class_Control_constant_SIZE_FILL>` and other shrink size flags, but can be used with :ref:`SIZE_EXPAND<class_Control_constant_SIZE_EXPAND>` in some containers. Use with :ref:`size_flags_horizontal<class_Control_property_size_flags_horizontal>` and :ref:`size_flags_vertical<class_Control_property_size_flags_vertical>`.
 
-- **SIZE_SHRINK_END** = **8** --- Tells the parent :ref:`Container<class_Container>` to align the node with its end, either the bottom or the right edge. It doesn't work with the fill or expand size flags. Use with :ref:`size_flags_horizontal<class_Control_property_size_flags_horizontal>` and :ref:`size_flags_vertical<class_Control_property_size_flags_vertical>`.
+- **SIZE_SHRINK_END** = **8** --- Tells the parent :ref:`Container<class_Container>` to align the node with its end, either the bottom or the right edge. It is mutually exclusive with :ref:`SIZE_FILL<class_Control_constant_SIZE_FILL>` and other shrink size flags, but can be used with :ref:`SIZE_EXPAND<class_Control_constant_SIZE_EXPAND>` in some containers. Use with :ref:`size_flags_horizontal<class_Control_property_size_flags_horizontal>` and :ref:`size_flags_vertical<class_Control_property_size_flags_vertical>`.
 
 ----
 
@@ -1808,14 +1812,6 @@ Returns the focus neighbor for the specified :ref:`Side<enum_@GlobalScope_Side>`
 
 ----
 
-.. _class_Control_method_get_focus_owner:
-
-- :ref:`Control<class_Control>` **get_focus_owner** **(** **)** |const|
-
-Returns the control that has the keyboard focus or ``null`` if none.
-
-----
-
 .. _class_Control_method_get_global_rect:
 
 - :ref:`Rect2<class_Rect2>` **get_global_rect** **(** **)** |const|

+ 9 - 2
classes/class_csgbox3d.rst

@@ -18,13 +18,20 @@ Description
 
 This node allows you to create a box for use with the CSG system.
 
+\ **Note:** CSG nodes are intended to be used for level prototyping. Creating CSG nodes has a significant CPU cost compared to creating a :ref:`MeshInstance3D<class_MeshInstance3D>` with a :ref:`PrimitiveMesh<class_PrimitiveMesh>`. Moving a CSG node within another CSG node also has a significant CPU cost, so it should be avoided during gameplay.
+
+Tutorials
+---------
+
+- :doc:`Prototyping levels with CSG <../tutorials/3d/csg_tools>`
+
 Properties
 ----------
 
 +---------------------------------+---------------------------------------------------+----------------------+
 | :ref:`Material<class_Material>` | :ref:`material<class_CSGBox3D_property_material>` |                      |
 +---------------------------------+---------------------------------------------------+----------------------+
-| :ref:`Vector3<class_Vector3>`   | :ref:`size<class_CSGBox3D_property_size>`         | ``Vector3(2, 2, 2)`` |
+| :ref:`Vector3<class_Vector3>`   | :ref:`size<class_CSGBox3D_property_size>`         | ``Vector3(1, 1, 1)`` |
 +---------------------------------+---------------------------------------------------+----------------------+
 
 Property Descriptions
@@ -49,7 +56,7 @@ The material used to render the box.
 - :ref:`Vector3<class_Vector3>` **size**
 
 +-----------+----------------------+
-| *Default* | ``Vector3(2, 2, 2)`` |
+| *Default* | ``Vector3(1, 1, 1)`` |
 +-----------+----------------------+
 | *Setter*  | set_size(value)      |
 +-----------+----------------------+

+ 7 - 0
classes/class_csgcombiner3d.rst

@@ -18,6 +18,13 @@ Description
 
 For complex arrangements of shapes, it is sometimes needed to add structure to your CSG nodes. The CSGCombiner3D node allows you to create this structure. The node encapsulates the result of the CSG operations of its children. In this way, it is possible to do operations on one set of shapes that are children of one CSGCombiner3D node, and a set of separate operations on a second set of shapes that are children of a second CSGCombiner3D node, and then do an operation that takes the two end results as its input to create the final shape.
 
+\ **Note:** CSG nodes are intended to be used for level prototyping. Creating CSG nodes has a significant CPU cost compared to creating a :ref:`MeshInstance3D<class_MeshInstance3D>` with a :ref:`PrimitiveMesh<class_PrimitiveMesh>`. Moving a CSG node within another CSG node also has a significant CPU cost, so it should be avoided during gameplay.
+
+Tutorials
+---------
+
+- :doc:`Prototyping levels with CSG <../tutorials/3d/csg_tools>`
+
 .. |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.)`

+ 11 - 4
classes/class_csgcylinder3d.rst

@@ -18,17 +18,24 @@ Description
 
 This node allows you to create a cylinder (or cone) for use with the CSG system.
 
+\ **Note:** CSG nodes are intended to be used for level prototyping. Creating CSG nodes has a significant CPU cost compared to creating a :ref:`MeshInstance3D<class_MeshInstance3D>` with a :ref:`PrimitiveMesh<class_PrimitiveMesh>`. Moving a CSG node within another CSG node also has a significant CPU cost, so it should be avoided during gameplay.
+
+Tutorials
+---------
+
+- :doc:`Prototyping levels with CSG <../tutorials/3d/csg_tools>`
+
 Properties
 ----------
 
 +---------------------------------+----------------------------------------------------------------+-----------+
 | :ref:`bool<class_bool>`         | :ref:`cone<class_CSGCylinder3D_property_cone>`                 | ``false`` |
 +---------------------------------+----------------------------------------------------------------+-----------+
-| :ref:`float<class_float>`       | :ref:`height<class_CSGCylinder3D_property_height>`             | ``1.0``   |
+| :ref:`float<class_float>`       | :ref:`height<class_CSGCylinder3D_property_height>`             | ``2.0``   |
 +---------------------------------+----------------------------------------------------------------+-----------+
 | :ref:`Material<class_Material>` | :ref:`material<class_CSGCylinder3D_property_material>`         |           |
 +---------------------------------+----------------------------------------------------------------+-----------+
-| :ref:`float<class_float>`       | :ref:`radius<class_CSGCylinder3D_property_radius>`             | ``1.0``   |
+| :ref:`float<class_float>`       | :ref:`radius<class_CSGCylinder3D_property_radius>`             | ``0.5``   |
 +---------------------------------+----------------------------------------------------------------+-----------+
 | :ref:`int<class_int>`           | :ref:`sides<class_CSGCylinder3D_property_sides>`               | ``8``     |
 +---------------------------------+----------------------------------------------------------------+-----------+
@@ -59,7 +66,7 @@ If ``true`` a cone is created, the :ref:`radius<class_CSGCylinder3D_property_rad
 - :ref:`float<class_float>` **height**
 
 +-----------+-------------------+
-| *Default* | ``1.0``           |
+| *Default* | ``2.0``           |
 +-----------+-------------------+
 | *Setter*  | set_height(value) |
 +-----------+-------------------+
@@ -89,7 +96,7 @@ The material used to render the cylinder.
 - :ref:`float<class_float>` **radius**
 
 +-----------+-------------------+
-| *Default* | ``1.0``           |
+| *Default* | ``0.5``           |
 +-----------+-------------------+
 | *Setter*  | set_radius(value) |
 +-----------+-------------------+

+ 7 - 0
classes/class_csgmesh3d.rst

@@ -18,6 +18,13 @@ Description
 
 This CSG node allows you to use any mesh resource as a CSG shape, provided it is closed, does not self-intersect, does not contain internal faces and has no edges that connect to more than two faces. See also :ref:`CSGPolygon3D<class_CSGPolygon3D>` for drawing 2D extruded polygons to be used as CSG nodes.
 
+\ **Note:** CSG nodes are intended to be used for level prototyping. Creating CSG nodes has a significant CPU cost compared to creating a :ref:`MeshInstance3D<class_MeshInstance3D>` with a :ref:`PrimitiveMesh<class_PrimitiveMesh>`. Moving a CSG node within another CSG node also has a significant CPU cost, so it should be avoided during gameplay.
+
+Tutorials
+---------
+
+- :doc:`Prototyping levels with CSG <../tutorials/3d/csg_tools>`
+
 Properties
 ----------
 

+ 7 - 0
classes/class_csgpolygon3d.rst

@@ -18,6 +18,13 @@ Description
 
 An array of 2D points is extruded to quickly and easily create a variety of 3D meshes. See also :ref:`CSGMesh3D<class_CSGMesh3D>` for using 3D meshes as CSG nodes.
 
+\ **Note:** CSG nodes are intended to be used for level prototyping. Creating CSG nodes has a significant CPU cost compared to creating a :ref:`MeshInstance3D<class_MeshInstance3D>` with a :ref:`PrimitiveMesh<class_PrimitiveMesh>`. Moving a CSG node within another CSG node also has a significant CPU cost, so it should be avoided during gameplay.
+
+Tutorials
+---------
+
+- :doc:`Prototyping levels with CSG <../tutorials/3d/csg_tools>`
+
 Properties
 ----------
 

+ 7 - 0
classes/class_csgprimitive3d.rst

@@ -20,6 +20,13 @@ Description
 
 Parent class for various CSG primitives. It contains code and functionality that is common between them. It cannot be used directly. Instead use one of the various classes that inherit from it.
 
+\ **Note:** CSG nodes are intended to be used for level prototyping. Creating CSG nodes has a significant CPU cost compared to creating a :ref:`MeshInstance3D<class_MeshInstance3D>` with a :ref:`PrimitiveMesh<class_PrimitiveMesh>`. Moving a CSG node within another CSG node also has a significant CPU cost, so it should be avoided during gameplay.
+
+Tutorials
+---------
+
+- :doc:`Prototyping levels with CSG <../tutorials/3d/csg_tools>`
+
 Properties
 ----------
 

+ 7 - 0
classes/class_csgshape3d.rst

@@ -20,6 +20,13 @@ Description
 
 This is the CSG base class that provides CSG operation support to the various CSG nodes in Godot.
 
+\ **Note:** CSG nodes are intended to be used for level prototyping. Creating CSG nodes has a significant CPU cost compared to creating a :ref:`MeshInstance3D<class_MeshInstance3D>` with a :ref:`PrimitiveMesh<class_PrimitiveMesh>`. Moving a CSG node within another CSG node also has a significant CPU cost, so it should be avoided during gameplay.
+
+Tutorials
+---------
+
+- :doc:`Prototyping levels with CSG <../tutorials/3d/csg_tools>`
+
 Properties
 ----------
 

+ 7 - 0
classes/class_csgsphere3d.rst

@@ -18,6 +18,13 @@ Description
 
 This node allows you to create a sphere for use with the CSG system.
 
+\ **Note:** CSG nodes are intended to be used for level prototyping. Creating CSG nodes has a significant CPU cost compared to creating a :ref:`MeshInstance3D<class_MeshInstance3D>` with a :ref:`PrimitiveMesh<class_PrimitiveMesh>`. Moving a CSG node within another CSG node also has a significant CPU cost, so it should be avoided during gameplay.
+
+Tutorials
+---------
+
+- :doc:`Prototyping levels with CSG <../tutorials/3d/csg_tools>`
+
 Properties
 ----------
 

+ 11 - 4
classes/class_csgtorus3d.rst

@@ -18,15 +18,22 @@ Description
 
 This node allows you to create a torus for use with the CSG system.
 
+\ **Note:** CSG nodes are intended to be used for level prototyping. Creating CSG nodes has a significant CPU cost compared to creating a :ref:`MeshInstance3D<class_MeshInstance3D>` with a :ref:`PrimitiveMesh<class_PrimitiveMesh>`. Moving a CSG node within another CSG node also has a significant CPU cost, so it should be avoided during gameplay.
+
+Tutorials
+---------
+
+- :doc:`Prototyping levels with CSG <../tutorials/3d/csg_tools>`
+
 Properties
 ----------
 
 +---------------------------------+-------------------------------------------------------------+----------+
-| :ref:`float<class_float>`       | :ref:`inner_radius<class_CSGTorus3D_property_inner_radius>` | ``2.0``  |
+| :ref:`float<class_float>`       | :ref:`inner_radius<class_CSGTorus3D_property_inner_radius>` | ``0.5``  |
 +---------------------------------+-------------------------------------------------------------+----------+
 | :ref:`Material<class_Material>` | :ref:`material<class_CSGTorus3D_property_material>`         |          |
 +---------------------------------+-------------------------------------------------------------+----------+
-| :ref:`float<class_float>`       | :ref:`outer_radius<class_CSGTorus3D_property_outer_radius>` | ``3.0``  |
+| :ref:`float<class_float>`       | :ref:`outer_radius<class_CSGTorus3D_property_outer_radius>` | ``1.0``  |
 +---------------------------------+-------------------------------------------------------------+----------+
 | :ref:`int<class_int>`           | :ref:`ring_sides<class_CSGTorus3D_property_ring_sides>`     | ``6``    |
 +---------------------------------+-------------------------------------------------------------+----------+
@@ -43,7 +50,7 @@ Property Descriptions
 - :ref:`float<class_float>` **inner_radius**
 
 +-----------+-------------------------+
-| *Default* | ``2.0``                 |
+| *Default* | ``0.5``                 |
 +-----------+-------------------------+
 | *Setter*  | set_inner_radius(value) |
 +-----------+-------------------------+
@@ -73,7 +80,7 @@ The material used to render the torus.
 - :ref:`float<class_float>` **outer_radius**
 
 +-----------+-------------------------+
-| *Default* | ``3.0``                 |
+| *Default* | ``1.0``                 |
 +-----------+-------------------------+
 | *Setter*  | set_outer_radius(value) |
 +-----------+-------------------------+

+ 4 - 4
classes/class_cylindermesh.rst

@@ -22,7 +22,7 @@ Properties
 ----------
 
 +---------------------------+---------------------------------------------------------------------+---------+
-| :ref:`float<class_float>` | :ref:`bottom_radius<class_CylinderMesh_property_bottom_radius>`     | ``1.0`` |
+| :ref:`float<class_float>` | :ref:`bottom_radius<class_CylinderMesh_property_bottom_radius>`     | ``0.5`` |
 +---------------------------+---------------------------------------------------------------------+---------+
 | :ref:`float<class_float>` | :ref:`height<class_CylinderMesh_property_height>`                   | ``2.0`` |
 +---------------------------+---------------------------------------------------------------------+---------+
@@ -30,7 +30,7 @@ Properties
 +---------------------------+---------------------------------------------------------------------+---------+
 | :ref:`int<class_int>`     | :ref:`rings<class_CylinderMesh_property_rings>`                     | ``4``   |
 +---------------------------+---------------------------------------------------------------------+---------+
-| :ref:`float<class_float>` | :ref:`top_radius<class_CylinderMesh_property_top_radius>`           | ``1.0`` |
+| :ref:`float<class_float>` | :ref:`top_radius<class_CylinderMesh_property_top_radius>`           | ``0.5`` |
 +---------------------------+---------------------------------------------------------------------+---------+
 
 Property Descriptions
@@ -41,7 +41,7 @@ Property Descriptions
 - :ref:`float<class_float>` **bottom_radius**
 
 +-----------+--------------------------+
-| *Default* | ``1.0``                  |
+| *Default* | ``0.5``                  |
 +-----------+--------------------------+
 | *Setter*  | set_bottom_radius(value) |
 +-----------+--------------------------+
@@ -105,7 +105,7 @@ Number of edge rings along the height of the cylinder. Changing :ref:`rings<clas
 - :ref:`float<class_float>` **top_radius**
 
 +-----------+-----------------------+
-| *Default* | ``1.0``               |
+| *Default* | ``0.5``               |
 +-----------+-----------------------+
 | *Setter*  | set_top_radius(value) |
 +-----------+-----------------------+

+ 2 - 2
classes/class_cylindershape3d.rst

@@ -33,7 +33,7 @@ Properties
 +---------------------------+------------------------------------------------------+---------+
 | :ref:`float<class_float>` | :ref:`height<class_CylinderShape3D_property_height>` | ``2.0`` |
 +---------------------------+------------------------------------------------------+---------+
-| :ref:`float<class_float>` | :ref:`radius<class_CylinderShape3D_property_radius>` | ``1.0`` |
+| :ref:`float<class_float>` | :ref:`radius<class_CylinderShape3D_property_radius>` | ``0.5`` |
 +---------------------------+------------------------------------------------------+---------+
 
 Property Descriptions
@@ -60,7 +60,7 @@ The cylinder's height.
 - :ref:`float<class_float>` **radius**
 
 +-----------+-------------------+
-| *Default* | ``1.0``           |
+| *Default* | ``0.5``           |
 +-----------+-------------------+
 | *Setter*  | set_radius(value) |
 +-----------+-------------------+

+ 3 - 1
classes/class_dictionary.rst

@@ -388,7 +388,7 @@ Returns ``true`` if the dictionary has all the keys in the given array.
 
 - :ref:`int<class_int>` **hash** **(** **)** |const|
 
-Returns a hashed integer value representing the dictionary contents. This can be used to compare dictionaries by value:
+Returns a hashed 32-bit integer value representing the dictionary contents. This can be used to compare dictionaries by value:
 
 
 .. tabs::
@@ -412,6 +412,8 @@ Returns a hashed integer value representing the dictionary contents. This can be
 
 \ **Note:** Dictionaries with the same keys/values but in a different order will have a different hash.
 
+\ **Note:** Dictionaries with equal content will always produce identical hash values. However, the reverse is not true. Returning identical hash values does *not* imply the dictionaries are equal, because different dictionaries can have identical hash values due to hash collisions.
+
 ----
 
 .. _class_Dictionary_method_is_empty:

+ 254 - 212
classes/class_displayserver.rst

@@ -16,217 +16,221 @@ DisplayServer
 Methods
 -------
 
-+----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_String>`                                    | :ref:`clipboard_get<class_DisplayServer_method_clipboard_get>` **(** **)** |const|                                                                                                                                                                                                                                                                    |
-+----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_String>`                                    | :ref:`clipboard_get_primary<class_DisplayServer_method_clipboard_get_primary>` **(** **)** |const|                                                                                                                                                                                                                                                    |
-+----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                                        | :ref:`clipboard_has<class_DisplayServer_method_clipboard_has>` **(** **)** |const|                                                                                                                                                                                                                                                                    |
-+----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                           | :ref:`clipboard_set<class_DisplayServer_method_clipboard_set>` **(** :ref:`String<class_String>` clipboard **)**                                                                                                                                                                                                                                      |
-+----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                           | :ref:`clipboard_set_primary<class_DisplayServer_method_clipboard_set_primary>` **(** :ref:`String<class_String>` clipboard_primary **)**                                                                                                                                                                                                              |
-+----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                                          | :ref:`create_sub_window<class_DisplayServer_method_create_sub_window>` **(** :ref:`WindowMode<enum_DisplayServer_WindowMode>` mode, :ref:`VSyncMode<enum_DisplayServer_VSyncMode>` vsync_mode, :ref:`int<class_int>` flags, :ref:`Rect2i<class_Rect2i>` rect=Rect2i(0, 0, 0, 0) **)**                                                                 |
-+----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`CursorShape<enum_DisplayServer_CursorShape>`             | :ref:`cursor_get_shape<class_DisplayServer_method_cursor_get_shape>` **(** **)** |const|                                                                                                                                                                                                                                                              |
-+----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                           | :ref:`cursor_set_custom_image<class_DisplayServer_method_cursor_set_custom_image>` **(** :ref:`Resource<class_Resource>` cursor, :ref:`CursorShape<enum_DisplayServer_CursorShape>` shape=0, :ref:`Vector2<class_Vector2>` hotspot=Vector2(0, 0) **)**                                                                                                |
-+----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                           | :ref:`cursor_set_shape<class_DisplayServer_method_cursor_set_shape>` **(** :ref:`CursorShape<enum_DisplayServer_CursorShape>` shape **)**                                                                                                                                                                                                             |
-+----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                           | :ref:`delete_sub_window<class_DisplayServer_method_delete_sub_window>` **(** :ref:`int<class_int>` window_id **)**                                                                                                                                                                                                                                    |
-+----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Error<enum_@GlobalScope_Error>`                          | :ref:`dialog_input_text<class_DisplayServer_method_dialog_input_text>` **(** :ref:`String<class_String>` title, :ref:`String<class_String>` description, :ref:`String<class_String>` existing_text, :ref:`Callable<class_Callable>` callback **)**                                                                                                    |
-+----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Error<enum_@GlobalScope_Error>`                          | :ref:`dialog_show<class_DisplayServer_method_dialog_show>` **(** :ref:`String<class_String>` title, :ref:`String<class_String>` description, :ref:`PackedStringArray<class_PackedStringArray>` buttons, :ref:`Callable<class_Callable>` callback **)**                                                                                                |
-+----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                           | :ref:`enable_for_stealing_focus<class_DisplayServer_method_enable_for_stealing_focus>` **(** :ref:`int<class_int>` process_id **)**                                                                                                                                                                                                                   |
-+----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                           | :ref:`force_process_and_drop_events<class_DisplayServer_method_force_process_and_drop_events>` **(** **)**                                                                                                                                                                                                                                            |
-+----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_String>`                                    | :ref:`get_name<class_DisplayServer_method_get_name>` **(** **)** |const|                                                                                                                                                                                                                                                                              |
-+----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                                          | :ref:`get_screen_count<class_DisplayServer_method_get_screen_count>` **(** **)** |const|                                                                                                                                                                                                                                                              |
-+----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                                        | :ref:`get_swap_cancel_ok<class_DisplayServer_method_get_swap_cancel_ok>` **(** **)**                                                                                                                                                                                                                                                                  |
-+----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                                          | :ref:`get_window_at_screen_position<class_DisplayServer_method_get_window_at_screen_position>` **(** :ref:`Vector2i<class_Vector2i>` position **)** |const|                                                                                                                                                                                           |
-+----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`PackedInt32Array<class_PackedInt32Array>`                | :ref:`get_window_list<class_DisplayServer_method_get_window_list>` **(** **)** |const|                                                                                                                                                                                                                                                                |
-+----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                           | :ref:`global_menu_add_check_item<class_DisplayServer_method_global_menu_add_check_item>` **(** :ref:`String<class_String>` menu_root, :ref:`String<class_String>` label, :ref:`Callable<class_Callable>` callback, :ref:`Variant<class_Variant>` tag=null **)**                                                                                       |
-+----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                           | :ref:`global_menu_add_item<class_DisplayServer_method_global_menu_add_item>` **(** :ref:`String<class_String>` menu_root, :ref:`String<class_String>` label, :ref:`Callable<class_Callable>` callback, :ref:`Variant<class_Variant>` tag=null **)**                                                                                                   |
-+----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                           | :ref:`global_menu_add_separator<class_DisplayServer_method_global_menu_add_separator>` **(** :ref:`String<class_String>` menu_root **)**                                                                                                                                                                                                              |
-+----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                           | :ref:`global_menu_add_submenu_item<class_DisplayServer_method_global_menu_add_submenu_item>` **(** :ref:`String<class_String>` menu_root, :ref:`String<class_String>` label, :ref:`String<class_String>` submenu **)**                                                                                                                                |
-+----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                           | :ref:`global_menu_clear<class_DisplayServer_method_global_menu_clear>` **(** :ref:`String<class_String>` menu_root **)**                                                                                                                                                                                                                              |
-+----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Callable<class_Callable>`                                | :ref:`global_menu_get_item_callback<class_DisplayServer_method_global_menu_get_item_callback>` **(** :ref:`String<class_String>` menu_root, :ref:`int<class_int>` idx **)**                                                                                                                                                                           |
-+----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_String>`                                    | :ref:`global_menu_get_item_submenu<class_DisplayServer_method_global_menu_get_item_submenu>` **(** :ref:`String<class_String>` menu_root, :ref:`int<class_int>` idx **)**                                                                                                                                                                             |
-+----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Variant<class_Variant>`                                  | :ref:`global_menu_get_item_tag<class_DisplayServer_method_global_menu_get_item_tag>` **(** :ref:`String<class_String>` menu_root, :ref:`int<class_int>` idx **)**                                                                                                                                                                                     |
-+----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_String>`                                    | :ref:`global_menu_get_item_text<class_DisplayServer_method_global_menu_get_item_text>` **(** :ref:`String<class_String>` menu_root, :ref:`int<class_int>` idx **)**                                                                                                                                                                                   |
-+----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                                        | :ref:`global_menu_is_item_checkable<class_DisplayServer_method_global_menu_is_item_checkable>` **(** :ref:`String<class_String>` menu_root, :ref:`int<class_int>` idx **)** |const|                                                                                                                                                                   |
-+----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                                        | :ref:`global_menu_is_item_checked<class_DisplayServer_method_global_menu_is_item_checked>` **(** :ref:`String<class_String>` menu_root, :ref:`int<class_int>` idx **)** |const|                                                                                                                                                                       |
-+----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                           | :ref:`global_menu_remove_item<class_DisplayServer_method_global_menu_remove_item>` **(** :ref:`String<class_String>` menu_root, :ref:`int<class_int>` idx **)**                                                                                                                                                                                       |
-+----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                           | :ref:`global_menu_set_item_callback<class_DisplayServer_method_global_menu_set_item_callback>` **(** :ref:`String<class_String>` menu_root, :ref:`int<class_int>` idx, :ref:`Callable<class_Callable>` callback **)**                                                                                                                                 |
-+----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                           | :ref:`global_menu_set_item_checkable<class_DisplayServer_method_global_menu_set_item_checkable>` **(** :ref:`String<class_String>` menu_root, :ref:`int<class_int>` idx, :ref:`bool<class_bool>` checkable **)**                                                                                                                                      |
-+----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                           | :ref:`global_menu_set_item_checked<class_DisplayServer_method_global_menu_set_item_checked>` **(** :ref:`String<class_String>` menu_root, :ref:`int<class_int>` idx, :ref:`bool<class_bool>` checked **)**                                                                                                                                            |
-+----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                           | :ref:`global_menu_set_item_submenu<class_DisplayServer_method_global_menu_set_item_submenu>` **(** :ref:`String<class_String>` menu_root, :ref:`int<class_int>` idx, :ref:`String<class_String>` submenu **)**                                                                                                                                        |
-+----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                           | :ref:`global_menu_set_item_tag<class_DisplayServer_method_global_menu_set_item_tag>` **(** :ref:`String<class_String>` menu_root, :ref:`int<class_int>` idx, :ref:`Variant<class_Variant>` tag **)**                                                                                                                                                  |
-+----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                           | :ref:`global_menu_set_item_text<class_DisplayServer_method_global_menu_set_item_text>` **(** :ref:`String<class_String>` menu_root, :ref:`int<class_int>` idx, :ref:`String<class_String>` text **)**                                                                                                                                                 |
-+----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                                        | :ref:`has_feature<class_DisplayServer_method_has_feature>` **(** :ref:`Feature<enum_DisplayServer_Feature>` feature **)** |const|                                                                                                                                                                                                                     |
-+----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Vector2i<class_Vector2i>`                                | :ref:`ime_get_selection<class_DisplayServer_method_ime_get_selection>` **(** **)** |const|                                                                                                                                                                                                                                                            |
-+----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_String>`                                    | :ref:`ime_get_text<class_DisplayServer_method_ime_get_text>` **(** **)** |const|                                                                                                                                                                                                                                                                      |
-+----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                                          | :ref:`keyboard_get_current_layout<class_DisplayServer_method_keyboard_get_current_layout>` **(** **)** |const|                                                                                                                                                                                                                                        |
-+----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Key<enum_@GlobalScope_Key>`                              | :ref:`keyboard_get_keycode_from_physical<class_DisplayServer_method_keyboard_get_keycode_from_physical>` **(** :ref:`Key<enum_@GlobalScope_Key>` keycode **)** |const|                                                                                                                                                                                |
-+----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                                          | :ref:`keyboard_get_layout_count<class_DisplayServer_method_keyboard_get_layout_count>` **(** **)** |const|                                                                                                                                                                                                                                            |
-+----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_String>`                                    | :ref:`keyboard_get_layout_language<class_DisplayServer_method_keyboard_get_layout_language>` **(** :ref:`int<class_int>` index **)** |const|                                                                                                                                                                                                          |
-+----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_String>`                                    | :ref:`keyboard_get_layout_name<class_DisplayServer_method_keyboard_get_layout_name>` **(** :ref:`int<class_int>` index **)** |const|                                                                                                                                                                                                                  |
-+----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                           | :ref:`keyboard_set_current_layout<class_DisplayServer_method_keyboard_set_current_layout>` **(** :ref:`int<class_int>` index **)**                                                                                                                                                                                                                    |
-+----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`MouseButton<enum_@GlobalScope_MouseButton>`              | :ref:`mouse_get_button_state<class_DisplayServer_method_mouse_get_button_state>` **(** **)** |const|                                                                                                                                                                                                                                                  |
-+----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`MouseMode<enum_DisplayServer_MouseMode>`                 | :ref:`mouse_get_mode<class_DisplayServer_method_mouse_get_mode>` **(** **)** |const|                                                                                                                                                                                                                                                                  |
-+----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Vector2i<class_Vector2i>`                                | :ref:`mouse_get_position<class_DisplayServer_method_mouse_get_position>` **(** **)** |const|                                                                                                                                                                                                                                                          |
-+----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                           | :ref:`mouse_set_mode<class_DisplayServer_method_mouse_set_mode>` **(** :ref:`MouseMode<enum_DisplayServer_MouseMode>` mouse_mode **)**                                                                                                                                                                                                                |
-+----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                           | :ref:`mouse_warp_to_position<class_DisplayServer_method_mouse_warp_to_position>` **(** :ref:`Vector2i<class_Vector2i>` position **)**                                                                                                                                                                                                                 |
-+----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                           | :ref:`process_events<class_DisplayServer_method_process_events>` **(** **)**                                                                                                                                                                                                                                                                          |
-+----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                                          | :ref:`screen_get_dpi<class_DisplayServer_method_screen_get_dpi>` **(** :ref:`int<class_int>` screen=-1 **)** |const|                                                                                                                                                                                                                                  |
-+----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                                      | :ref:`screen_get_max_scale<class_DisplayServer_method_screen_get_max_scale>` **(** **)** |const|                                                                                                                                                                                                                                                      |
-+----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`ScreenOrientation<enum_DisplayServer_ScreenOrientation>` | :ref:`screen_get_orientation<class_DisplayServer_method_screen_get_orientation>` **(** :ref:`int<class_int>` screen=-1 **)** |const|                                                                                                                                                                                                                  |
-+----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Vector2i<class_Vector2i>`                                | :ref:`screen_get_position<class_DisplayServer_method_screen_get_position>` **(** :ref:`int<class_int>` screen=-1 **)** |const|                                                                                                                                                                                                                        |
-+----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                                      | :ref:`screen_get_scale<class_DisplayServer_method_screen_get_scale>` **(** :ref:`int<class_int>` screen=-1 **)** |const|                                                                                                                                                                                                                              |
-+----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Vector2i<class_Vector2i>`                                | :ref:`screen_get_size<class_DisplayServer_method_screen_get_size>` **(** :ref:`int<class_int>` screen=-1 **)** |const|                                                                                                                                                                                                                                |
-+----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Rect2i<class_Rect2i>`                                    | :ref:`screen_get_usable_rect<class_DisplayServer_method_screen_get_usable_rect>` **(** :ref:`int<class_int>` screen=-1 **)** |const|                                                                                                                                                                                                                  |
-+----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                                        | :ref:`screen_is_kept_on<class_DisplayServer_method_screen_is_kept_on>` **(** **)** |const|                                                                                                                                                                                                                                                            |
-+----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                                        | :ref:`screen_is_touchscreen<class_DisplayServer_method_screen_is_touchscreen>` **(** :ref:`int<class_int>` screen=-1 **)** |const|                                                                                                                                                                                                                    |
-+----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                           | :ref:`screen_set_keep_on<class_DisplayServer_method_screen_set_keep_on>` **(** :ref:`bool<class_bool>` enable **)**                                                                                                                                                                                                                                   |
-+----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                           | :ref:`screen_set_orientation<class_DisplayServer_method_screen_set_orientation>` **(** :ref:`ScreenOrientation<enum_DisplayServer_ScreenOrientation>` orientation, :ref:`int<class_int>` screen=-1 **)**                                                                                                                                              |
-+----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                           | :ref:`set_icon<class_DisplayServer_method_set_icon>` **(** :ref:`Image<class_Image>` image **)**                                                                                                                                                                                                                                                      |
-+----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                           | :ref:`set_native_icon<class_DisplayServer_method_set_native_icon>` **(** :ref:`String<class_String>` filename **)**                                                                                                                                                                                                                                   |
-+----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_String>`                                    | :ref:`tablet_get_current_driver<class_DisplayServer_method_tablet_get_current_driver>` **(** **)** |const|                                                                                                                                                                                                                                            |
-+----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                                          | :ref:`tablet_get_driver_count<class_DisplayServer_method_tablet_get_driver_count>` **(** **)** |const|                                                                                                                                                                                                                                                |
-+----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_String>`                                    | :ref:`tablet_get_driver_name<class_DisplayServer_method_tablet_get_driver_name>` **(** :ref:`int<class_int>` idx **)** |const|                                                                                                                                                                                                                        |
-+----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                           | :ref:`tablet_set_current_driver<class_DisplayServer_method_tablet_set_current_driver>` **(** :ref:`String<class_String>` name **)**                                                                                                                                                                                                                   |
-+----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                                          | :ref:`virtual_keyboard_get_height<class_DisplayServer_method_virtual_keyboard_get_height>` **(** **)** |const|                                                                                                                                                                                                                                        |
-+----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                           | :ref:`virtual_keyboard_hide<class_DisplayServer_method_virtual_keyboard_hide>` **(** **)**                                                                                                                                                                                                                                                            |
-+----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                           | :ref:`virtual_keyboard_show<class_DisplayServer_method_virtual_keyboard_show>` **(** :ref:`String<class_String>` existing_text, :ref:`Rect2<class_Rect2>` position=Rect2i(0, 0, 0, 0), :ref:`bool<class_bool>` multiline=false, :ref:`int<class_int>` max_length=-1, :ref:`int<class_int>` cursor_start=-1, :ref:`int<class_int>` cursor_end=-1 **)** |
-+----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                           | :ref:`window_attach_instance_id<class_DisplayServer_method_window_attach_instance_id>` **(** :ref:`int<class_int>` instance_id, :ref:`int<class_int>` window_id=0 **)**                                                                                                                                                                               |
-+----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                                        | :ref:`window_can_draw<class_DisplayServer_method_window_can_draw>` **(** :ref:`int<class_int>` window_id=0 **)** |const|                                                                                                                                                                                                                              |
-+----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                                          | :ref:`window_get_attached_instance_id<class_DisplayServer_method_window_get_attached_instance_id>` **(** :ref:`int<class_int>` window_id=0 **)** |const|                                                                                                                                                                                              |
-+----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                                          | :ref:`window_get_current_screen<class_DisplayServer_method_window_get_current_screen>` **(** :ref:`int<class_int>` window_id=0 **)** |const|                                                                                                                                                                                                          |
-+----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                                        | :ref:`window_get_flag<class_DisplayServer_method_window_get_flag>` **(** :ref:`WindowFlags<enum_DisplayServer_WindowFlags>` flag, :ref:`int<class_int>` window_id=0 **)** |const|                                                                                                                                                                     |
-+----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Vector2i<class_Vector2i>`                                | :ref:`window_get_max_size<class_DisplayServer_method_window_get_max_size>` **(** :ref:`int<class_int>` window_id=0 **)** |const|                                                                                                                                                                                                                      |
-+----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Vector2i<class_Vector2i>`                                | :ref:`window_get_min_size<class_DisplayServer_method_window_get_min_size>` **(** :ref:`int<class_int>` window_id=0 **)** |const|                                                                                                                                                                                                                      |
-+----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`WindowMode<enum_DisplayServer_WindowMode>`               | :ref:`window_get_mode<class_DisplayServer_method_window_get_mode>` **(** :ref:`int<class_int>` window_id=0 **)** |const|                                                                                                                                                                                                                              |
-+----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                                          | :ref:`window_get_native_handle<class_DisplayServer_method_window_get_native_handle>` **(** :ref:`HandleType<enum_DisplayServer_HandleType>` handle_type, :ref:`int<class_int>` window_id=0 **)** |const|                                                                                                                                              |
-+----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Vector2i<class_Vector2i>`                                | :ref:`window_get_position<class_DisplayServer_method_window_get_position>` **(** :ref:`int<class_int>` window_id=0 **)** |const|                                                                                                                                                                                                                      |
-+----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Vector2i<class_Vector2i>`                                | :ref:`window_get_real_size<class_DisplayServer_method_window_get_real_size>` **(** :ref:`int<class_int>` window_id=0 **)** |const|                                                                                                                                                                                                                    |
-+----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Vector2i<class_Vector2i>`                                | :ref:`window_get_size<class_DisplayServer_method_window_get_size>` **(** :ref:`int<class_int>` window_id=0 **)** |const|                                                                                                                                                                                                                              |
-+----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`VSyncMode<enum_DisplayServer_VSyncMode>`                 | :ref:`window_get_vsync_mode<class_DisplayServer_method_window_get_vsync_mode>` **(** :ref:`int<class_int>` window_id=0 **)** |const|                                                                                                                                                                                                                  |
-+----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                           | :ref:`window_move_to_foreground<class_DisplayServer_method_window_move_to_foreground>` **(** :ref:`int<class_int>` window_id=0 **)**                                                                                                                                                                                                                  |
-+----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                           | :ref:`window_request_attention<class_DisplayServer_method_window_request_attention>` **(** :ref:`int<class_int>` window_id=0 **)**                                                                                                                                                                                                                    |
-+----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                           | :ref:`window_set_current_screen<class_DisplayServer_method_window_set_current_screen>` **(** :ref:`int<class_int>` screen, :ref:`int<class_int>` window_id=0 **)**                                                                                                                                                                                    |
-+----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                           | :ref:`window_set_drop_files_callback<class_DisplayServer_method_window_set_drop_files_callback>` **(** :ref:`Callable<class_Callable>` callback, :ref:`int<class_int>` window_id=0 **)**                                                                                                                                                              |
-+----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                           | :ref:`window_set_flag<class_DisplayServer_method_window_set_flag>` **(** :ref:`WindowFlags<enum_DisplayServer_WindowFlags>` flag, :ref:`bool<class_bool>` enabled, :ref:`int<class_int>` window_id=0 **)**                                                                                                                                            |
-+----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                           | :ref:`window_set_ime_active<class_DisplayServer_method_window_set_ime_active>` **(** :ref:`bool<class_bool>` active, :ref:`int<class_int>` window_id=0 **)**                                                                                                                                                                                          |
-+----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                           | :ref:`window_set_ime_position<class_DisplayServer_method_window_set_ime_position>` **(** :ref:`Vector2i<class_Vector2i>` position, :ref:`int<class_int>` window_id=0 **)**                                                                                                                                                                            |
-+----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                           | :ref:`window_set_input_event_callback<class_DisplayServer_method_window_set_input_event_callback>` **(** :ref:`Callable<class_Callable>` callback, :ref:`int<class_int>` window_id=0 **)**                                                                                                                                                            |
-+----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                           | :ref:`window_set_input_text_callback<class_DisplayServer_method_window_set_input_text_callback>` **(** :ref:`Callable<class_Callable>` callback, :ref:`int<class_int>` window_id=0 **)**                                                                                                                                                              |
-+----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                           | :ref:`window_set_max_size<class_DisplayServer_method_window_set_max_size>` **(** :ref:`Vector2i<class_Vector2i>` max_size, :ref:`int<class_int>` window_id=0 **)**                                                                                                                                                                                    |
-+----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                           | :ref:`window_set_min_size<class_DisplayServer_method_window_set_min_size>` **(** :ref:`Vector2i<class_Vector2i>` min_size, :ref:`int<class_int>` window_id=0 **)**                                                                                                                                                                                    |
-+----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                           | :ref:`window_set_mode<class_DisplayServer_method_window_set_mode>` **(** :ref:`WindowMode<enum_DisplayServer_WindowMode>` mode, :ref:`int<class_int>` window_id=0 **)**                                                                                                                                                                               |
-+----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                           | :ref:`window_set_mouse_passthrough<class_DisplayServer_method_window_set_mouse_passthrough>` **(** :ref:`PackedVector2Array<class_PackedVector2Array>` region, :ref:`int<class_int>` window_id=0 **)**                                                                                                                                                |
-+----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                           | :ref:`window_set_position<class_DisplayServer_method_window_set_position>` **(** :ref:`Vector2i<class_Vector2i>` position, :ref:`int<class_int>` window_id=0 **)**                                                                                                                                                                                    |
-+----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                           | :ref:`window_set_rect_changed_callback<class_DisplayServer_method_window_set_rect_changed_callback>` **(** :ref:`Callable<class_Callable>` callback, :ref:`int<class_int>` window_id=0 **)**                                                                                                                                                          |
-+----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                           | :ref:`window_set_size<class_DisplayServer_method_window_set_size>` **(** :ref:`Vector2i<class_Vector2i>` size, :ref:`int<class_int>` window_id=0 **)**                                                                                                                                                                                                |
-+----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                           | :ref:`window_set_title<class_DisplayServer_method_window_set_title>` **(** :ref:`String<class_String>` title, :ref:`int<class_int>` window_id=0 **)**                                                                                                                                                                                                 |
-+----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                           | :ref:`window_set_transient<class_DisplayServer_method_window_set_transient>` **(** :ref:`int<class_int>` window_id, :ref:`int<class_int>` parent_window_id **)**                                                                                                                                                                                      |
-+----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                           | :ref:`window_set_vsync_mode<class_DisplayServer_method_window_set_vsync_mode>` **(** :ref:`VSyncMode<enum_DisplayServer_VSyncMode>` vsync_mode, :ref:`int<class_int>` window_id=0 **)**                                                                                                                                                               |
-+----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                           | :ref:`window_set_window_event_callback<class_DisplayServer_method_window_set_window_event_callback>` **(** :ref:`Callable<class_Callable>` callback, :ref:`int<class_int>` window_id=0 **)**                                                                                                                                                          |
-+----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
++----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`                                    | :ref:`clipboard_get<class_DisplayServer_method_clipboard_get>` **(** **)** |const|                                                                                                                                                                                                                                                                   |
++----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`                                    | :ref:`clipboard_get_primary<class_DisplayServer_method_clipboard_get_primary>` **(** **)** |const|                                                                                                                                                                                                                                                   |
++----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                                        | :ref:`clipboard_has<class_DisplayServer_method_clipboard_has>` **(** **)** |const|                                                                                                                                                                                                                                                                   |
++----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                           | :ref:`clipboard_set<class_DisplayServer_method_clipboard_set>` **(** :ref:`String<class_String>` clipboard **)**                                                                                                                                                                                                                                     |
++----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                           | :ref:`clipboard_set_primary<class_DisplayServer_method_clipboard_set_primary>` **(** :ref:`String<class_String>` clipboard_primary **)**                                                                                                                                                                                                             |
++----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                                          | :ref:`create_sub_window<class_DisplayServer_method_create_sub_window>` **(** :ref:`WindowMode<enum_DisplayServer_WindowMode>` mode, :ref:`VSyncMode<enum_DisplayServer_VSyncMode>` vsync_mode, :ref:`int<class_int>` flags, :ref:`Rect2i<class_Rect2i>` rect=Rect2i(0, 0, 0, 0) **)**                                                                |
++----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`CursorShape<enum_DisplayServer_CursorShape>`             | :ref:`cursor_get_shape<class_DisplayServer_method_cursor_get_shape>` **(** **)** |const|                                                                                                                                                                                                                                                             |
++----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                           | :ref:`cursor_set_custom_image<class_DisplayServer_method_cursor_set_custom_image>` **(** :ref:`Resource<class_Resource>` cursor, :ref:`CursorShape<enum_DisplayServer_CursorShape>` shape=0, :ref:`Vector2<class_Vector2>` hotspot=Vector2(0, 0) **)**                                                                                               |
++----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                           | :ref:`cursor_set_shape<class_DisplayServer_method_cursor_set_shape>` **(** :ref:`CursorShape<enum_DisplayServer_CursorShape>` shape **)**                                                                                                                                                                                                            |
++----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                           | :ref:`delete_sub_window<class_DisplayServer_method_delete_sub_window>` **(** :ref:`int<class_int>` window_id **)**                                                                                                                                                                                                                                   |
++----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Error<enum_@GlobalScope_Error>`                          | :ref:`dialog_input_text<class_DisplayServer_method_dialog_input_text>` **(** :ref:`String<class_String>` title, :ref:`String<class_String>` description, :ref:`String<class_String>` existing_text, :ref:`Callable<class_Callable>` callback **)**                                                                                                   |
++----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Error<enum_@GlobalScope_Error>`                          | :ref:`dialog_show<class_DisplayServer_method_dialog_show>` **(** :ref:`String<class_String>` title, :ref:`String<class_String>` description, :ref:`PackedStringArray<class_PackedStringArray>` buttons, :ref:`Callable<class_Callable>` callback **)**                                                                                               |
++----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                           | :ref:`enable_for_stealing_focus<class_DisplayServer_method_enable_for_stealing_focus>` **(** :ref:`int<class_int>` process_id **)**                                                                                                                                                                                                                  |
++----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                           | :ref:`force_process_and_drop_events<class_DisplayServer_method_force_process_and_drop_events>` **(** **)**                                                                                                                                                                                                                                           |
++----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`                                    | :ref:`get_name<class_DisplayServer_method_get_name>` **(** **)** |const|                                                                                                                                                                                                                                                                             |
++----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                                          | :ref:`get_screen_count<class_DisplayServer_method_get_screen_count>` **(** **)** |const|                                                                                                                                                                                                                                                             |
++----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                                        | :ref:`get_swap_cancel_ok<class_DisplayServer_method_get_swap_cancel_ok>` **(** **)**                                                                                                                                                                                                                                                                 |
++----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                                          | :ref:`get_window_at_screen_position<class_DisplayServer_method_get_window_at_screen_position>` **(** :ref:`Vector2i<class_Vector2i>` position **)** |const|                                                                                                                                                                                          |
++----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`PackedInt32Array<class_PackedInt32Array>`                | :ref:`get_window_list<class_DisplayServer_method_get_window_list>` **(** **)** |const|                                                                                                                                                                                                                                                               |
++----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                           | :ref:`global_menu_add_check_item<class_DisplayServer_method_global_menu_add_check_item>` **(** :ref:`String<class_String>` menu_root, :ref:`String<class_String>` label, :ref:`Callable<class_Callable>` callback, :ref:`Variant<class_Variant>` tag=null **)**                                                                                      |
++----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                           | :ref:`global_menu_add_item<class_DisplayServer_method_global_menu_add_item>` **(** :ref:`String<class_String>` menu_root, :ref:`String<class_String>` label, :ref:`Callable<class_Callable>` callback, :ref:`Variant<class_Variant>` tag=null **)**                                                                                                  |
++----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                           | :ref:`global_menu_add_separator<class_DisplayServer_method_global_menu_add_separator>` **(** :ref:`String<class_String>` menu_root **)**                                                                                                                                                                                                             |
++----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                           | :ref:`global_menu_add_submenu_item<class_DisplayServer_method_global_menu_add_submenu_item>` **(** :ref:`String<class_String>` menu_root, :ref:`String<class_String>` label, :ref:`String<class_String>` submenu **)**                                                                                                                               |
++----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                           | :ref:`global_menu_clear<class_DisplayServer_method_global_menu_clear>` **(** :ref:`String<class_String>` menu_root **)**                                                                                                                                                                                                                             |
++----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Callable<class_Callable>`                                | :ref:`global_menu_get_item_callback<class_DisplayServer_method_global_menu_get_item_callback>` **(** :ref:`String<class_String>` menu_root, :ref:`int<class_int>` idx **)**                                                                                                                                                                          |
++----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`                                    | :ref:`global_menu_get_item_submenu<class_DisplayServer_method_global_menu_get_item_submenu>` **(** :ref:`String<class_String>` menu_root, :ref:`int<class_int>` idx **)**                                                                                                                                                                            |
++----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Variant<class_Variant>`                                  | :ref:`global_menu_get_item_tag<class_DisplayServer_method_global_menu_get_item_tag>` **(** :ref:`String<class_String>` menu_root, :ref:`int<class_int>` idx **)**                                                                                                                                                                                    |
++----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`                                    | :ref:`global_menu_get_item_text<class_DisplayServer_method_global_menu_get_item_text>` **(** :ref:`String<class_String>` menu_root, :ref:`int<class_int>` idx **)**                                                                                                                                                                                  |
++----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                                        | :ref:`global_menu_is_item_checkable<class_DisplayServer_method_global_menu_is_item_checkable>` **(** :ref:`String<class_String>` menu_root, :ref:`int<class_int>` idx **)** |const|                                                                                                                                                                  |
++----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                                        | :ref:`global_menu_is_item_checked<class_DisplayServer_method_global_menu_is_item_checked>` **(** :ref:`String<class_String>` menu_root, :ref:`int<class_int>` idx **)** |const|                                                                                                                                                                      |
++----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                           | :ref:`global_menu_remove_item<class_DisplayServer_method_global_menu_remove_item>` **(** :ref:`String<class_String>` menu_root, :ref:`int<class_int>` idx **)**                                                                                                                                                                                      |
++----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                           | :ref:`global_menu_set_item_callback<class_DisplayServer_method_global_menu_set_item_callback>` **(** :ref:`String<class_String>` menu_root, :ref:`int<class_int>` idx, :ref:`Callable<class_Callable>` callback **)**                                                                                                                                |
++----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                           | :ref:`global_menu_set_item_checkable<class_DisplayServer_method_global_menu_set_item_checkable>` **(** :ref:`String<class_String>` menu_root, :ref:`int<class_int>` idx, :ref:`bool<class_bool>` checkable **)**                                                                                                                                     |
++----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                           | :ref:`global_menu_set_item_checked<class_DisplayServer_method_global_menu_set_item_checked>` **(** :ref:`String<class_String>` menu_root, :ref:`int<class_int>` idx, :ref:`bool<class_bool>` checked **)**                                                                                                                                           |
++----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                           | :ref:`global_menu_set_item_submenu<class_DisplayServer_method_global_menu_set_item_submenu>` **(** :ref:`String<class_String>` menu_root, :ref:`int<class_int>` idx, :ref:`String<class_String>` submenu **)**                                                                                                                                       |
++----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                           | :ref:`global_menu_set_item_tag<class_DisplayServer_method_global_menu_set_item_tag>` **(** :ref:`String<class_String>` menu_root, :ref:`int<class_int>` idx, :ref:`Variant<class_Variant>` tag **)**                                                                                                                                                 |
++----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                           | :ref:`global_menu_set_item_text<class_DisplayServer_method_global_menu_set_item_text>` **(** :ref:`String<class_String>` menu_root, :ref:`int<class_int>` idx, :ref:`String<class_String>` text **)**                                                                                                                                                |
++----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                                        | :ref:`has_feature<class_DisplayServer_method_has_feature>` **(** :ref:`Feature<enum_DisplayServer_Feature>` feature **)** |const|                                                                                                                                                                                                                    |
++----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Vector2i<class_Vector2i>`                                | :ref:`ime_get_selection<class_DisplayServer_method_ime_get_selection>` **(** **)** |const|                                                                                                                                                                                                                                                           |
++----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`                                    | :ref:`ime_get_text<class_DisplayServer_method_ime_get_text>` **(** **)** |const|                                                                                                                                                                                                                                                                     |
++----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                                          | :ref:`keyboard_get_current_layout<class_DisplayServer_method_keyboard_get_current_layout>` **(** **)** |const|                                                                                                                                                                                                                                       |
++----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Key<enum_@GlobalScope_Key>`                              | :ref:`keyboard_get_keycode_from_physical<class_DisplayServer_method_keyboard_get_keycode_from_physical>` **(** :ref:`Key<enum_@GlobalScope_Key>` keycode **)** |const|                                                                                                                                                                               |
++----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                                          | :ref:`keyboard_get_layout_count<class_DisplayServer_method_keyboard_get_layout_count>` **(** **)** |const|                                                                                                                                                                                                                                           |
++----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`                                    | :ref:`keyboard_get_layout_language<class_DisplayServer_method_keyboard_get_layout_language>` **(** :ref:`int<class_int>` index **)** |const|                                                                                                                                                                                                         |
++----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`                                    | :ref:`keyboard_get_layout_name<class_DisplayServer_method_keyboard_get_layout_name>` **(** :ref:`int<class_int>` index **)** |const|                                                                                                                                                                                                                 |
++----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                           | :ref:`keyboard_set_current_layout<class_DisplayServer_method_keyboard_set_current_layout>` **(** :ref:`int<class_int>` index **)**                                                                                                                                                                                                                   |
++----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`MouseButton<enum_@GlobalScope_MouseButton>`              | :ref:`mouse_get_button_state<class_DisplayServer_method_mouse_get_button_state>` **(** **)** |const|                                                                                                                                                                                                                                                 |
++----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`MouseMode<enum_DisplayServer_MouseMode>`                 | :ref:`mouse_get_mode<class_DisplayServer_method_mouse_get_mode>` **(** **)** |const|                                                                                                                                                                                                                                                                 |
++----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Vector2i<class_Vector2i>`                                | :ref:`mouse_get_position<class_DisplayServer_method_mouse_get_position>` **(** **)** |const|                                                                                                                                                                                                                                                         |
++----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                           | :ref:`mouse_set_mode<class_DisplayServer_method_mouse_set_mode>` **(** :ref:`MouseMode<enum_DisplayServer_MouseMode>` mouse_mode **)**                                                                                                                                                                                                               |
++----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                           | :ref:`mouse_warp_to_position<class_DisplayServer_method_mouse_warp_to_position>` **(** :ref:`Vector2i<class_Vector2i>` position **)**                                                                                                                                                                                                                |
++----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                           | :ref:`process_events<class_DisplayServer_method_process_events>` **(** **)**                                                                                                                                                                                                                                                                         |
++----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                                          | :ref:`screen_get_dpi<class_DisplayServer_method_screen_get_dpi>` **(** :ref:`int<class_int>` screen=-1 **)** |const|                                                                                                                                                                                                                                 |
++----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                                      | :ref:`screen_get_max_scale<class_DisplayServer_method_screen_get_max_scale>` **(** **)** |const|                                                                                                                                                                                                                                                     |
++----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`ScreenOrientation<enum_DisplayServer_ScreenOrientation>` | :ref:`screen_get_orientation<class_DisplayServer_method_screen_get_orientation>` **(** :ref:`int<class_int>` screen=-1 **)** |const|                                                                                                                                                                                                                 |
++----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Vector2i<class_Vector2i>`                                | :ref:`screen_get_position<class_DisplayServer_method_screen_get_position>` **(** :ref:`int<class_int>` screen=-1 **)** |const|                                                                                                                                                                                                                       |
++----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                                      | :ref:`screen_get_refresh_rate<class_DisplayServer_method_screen_get_refresh_rate>` **(** :ref:`int<class_int>` screen=-1 **)** |const|                                                                                                                                                                                                               |
++----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                                      | :ref:`screen_get_scale<class_DisplayServer_method_screen_get_scale>` **(** :ref:`int<class_int>` screen=-1 **)** |const|                                                                                                                                                                                                                             |
++----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Vector2i<class_Vector2i>`                                | :ref:`screen_get_size<class_DisplayServer_method_screen_get_size>` **(** :ref:`int<class_int>` screen=-1 **)** |const|                                                                                                                                                                                                                               |
++----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Rect2i<class_Rect2i>`                                    | :ref:`screen_get_usable_rect<class_DisplayServer_method_screen_get_usable_rect>` **(** :ref:`int<class_int>` screen=-1 **)** |const|                                                                                                                                                                                                                 |
++----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                                        | :ref:`screen_is_kept_on<class_DisplayServer_method_screen_is_kept_on>` **(** **)** |const|                                                                                                                                                                                                                                                           |
++----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                                        | :ref:`screen_is_touchscreen<class_DisplayServer_method_screen_is_touchscreen>` **(** :ref:`int<class_int>` screen=-1 **)** |const|                                                                                                                                                                                                                   |
++----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                           | :ref:`screen_set_keep_on<class_DisplayServer_method_screen_set_keep_on>` **(** :ref:`bool<class_bool>` enable **)**                                                                                                                                                                                                                                  |
++----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                           | :ref:`screen_set_orientation<class_DisplayServer_method_screen_set_orientation>` **(** :ref:`ScreenOrientation<enum_DisplayServer_ScreenOrientation>` orientation, :ref:`int<class_int>` screen=-1 **)**                                                                                                                                             |
++----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                           | :ref:`set_icon<class_DisplayServer_method_set_icon>` **(** :ref:`Image<class_Image>` image **)**                                                                                                                                                                                                                                                     |
++----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                           | :ref:`set_native_icon<class_DisplayServer_method_set_native_icon>` **(** :ref:`String<class_String>` filename **)**                                                                                                                                                                                                                                  |
++----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`                                    | :ref:`tablet_get_current_driver<class_DisplayServer_method_tablet_get_current_driver>` **(** **)** |const|                                                                                                                                                                                                                                           |
++----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                                          | :ref:`tablet_get_driver_count<class_DisplayServer_method_tablet_get_driver_count>` **(** **)** |const|                                                                                                                                                                                                                                               |
++----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`                                    | :ref:`tablet_get_driver_name<class_DisplayServer_method_tablet_get_driver_name>` **(** :ref:`int<class_int>` idx **)** |const|                                                                                                                                                                                                                       |
++----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                           | :ref:`tablet_set_current_driver<class_DisplayServer_method_tablet_set_current_driver>` **(** :ref:`String<class_String>` name **)**                                                                                                                                                                                                                  |
++----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                                          | :ref:`virtual_keyboard_get_height<class_DisplayServer_method_virtual_keyboard_get_height>` **(** **)** |const|                                                                                                                                                                                                                                       |
++----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                           | :ref:`virtual_keyboard_hide<class_DisplayServer_method_virtual_keyboard_hide>` **(** **)**                                                                                                                                                                                                                                                           |
++----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                           | :ref:`virtual_keyboard_show<class_DisplayServer_method_virtual_keyboard_show>` **(** :ref:`String<class_String>` existing_text, :ref:`Rect2<class_Rect2>` position=Rect2(0, 0, 0, 0), :ref:`bool<class_bool>` multiline=false, :ref:`int<class_int>` max_length=-1, :ref:`int<class_int>` cursor_start=-1, :ref:`int<class_int>` cursor_end=-1 **)** |
++----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                           | :ref:`window_attach_instance_id<class_DisplayServer_method_window_attach_instance_id>` **(** :ref:`int<class_int>` instance_id, :ref:`int<class_int>` window_id=0 **)**                                                                                                                                                                              |
++----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                                        | :ref:`window_can_draw<class_DisplayServer_method_window_can_draw>` **(** :ref:`int<class_int>` window_id=0 **)** |const|                                                                                                                                                                                                                             |
++----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                                          | :ref:`window_get_attached_instance_id<class_DisplayServer_method_window_get_attached_instance_id>` **(** :ref:`int<class_int>` window_id=0 **)** |const|                                                                                                                                                                                             |
++----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                                          | :ref:`window_get_current_screen<class_DisplayServer_method_window_get_current_screen>` **(** :ref:`int<class_int>` window_id=0 **)** |const|                                                                                                                                                                                                         |
++----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                                        | :ref:`window_get_flag<class_DisplayServer_method_window_get_flag>` **(** :ref:`WindowFlags<enum_DisplayServer_WindowFlags>` flag, :ref:`int<class_int>` window_id=0 **)** |const|                                                                                                                                                                    |
++----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Vector2i<class_Vector2i>`                                | :ref:`window_get_max_size<class_DisplayServer_method_window_get_max_size>` **(** :ref:`int<class_int>` window_id=0 **)** |const|                                                                                                                                                                                                                     |
++----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Vector2i<class_Vector2i>`                                | :ref:`window_get_min_size<class_DisplayServer_method_window_get_min_size>` **(** :ref:`int<class_int>` window_id=0 **)** |const|                                                                                                                                                                                                                     |
++----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`WindowMode<enum_DisplayServer_WindowMode>`               | :ref:`window_get_mode<class_DisplayServer_method_window_get_mode>` **(** :ref:`int<class_int>` window_id=0 **)** |const|                                                                                                                                                                                                                             |
++----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                                          | :ref:`window_get_native_handle<class_DisplayServer_method_window_get_native_handle>` **(** :ref:`HandleType<enum_DisplayServer_HandleType>` handle_type, :ref:`int<class_int>` window_id=0 **)** |const|                                                                                                                                             |
++----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Vector2i<class_Vector2i>`                                | :ref:`window_get_position<class_DisplayServer_method_window_get_position>` **(** :ref:`int<class_int>` window_id=0 **)** |const|                                                                                                                                                                                                                     |
++----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Vector2i<class_Vector2i>`                                | :ref:`window_get_real_size<class_DisplayServer_method_window_get_real_size>` **(** :ref:`int<class_int>` window_id=0 **)** |const|                                                                                                                                                                                                                   |
++----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Vector2i<class_Vector2i>`                                | :ref:`window_get_size<class_DisplayServer_method_window_get_size>` **(** :ref:`int<class_int>` window_id=0 **)** |const|                                                                                                                                                                                                                             |
++----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`VSyncMode<enum_DisplayServer_VSyncMode>`                 | :ref:`window_get_vsync_mode<class_DisplayServer_method_window_get_vsync_mode>` **(** :ref:`int<class_int>` window_id=0 **)** |const|                                                                                                                                                                                                                 |
++----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                           | :ref:`window_move_to_foreground<class_DisplayServer_method_window_move_to_foreground>` **(** :ref:`int<class_int>` window_id=0 **)**                                                                                                                                                                                                                 |
++----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                           | :ref:`window_request_attention<class_DisplayServer_method_window_request_attention>` **(** :ref:`int<class_int>` window_id=0 **)**                                                                                                                                                                                                                   |
++----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                           | :ref:`window_set_current_screen<class_DisplayServer_method_window_set_current_screen>` **(** :ref:`int<class_int>` screen, :ref:`int<class_int>` window_id=0 **)**                                                                                                                                                                                   |
++----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                           | :ref:`window_set_drop_files_callback<class_DisplayServer_method_window_set_drop_files_callback>` **(** :ref:`Callable<class_Callable>` callback, :ref:`int<class_int>` window_id=0 **)**                                                                                                                                                             |
++----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                           | :ref:`window_set_exclusive<class_DisplayServer_method_window_set_exclusive>` **(** :ref:`int<class_int>` window_id, :ref:`bool<class_bool>` exclusive **)**                                                                                                                                                                                          |
++----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                           | :ref:`window_set_flag<class_DisplayServer_method_window_set_flag>` **(** :ref:`WindowFlags<enum_DisplayServer_WindowFlags>` flag, :ref:`bool<class_bool>` enabled, :ref:`int<class_int>` window_id=0 **)**                                                                                                                                           |
++----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                           | :ref:`window_set_ime_active<class_DisplayServer_method_window_set_ime_active>` **(** :ref:`bool<class_bool>` active, :ref:`int<class_int>` window_id=0 **)**                                                                                                                                                                                         |
++----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                           | :ref:`window_set_ime_position<class_DisplayServer_method_window_set_ime_position>` **(** :ref:`Vector2i<class_Vector2i>` position, :ref:`int<class_int>` window_id=0 **)**                                                                                                                                                                           |
++----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                           | :ref:`window_set_input_event_callback<class_DisplayServer_method_window_set_input_event_callback>` **(** :ref:`Callable<class_Callable>` callback, :ref:`int<class_int>` window_id=0 **)**                                                                                                                                                           |
++----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                           | :ref:`window_set_input_text_callback<class_DisplayServer_method_window_set_input_text_callback>` **(** :ref:`Callable<class_Callable>` callback, :ref:`int<class_int>` window_id=0 **)**                                                                                                                                                             |
++----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                           | :ref:`window_set_max_size<class_DisplayServer_method_window_set_max_size>` **(** :ref:`Vector2i<class_Vector2i>` max_size, :ref:`int<class_int>` window_id=0 **)**                                                                                                                                                                                   |
++----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                           | :ref:`window_set_min_size<class_DisplayServer_method_window_set_min_size>` **(** :ref:`Vector2i<class_Vector2i>` min_size, :ref:`int<class_int>` window_id=0 **)**                                                                                                                                                                                   |
++----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                           | :ref:`window_set_mode<class_DisplayServer_method_window_set_mode>` **(** :ref:`WindowMode<enum_DisplayServer_WindowMode>` mode, :ref:`int<class_int>` window_id=0 **)**                                                                                                                                                                              |
++----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                           | :ref:`window_set_mouse_passthrough<class_DisplayServer_method_window_set_mouse_passthrough>` **(** :ref:`PackedVector2Array<class_PackedVector2Array>` region, :ref:`int<class_int>` window_id=0 **)**                                                                                                                                               |
++----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                           | :ref:`window_set_position<class_DisplayServer_method_window_set_position>` **(** :ref:`Vector2i<class_Vector2i>` position, :ref:`int<class_int>` window_id=0 **)**                                                                                                                                                                                   |
++----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                           | :ref:`window_set_rect_changed_callback<class_DisplayServer_method_window_set_rect_changed_callback>` **(** :ref:`Callable<class_Callable>` callback, :ref:`int<class_int>` window_id=0 **)**                                                                                                                                                         |
++----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                           | :ref:`window_set_size<class_DisplayServer_method_window_set_size>` **(** :ref:`Vector2i<class_Vector2i>` size, :ref:`int<class_int>` window_id=0 **)**                                                                                                                                                                                               |
++----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                           | :ref:`window_set_title<class_DisplayServer_method_window_set_title>` **(** :ref:`String<class_String>` title, :ref:`int<class_int>` window_id=0 **)**                                                                                                                                                                                                |
++----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                           | :ref:`window_set_transient<class_DisplayServer_method_window_set_transient>` **(** :ref:`int<class_int>` window_id, :ref:`int<class_int>` parent_window_id **)**                                                                                                                                                                                     |
++----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                           | :ref:`window_set_vsync_mode<class_DisplayServer_method_window_set_vsync_mode>` **(** :ref:`VSyncMode<enum_DisplayServer_VSyncMode>` vsync_mode, :ref:`int<class_int>` window_id=0 **)**                                                                                                                                                              |
++----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                           | :ref:`window_set_window_event_callback<class_DisplayServer_method_window_set_window_event_callback>` **(** :ref:`Callable<class_Callable>` callback, :ref:`int<class_int>` window_id=0 **)**                                                                                                                                                         |
++----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 
 Enumerations
 ------------
@@ -459,6 +463,8 @@ enum **CursorShape**:
 
 .. _class_DisplayServer_constant_WINDOW_MODE_FULLSCREEN:
 
+.. _class_DisplayServer_constant_WINDOW_MODE_EXCLUSIVE_FULLSCREEN:
+
 enum **WindowMode**:
 
 - **WINDOW_MODE_WINDOWED** = **0**
@@ -471,6 +477,12 @@ enum **WindowMode**:
 
 Regardless of the platform, enabling fullscreen will change the window size to match the monitor's size. Therefore, make sure your project supports :doc:`multiple resolutions <../tutorials/rendering/multiple_resolutions>` when enabling fullscreen mode.
 
+- **WINDOW_MODE_EXCLUSIVE_FULLSCREEN** = **4** --- Exclusive fullscreen window mode. This mode is implemented on Windows only. On other platforms, it is equivalent to :ref:`WINDOW_MODE_FULLSCREEN<class_DisplayServer_constant_WINDOW_MODE_FULLSCREEN>`.
+
+Only one window in exclusive fullscreen mode can be visible on a given screen at a time. If multiple windows are in exclusive fullscreen mode for the same screen, the last one being set to this mode takes precedence.
+
+Regardless of the platform, enabling fullscreen will change the window size to match the monitor's size. Therefore, make sure your project supports :doc:`multiple resolutions <../tutorials/rendering/multiple_resolutions>` when enabling fullscreen mode.
+
 ----
 
 .. _enum_DisplayServer_WindowFlags:
@@ -1012,6 +1024,24 @@ Returns the greatest scale factor of all screens.
 
 ----
 
+.. _class_DisplayServer_method_screen_get_refresh_rate:
+
+- :ref:`float<class_float>` **screen_get_refresh_rate** **(** :ref:`int<class_int>` screen=-1 **)** |const|
+
+Returns the current refresh rate of the specified screen. If ``screen`` is :ref:`SCREEN_OF_MAIN_WINDOW<class_DisplayServer_constant_SCREEN_OF_MAIN_WINDOW>` (the default value), a screen with the main window will be used.
+
+\ **Note:** Returns ``-1.0`` if the DisplayServer fails to find the refresh rate for the specified screen. On HTML5, :ref:`screen_get_refresh_rate<class_DisplayServer_method_screen_get_refresh_rate>` will always return ``-1.0`` as there is no way to retrieve the refresh rate on that platform.
+
+To fallback to a default refresh rate if the method fails, try:
+
+::
+
+    var refresh_rate = DisplayServer.screen_get_refresh_rate()
+    if refresh_rate < 0:
+        refresh_rate = 60.0
+
+----
+
 .. _class_DisplayServer_method_screen_get_scale:
 
 - :ref:`float<class_float>` **screen_get_scale** **(** :ref:`int<class_int>` screen=-1 **)** |const|
@@ -1130,7 +1160,7 @@ Hides the virtual keyboard if it is shown, does nothing otherwise.
 
 .. _class_DisplayServer_method_virtual_keyboard_show:
 
-- void **virtual_keyboard_show** **(** :ref:`String<class_String>` existing_text, :ref:`Rect2<class_Rect2>` position=Rect2i(0, 0, 0, 0), :ref:`bool<class_bool>` multiline=false, :ref:`int<class_int>` max_length=-1, :ref:`int<class_int>` cursor_start=-1, :ref:`int<class_int>` cursor_end=-1 **)**
+- void **virtual_keyboard_show** **(** :ref:`String<class_String>` existing_text, :ref:`Rect2<class_Rect2>` position=Rect2(0, 0, 0, 0), :ref:`bool<class_bool>` multiline=false, :ref:`int<class_int>` max_length=-1, :ref:`int<class_int>` cursor_start=-1, :ref:`int<class_int>` cursor_end=-1 **)**
 
 Shows the virtual keyboard if the platform has one.
 
@@ -1264,6 +1294,18 @@ Returns the VSync mode of the given window.
 
 ----
 
+.. _class_DisplayServer_method_window_set_exclusive:
+
+- void **window_set_exclusive** **(** :ref:`int<class_int>` window_id, :ref:`bool<class_bool>` exclusive **)**
+
+If set to ``true``, this window will always stay on top of its parent window, parent window will ignore input while this window is opened.
+
+\ **Note:** On macOS, exclusive windows are confined to the same space (virtual desktop or screen) as the parent window.
+
+\ **Note:** This method is implemented on macOS and Windows.
+
+----
+
 .. _class_DisplayServer_method_window_set_flag:
 
 - void **window_set_flag** **(** :ref:`WindowFlags<enum_DisplayServer_WindowFlags>` flag, :ref:`bool<class_bool>` enabled, :ref:`int<class_int>` window_id=0 **)**

+ 136 - 130
classes/class_editorplugin.rst

@@ -26,133 +26,133 @@ Tutorials
 Methods
 -------
 
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`_apply_changes<class_EditorPlugin_method__apply_changes>` **(** **)** |virtual|                                                                                                                                              |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                             | :ref:`_build<class_EditorPlugin_method__build>` **(** **)** |virtual|                                                                                                                                                              |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`_clear<class_EditorPlugin_method__clear>` **(** **)** |virtual|                                                                                                                                                              |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`_disable_plugin<class_EditorPlugin_method__disable_plugin>` **(** **)** |virtual|                                                                                                                                            |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`_edit<class_EditorPlugin_method__edit>` **(** :ref:`Variant<class_Variant>` object **)** |virtual|                                                                                                                           |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`_enable_plugin<class_EditorPlugin_method__enable_plugin>` **(** **)** |virtual|                                                                                                                                              |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`_forward_3d_draw_over_viewport<class_EditorPlugin_method__forward_3d_draw_over_viewport>` **(** :ref:`Control<class_Control>` viewport_control **)** |virtual|                                                               |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`_forward_3d_force_draw_over_viewport<class_EditorPlugin_method__forward_3d_force_draw_over_viewport>` **(** :ref:`Control<class_Control>` viewport_control **)** |virtual|                                                   |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                               | :ref:`_forward_3d_gui_input<class_EditorPlugin_method__forward_3d_gui_input>` **(** :ref:`Camera3D<class_Camera3D>` viewport_camera, :ref:`InputEvent<class_InputEvent>` event **)** |virtual|                                     |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`_forward_canvas_draw_over_viewport<class_EditorPlugin_method__forward_canvas_draw_over_viewport>` **(** :ref:`Control<class_Control>` viewport_control **)** |virtual|                                                       |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`_forward_canvas_force_draw_over_viewport<class_EditorPlugin_method__forward_canvas_force_draw_over_viewport>` **(** :ref:`Control<class_Control>` viewport_control **)** |virtual|                                           |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                             | :ref:`_forward_canvas_gui_input<class_EditorPlugin_method__forward_canvas_gui_input>` **(** :ref:`InputEvent<class_InputEvent>` event **)** |virtual|                                                                              |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`PackedStringArray<class_PackedStringArray>`   | :ref:`_get_breakpoints<class_EditorPlugin_method__get_breakpoints>` **(** **)** |virtual| |const|                                                                                                                                  |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Texture2D<class_Texture2D>`                   | :ref:`_get_plugin_icon<class_EditorPlugin_method__get_plugin_icon>` **(** **)** |virtual| |const|                                                                                                                                  |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_String>`                         | :ref:`_get_plugin_name<class_EditorPlugin_method__get_plugin_name>` **(** **)** |virtual| |const|                                                                                                                                  |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Dictionary<class_Dictionary>`                 | :ref:`_get_state<class_EditorPlugin_method__get_state>` **(** **)** |virtual| |const|                                                                                                                                              |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`_get_window_layout<class_EditorPlugin_method__get_window_layout>` **(** :ref:`ConfigFile<class_ConfigFile>` configuration **)** |virtual|                                                                                    |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                             | :ref:`_handles<class_EditorPlugin_method__handles>` **(** :ref:`Variant<class_Variant>` object **)** |virtual| |const|                                                                                                             |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                             | :ref:`_has_main_screen<class_EditorPlugin_method__has_main_screen>` **(** **)** |virtual| |const|                                                                                                                                  |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`_make_visible<class_EditorPlugin_method__make_visible>` **(** :ref:`bool<class_bool>` visible **)** |virtual|                                                                                                                |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`_save_external_data<class_EditorPlugin_method__save_external_data>` **(** **)** |virtual|                                                                                                                                    |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`_set_state<class_EditorPlugin_method__set_state>` **(** :ref:`Dictionary<class_Dictionary>` state **)** |virtual|                                                                                                            |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`_set_window_layout<class_EditorPlugin_method__set_window_layout>` **(** :ref:`ConfigFile<class_ConfigFile>` configuration **)** |virtual|                                                                                    |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`add_autoload_singleton<class_EditorPlugin_method_add_autoload_singleton>` **(** :ref:`String<class_String>` name, :ref:`String<class_String>` path **)**                                                                     |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Button<class_Button>`                         | :ref:`add_control_to_bottom_panel<class_EditorPlugin_method_add_control_to_bottom_panel>` **(** :ref:`Control<class_Control>` control, :ref:`String<class_String>` title **)**                                                     |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`add_control_to_container<class_EditorPlugin_method_add_control_to_container>` **(** :ref:`CustomControlContainer<enum_EditorPlugin_CustomControlContainer>` container, :ref:`Control<class_Control>` control **)**           |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`add_control_to_dock<class_EditorPlugin_method_add_control_to_dock>` **(** :ref:`DockSlot<enum_EditorPlugin_DockSlot>` slot, :ref:`Control<class_Control>` control **)**                                                      |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`add_custom_type<class_EditorPlugin_method_add_custom_type>` **(** :ref:`String<class_String>` type, :ref:`String<class_String>` base, :ref:`Script<class_Script>` script, :ref:`Texture2D<class_Texture2D>` icon **)**       |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`add_debugger_plugin<class_EditorPlugin_method_add_debugger_plugin>` **(** :ref:`Script<class_Script>` script **)**                                                                                                           |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`add_export_plugin<class_EditorPlugin_method_add_export_plugin>` **(** :ref:`EditorExportPlugin<class_EditorExportPlugin>` plugin **)**                                                                                       |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`add_import_plugin<class_EditorPlugin_method_add_import_plugin>` **(** :ref:`EditorImportPlugin<class_EditorImportPlugin>` importer **)**                                                                                     |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`add_inspector_plugin<class_EditorPlugin_method_add_inspector_plugin>` **(** :ref:`EditorInspectorPlugin<class_EditorInspectorPlugin>` plugin **)**                                                                           |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`add_scene_format_importer_plugin<class_EditorPlugin_method_add_scene_format_importer_plugin>` **(** :ref:`EditorSceneFormatImporter<class_EditorSceneFormatImporter>` scene_format_importer **)**                            |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`add_scene_post_import_plugin<class_EditorPlugin_method_add_scene_post_import_plugin>` **(** :ref:`EditorScenePostImportPlugin<class_EditorScenePostImportPlugin>` scene_import_plugin **)**                                  |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`add_spatial_gizmo_plugin<class_EditorPlugin_method_add_spatial_gizmo_plugin>` **(** :ref:`EditorNode3DGizmoPlugin<class_EditorNode3DGizmoPlugin>` plugin **)**                                                               |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`add_tool_menu_item<class_EditorPlugin_method_add_tool_menu_item>` **(** :ref:`String<class_String>` name, :ref:`Callable<class_Callable>` callable **)**                                                                     |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`add_tool_submenu_item<class_EditorPlugin_method_add_tool_submenu_item>` **(** :ref:`String<class_String>` name, :ref:`PopupMenu<class_PopupMenu>` submenu **)**                                                              |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`add_translation_parser_plugin<class_EditorPlugin_method_add_translation_parser_plugin>` **(** :ref:`EditorTranslationParserPlugin<class_EditorTranslationParserPlugin>` parser **)**                                         |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`add_undo_redo_inspector_hook_callback<class_EditorPlugin_method_add_undo_redo_inspector_hook_callback>` **(** :ref:`Callable<class_Callable>` callable **)**                                                                 |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`EditorInterface<class_EditorInterface>`       | :ref:`get_editor_interface<class_EditorPlugin_method_get_editor_interface>` **(** **)**                                                                                                                                            |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`ScriptCreateDialog<class_ScriptCreateDialog>` | :ref:`get_script_create_dialog<class_EditorPlugin_method_get_script_create_dialog>` **(** **)**                                                                                                                                    |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`UndoRedo<class_UndoRedo>`                     | :ref:`get_undo_redo<class_EditorPlugin_method_get_undo_redo>` **(** **)**                                                                                                                                                          |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`hide_bottom_panel<class_EditorPlugin_method_hide_bottom_panel>` **(** **)**                                                                                                                                                  |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`make_bottom_panel_item_visible<class_EditorPlugin_method_make_bottom_panel_item_visible>` **(** :ref:`Control<class_Control>` item **)**                                                                                     |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`queue_save_layout<class_EditorPlugin_method_queue_save_layout>` **(** **)**                                                                                                                                                  |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`remove_autoload_singleton<class_EditorPlugin_method_remove_autoload_singleton>` **(** :ref:`String<class_String>` name **)**                                                                                                 |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`remove_control_from_bottom_panel<class_EditorPlugin_method_remove_control_from_bottom_panel>` **(** :ref:`Control<class_Control>` control **)**                                                                              |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`remove_control_from_container<class_EditorPlugin_method_remove_control_from_container>` **(** :ref:`CustomControlContainer<enum_EditorPlugin_CustomControlContainer>` container, :ref:`Control<class_Control>` control **)** |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`remove_control_from_docks<class_EditorPlugin_method_remove_control_from_docks>` **(** :ref:`Control<class_Control>` control **)**                                                                                            |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`remove_custom_type<class_EditorPlugin_method_remove_custom_type>` **(** :ref:`String<class_String>` type **)**                                                                                                               |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`remove_debugger_plugin<class_EditorPlugin_method_remove_debugger_plugin>` **(** :ref:`Script<class_Script>` script **)**                                                                                                     |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`remove_export_plugin<class_EditorPlugin_method_remove_export_plugin>` **(** :ref:`EditorExportPlugin<class_EditorExportPlugin>` plugin **)**                                                                                 |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`remove_import_plugin<class_EditorPlugin_method_remove_import_plugin>` **(** :ref:`EditorImportPlugin<class_EditorImportPlugin>` importer **)**                                                                               |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`remove_inspector_plugin<class_EditorPlugin_method_remove_inspector_plugin>` **(** :ref:`EditorInspectorPlugin<class_EditorInspectorPlugin>` plugin **)**                                                                     |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`remove_scene_format_importer_plugin<class_EditorPlugin_method_remove_scene_format_importer_plugin>` **(** :ref:`EditorSceneFormatImporter<class_EditorSceneFormatImporter>` scene_format_importer **)**                      |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`remove_scene_post_import_plugin<class_EditorPlugin_method_remove_scene_post_import_plugin>` **(** :ref:`EditorScenePostImportPlugin<class_EditorScenePostImportPlugin>` scene_import_plugin **)**                            |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`remove_spatial_gizmo_plugin<class_EditorPlugin_method_remove_spatial_gizmo_plugin>` **(** :ref:`EditorNode3DGizmoPlugin<class_EditorNode3DGizmoPlugin>` plugin **)**                                                         |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`remove_tool_menu_item<class_EditorPlugin_method_remove_tool_menu_item>` **(** :ref:`String<class_String>` name **)**                                                                                                         |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`remove_translation_parser_plugin<class_EditorPlugin_method_remove_translation_parser_plugin>` **(** :ref:`EditorTranslationParserPlugin<class_EditorTranslationParserPlugin>` parser **)**                                   |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`remove_undo_redo_inspector_hook_callback<class_EditorPlugin_method_remove_undo_redo_inspector_hook_callback>` **(** :ref:`Callable<class_Callable>` callable **)**                                                           |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`set_force_draw_over_forwarding_enabled<class_EditorPlugin_method_set_force_draw_over_forwarding_enabled>` **(** **)**                                                                                                        |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`set_input_event_forwarding_always_enabled<class_EditorPlugin_method_set_input_event_forwarding_always_enabled>` **(** **)**                                                                                                  |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                               | :ref:`update_overlays<class_EditorPlugin_method_update_overlays>` **(** **)** |const|                                                                                                                                              |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
++-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                | :ref:`_apply_changes<class_EditorPlugin_method__apply_changes>` **(** **)** |virtual|                                                                                                                                                                 |
++-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                             | :ref:`_build<class_EditorPlugin_method__build>` **(** **)** |virtual|                                                                                                                                                                                 |
++-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                | :ref:`_clear<class_EditorPlugin_method__clear>` **(** **)** |virtual|                                                                                                                                                                                 |
++-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                | :ref:`_disable_plugin<class_EditorPlugin_method__disable_plugin>` **(** **)** |virtual|                                                                                                                                                               |
++-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                | :ref:`_edit<class_EditorPlugin_method__edit>` **(** :ref:`Variant<class_Variant>` object **)** |virtual|                                                                                                                                              |
++-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                | :ref:`_enable_plugin<class_EditorPlugin_method__enable_plugin>` **(** **)** |virtual|                                                                                                                                                                 |
++-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                | :ref:`_forward_3d_draw_over_viewport<class_EditorPlugin_method__forward_3d_draw_over_viewport>` **(** :ref:`Control<class_Control>` viewport_control **)** |virtual|                                                                                  |
++-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                | :ref:`_forward_3d_force_draw_over_viewport<class_EditorPlugin_method__forward_3d_force_draw_over_viewport>` **(** :ref:`Control<class_Control>` viewport_control **)** |virtual|                                                                      |
++-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                               | :ref:`_forward_3d_gui_input<class_EditorPlugin_method__forward_3d_gui_input>` **(** :ref:`Camera3D<class_Camera3D>` viewport_camera, :ref:`InputEvent<class_InputEvent>` event **)** |virtual|                                                        |
++-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                | :ref:`_forward_canvas_draw_over_viewport<class_EditorPlugin_method__forward_canvas_draw_over_viewport>` **(** :ref:`Control<class_Control>` viewport_control **)** |virtual|                                                                          |
++-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                | :ref:`_forward_canvas_force_draw_over_viewport<class_EditorPlugin_method__forward_canvas_force_draw_over_viewport>` **(** :ref:`Control<class_Control>` viewport_control **)** |virtual|                                                              |
++-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                             | :ref:`_forward_canvas_gui_input<class_EditorPlugin_method__forward_canvas_gui_input>` **(** :ref:`InputEvent<class_InputEvent>` event **)** |virtual|                                                                                                 |
++-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`PackedStringArray<class_PackedStringArray>`   | :ref:`_get_breakpoints<class_EditorPlugin_method__get_breakpoints>` **(** **)** |virtual| |const|                                                                                                                                                     |
++-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Texture2D<class_Texture2D>`                   | :ref:`_get_plugin_icon<class_EditorPlugin_method__get_plugin_icon>` **(** **)** |virtual| |const|                                                                                                                                                     |
++-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`                         | :ref:`_get_plugin_name<class_EditorPlugin_method__get_plugin_name>` **(** **)** |virtual| |const|                                                                                                                                                     |
++-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Dictionary<class_Dictionary>`                 | :ref:`_get_state<class_EditorPlugin_method__get_state>` **(** **)** |virtual| |const|                                                                                                                                                                 |
++-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                | :ref:`_get_window_layout<class_EditorPlugin_method__get_window_layout>` **(** :ref:`ConfigFile<class_ConfigFile>` configuration **)** |virtual|                                                                                                       |
++-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                             | :ref:`_handles<class_EditorPlugin_method__handles>` **(** :ref:`Variant<class_Variant>` object **)** |virtual| |const|                                                                                                                                |
++-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                             | :ref:`_has_main_screen<class_EditorPlugin_method__has_main_screen>` **(** **)** |virtual| |const|                                                                                                                                                     |
++-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                | :ref:`_make_visible<class_EditorPlugin_method__make_visible>` **(** :ref:`bool<class_bool>` visible **)** |virtual|                                                                                                                                   |
++-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                | :ref:`_save_external_data<class_EditorPlugin_method__save_external_data>` **(** **)** |virtual|                                                                                                                                                       |
++-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                | :ref:`_set_state<class_EditorPlugin_method__set_state>` **(** :ref:`Dictionary<class_Dictionary>` state **)** |virtual|                                                                                                                               |
++-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                | :ref:`_set_window_layout<class_EditorPlugin_method__set_window_layout>` **(** :ref:`ConfigFile<class_ConfigFile>` configuration **)** |virtual|                                                                                                       |
++-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                | :ref:`add_autoload_singleton<class_EditorPlugin_method_add_autoload_singleton>` **(** :ref:`String<class_String>` name, :ref:`String<class_String>` path **)**                                                                                        |
++-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Button<class_Button>`                         | :ref:`add_control_to_bottom_panel<class_EditorPlugin_method_add_control_to_bottom_panel>` **(** :ref:`Control<class_Control>` control, :ref:`String<class_String>` title **)**                                                                        |
++-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                | :ref:`add_control_to_container<class_EditorPlugin_method_add_control_to_container>` **(** :ref:`CustomControlContainer<enum_EditorPlugin_CustomControlContainer>` container, :ref:`Control<class_Control>` control **)**                              |
++-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                | :ref:`add_control_to_dock<class_EditorPlugin_method_add_control_to_dock>` **(** :ref:`DockSlot<enum_EditorPlugin_DockSlot>` slot, :ref:`Control<class_Control>` control **)**                                                                         |
++-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                | :ref:`add_custom_type<class_EditorPlugin_method_add_custom_type>` **(** :ref:`String<class_String>` type, :ref:`String<class_String>` base, :ref:`Script<class_Script>` script, :ref:`Texture2D<class_Texture2D>` icon **)**                          |
++-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                | :ref:`add_debugger_plugin<class_EditorPlugin_method_add_debugger_plugin>` **(** :ref:`Script<class_Script>` script **)**                                                                                                                              |
++-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                | :ref:`add_export_plugin<class_EditorPlugin_method_add_export_plugin>` **(** :ref:`EditorExportPlugin<class_EditorExportPlugin>` plugin **)**                                                                                                          |
++-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                | :ref:`add_import_plugin<class_EditorPlugin_method_add_import_plugin>` **(** :ref:`EditorImportPlugin<class_EditorImportPlugin>` importer, :ref:`bool<class_bool>` first_priority=false **)**                                                          |
++-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                | :ref:`add_inspector_plugin<class_EditorPlugin_method_add_inspector_plugin>` **(** :ref:`EditorInspectorPlugin<class_EditorInspectorPlugin>` plugin **)**                                                                                              |
++-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                | :ref:`add_scene_format_importer_plugin<class_EditorPlugin_method_add_scene_format_importer_plugin>` **(** :ref:`EditorSceneFormatImporter<class_EditorSceneFormatImporter>` scene_format_importer, :ref:`bool<class_bool>` first_priority=false **)** |
++-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                | :ref:`add_scene_post_import_plugin<class_EditorPlugin_method_add_scene_post_import_plugin>` **(** :ref:`EditorScenePostImportPlugin<class_EditorScenePostImportPlugin>` scene_import_plugin, :ref:`bool<class_bool>` first_priority=false **)**       |
++-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                | :ref:`add_spatial_gizmo_plugin<class_EditorPlugin_method_add_spatial_gizmo_plugin>` **(** :ref:`EditorNode3DGizmoPlugin<class_EditorNode3DGizmoPlugin>` plugin **)**                                                                                  |
++-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                | :ref:`add_tool_menu_item<class_EditorPlugin_method_add_tool_menu_item>` **(** :ref:`String<class_String>` name, :ref:`Callable<class_Callable>` callable **)**                                                                                        |
++-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                | :ref:`add_tool_submenu_item<class_EditorPlugin_method_add_tool_submenu_item>` **(** :ref:`String<class_String>` name, :ref:`PopupMenu<class_PopupMenu>` submenu **)**                                                                                 |
++-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                | :ref:`add_translation_parser_plugin<class_EditorPlugin_method_add_translation_parser_plugin>` **(** :ref:`EditorTranslationParserPlugin<class_EditorTranslationParserPlugin>` parser **)**                                                            |
++-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                | :ref:`add_undo_redo_inspector_hook_callback<class_EditorPlugin_method_add_undo_redo_inspector_hook_callback>` **(** :ref:`Callable<class_Callable>` callable **)**                                                                                    |
++-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`EditorInterface<class_EditorInterface>`       | :ref:`get_editor_interface<class_EditorPlugin_method_get_editor_interface>` **(** **)**                                                                                                                                                               |
++-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`ScriptCreateDialog<class_ScriptCreateDialog>` | :ref:`get_script_create_dialog<class_EditorPlugin_method_get_script_create_dialog>` **(** **)**                                                                                                                                                       |
++-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`UndoRedo<class_UndoRedo>`                     | :ref:`get_undo_redo<class_EditorPlugin_method_get_undo_redo>` **(** **)**                                                                                                                                                                             |
++-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                | :ref:`hide_bottom_panel<class_EditorPlugin_method_hide_bottom_panel>` **(** **)**                                                                                                                                                                     |
++-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                | :ref:`make_bottom_panel_item_visible<class_EditorPlugin_method_make_bottom_panel_item_visible>` **(** :ref:`Control<class_Control>` item **)**                                                                                                        |
++-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                | :ref:`queue_save_layout<class_EditorPlugin_method_queue_save_layout>` **(** **)**                                                                                                                                                                     |
++-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                | :ref:`remove_autoload_singleton<class_EditorPlugin_method_remove_autoload_singleton>` **(** :ref:`String<class_String>` name **)**                                                                                                                    |
++-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                | :ref:`remove_control_from_bottom_panel<class_EditorPlugin_method_remove_control_from_bottom_panel>` **(** :ref:`Control<class_Control>` control **)**                                                                                                 |
++-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                | :ref:`remove_control_from_container<class_EditorPlugin_method_remove_control_from_container>` **(** :ref:`CustomControlContainer<enum_EditorPlugin_CustomControlContainer>` container, :ref:`Control<class_Control>` control **)**                    |
++-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                | :ref:`remove_control_from_docks<class_EditorPlugin_method_remove_control_from_docks>` **(** :ref:`Control<class_Control>` control **)**                                                                                                               |
++-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                | :ref:`remove_custom_type<class_EditorPlugin_method_remove_custom_type>` **(** :ref:`String<class_String>` type **)**                                                                                                                                  |
++-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                | :ref:`remove_debugger_plugin<class_EditorPlugin_method_remove_debugger_plugin>` **(** :ref:`Script<class_Script>` script **)**                                                                                                                        |
++-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                | :ref:`remove_export_plugin<class_EditorPlugin_method_remove_export_plugin>` **(** :ref:`EditorExportPlugin<class_EditorExportPlugin>` plugin **)**                                                                                                    |
++-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                | :ref:`remove_import_plugin<class_EditorPlugin_method_remove_import_plugin>` **(** :ref:`EditorImportPlugin<class_EditorImportPlugin>` importer **)**                                                                                                  |
++-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                | :ref:`remove_inspector_plugin<class_EditorPlugin_method_remove_inspector_plugin>` **(** :ref:`EditorInspectorPlugin<class_EditorInspectorPlugin>` plugin **)**                                                                                        |
++-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                | :ref:`remove_scene_format_importer_plugin<class_EditorPlugin_method_remove_scene_format_importer_plugin>` **(** :ref:`EditorSceneFormatImporter<class_EditorSceneFormatImporter>` scene_format_importer **)**                                         |
++-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                | :ref:`remove_scene_post_import_plugin<class_EditorPlugin_method_remove_scene_post_import_plugin>` **(** :ref:`EditorScenePostImportPlugin<class_EditorScenePostImportPlugin>` scene_import_plugin **)**                                               |
++-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                | :ref:`remove_spatial_gizmo_plugin<class_EditorPlugin_method_remove_spatial_gizmo_plugin>` **(** :ref:`EditorNode3DGizmoPlugin<class_EditorNode3DGizmoPlugin>` plugin **)**                                                                            |
++-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                | :ref:`remove_tool_menu_item<class_EditorPlugin_method_remove_tool_menu_item>` **(** :ref:`String<class_String>` name **)**                                                                                                                            |
++-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                | :ref:`remove_translation_parser_plugin<class_EditorPlugin_method_remove_translation_parser_plugin>` **(** :ref:`EditorTranslationParserPlugin<class_EditorTranslationParserPlugin>` parser **)**                                                      |
++-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                | :ref:`remove_undo_redo_inspector_hook_callback<class_EditorPlugin_method_remove_undo_redo_inspector_hook_callback>` **(** :ref:`Callable<class_Callable>` callable **)**                                                                              |
++-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                | :ref:`set_force_draw_over_forwarding_enabled<class_EditorPlugin_method_set_force_draw_over_forwarding_enabled>` **(** **)**                                                                                                                           |
++-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                | :ref:`set_input_event_forwarding_always_enabled<class_EditorPlugin_method_set_input_event_forwarding_always_enabled>` **(** **)**                                                                                                                     |
++-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                               | :ref:`update_overlays<class_EditorPlugin_method_update_overlays>` **(** **)** |const|                                                                                                                                                                 |
++-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 
 Signals
 -------
@@ -745,10 +745,12 @@ See :ref:`add_inspector_plugin<class_EditorPlugin_method_add_inspector_plugin>`
 
 .. _class_EditorPlugin_method_add_import_plugin:
 
-- void **add_import_plugin** **(** :ref:`EditorImportPlugin<class_EditorImportPlugin>` importer **)**
+- void **add_import_plugin** **(** :ref:`EditorImportPlugin<class_EditorImportPlugin>` importer, :ref:`bool<class_bool>` first_priority=false **)**
 
 Registers a new :ref:`EditorImportPlugin<class_EditorImportPlugin>`. Import plugins are used to import custom and unsupported assets as a custom :ref:`Resource<class_Resource>` type.
 
+If ``first_priority`` is ``true``, the new import plugin is inserted first in the list and takes precedence over pre-existing plugins.
+
 \ **Note:** If you want to import custom 3D asset formats use :ref:`add_scene_format_importer_plugin<class_EditorPlugin_method_add_scene_format_importer_plugin>` instead.
 
 See :ref:`add_inspector_plugin<class_EditorPlugin_method_add_inspector_plugin>` for an example of how to register a plugin.
@@ -783,18 +785,22 @@ Registers a new :ref:`EditorInspectorPlugin<class_EditorInspectorPlugin>`. Inspe
 
 .. _class_EditorPlugin_method_add_scene_format_importer_plugin:
 
-- void **add_scene_format_importer_plugin** **(** :ref:`EditorSceneFormatImporter<class_EditorSceneFormatImporter>` scene_format_importer **)**
+- void **add_scene_format_importer_plugin** **(** :ref:`EditorSceneFormatImporter<class_EditorSceneFormatImporter>` scene_format_importer, :ref:`bool<class_bool>` first_priority=false **)**
 
 Registers a new :ref:`EditorSceneFormatImporter<class_EditorSceneFormatImporter>`. Scene importers are used to import custom 3D asset formats as scenes.
 
+If ``first_priority`` is ``true``, the new import plugin is inserted first in the list and takes precedence over pre-existing plugins.
+
 ----
 
 .. _class_EditorPlugin_method_add_scene_post_import_plugin:
 
-- void **add_scene_post_import_plugin** **(** :ref:`EditorScenePostImportPlugin<class_EditorScenePostImportPlugin>` scene_import_plugin **)**
+- void **add_scene_post_import_plugin** **(** :ref:`EditorScenePostImportPlugin<class_EditorScenePostImportPlugin>` scene_import_plugin, :ref:`bool<class_bool>` first_priority=false **)**
 
 Add a :ref:`EditorScenePostImportPlugin<class_EditorScenePostImportPlugin>`. These plugins allow customizing the import process of 3D assets by adding new options to the import dialogs.
 
+If ``first_priority`` is ``true``, the new import plugin is inserted first in the list and takes precedence over pre-existing plugins.
+
 ----
 
 .. _class_EditorPlugin_method_add_spatial_gizmo_plugin:

+ 25 - 31
classes/class_enginedebugger.rst

@@ -21,29 +21,29 @@ Description
 Methods
 -------
 
-+-------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>` | :ref:`has_capture<class_EngineDebugger_method_has_capture>` **(** :ref:`StringName<class_StringName>` name **)**                                                                                                                                |
-+-------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>` | :ref:`has_profiler<class_EngineDebugger_method_has_profiler>` **(** :ref:`StringName<class_StringName>` name **)**                                                                                                                              |
-+-------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>` | :ref:`is_active<class_EngineDebugger_method_is_active>` **(** **)**                                                                                                                                                                             |
-+-------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>` | :ref:`is_profiling<class_EngineDebugger_method_is_profiling>` **(** :ref:`StringName<class_StringName>` name **)**                                                                                                                              |
-+-------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                    | :ref:`profiler_add_frame_data<class_EngineDebugger_method_profiler_add_frame_data>` **(** :ref:`StringName<class_StringName>` name, :ref:`Array<class_Array>` data **)**                                                                        |
-+-------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                    | :ref:`profiler_enable<class_EngineDebugger_method_profiler_enable>` **(** :ref:`StringName<class_StringName>` name, :ref:`bool<class_bool>` enable, :ref:`Array<class_Array>` arguments=[] **)**                                                |
-+-------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                    | :ref:`register_message_capture<class_EngineDebugger_method_register_message_capture>` **(** :ref:`StringName<class_StringName>` name, :ref:`Callable<class_Callable>` callable **)**                                                            |
-+-------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                    | :ref:`register_profiler<class_EngineDebugger_method_register_profiler>` **(** :ref:`StringName<class_StringName>` name, :ref:`Callable<class_Callable>` toggle, :ref:`Callable<class_Callable>` add, :ref:`Callable<class_Callable>` tick **)** |
-+-------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                    | :ref:`send_message<class_EngineDebugger_method_send_message>` **(** :ref:`String<class_String>` message, :ref:`Array<class_Array>` data **)**                                                                                                   |
-+-------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                    | :ref:`unregister_message_capture<class_EngineDebugger_method_unregister_message_capture>` **(** :ref:`StringName<class_StringName>` name **)**                                                                                                  |
-+-------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                    | :ref:`unregister_profiler<class_EngineDebugger_method_unregister_profiler>` **(** :ref:`StringName<class_StringName>` name **)**                                                                                                                |
-+-------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
++-------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>` | :ref:`has_capture<class_EngineDebugger_method_has_capture>` **(** :ref:`StringName<class_StringName>` name **)**                                                                                 |
++-------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>` | :ref:`has_profiler<class_EngineDebugger_method_has_profiler>` **(** :ref:`StringName<class_StringName>` name **)**                                                                               |
++-------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>` | :ref:`is_active<class_EngineDebugger_method_is_active>` **(** **)**                                                                                                                              |
++-------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>` | :ref:`is_profiling<class_EngineDebugger_method_is_profiling>` **(** :ref:`StringName<class_StringName>` name **)**                                                                               |
++-------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                    | :ref:`profiler_add_frame_data<class_EngineDebugger_method_profiler_add_frame_data>` **(** :ref:`StringName<class_StringName>` name, :ref:`Array<class_Array>` data **)**                         |
++-------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                    | :ref:`profiler_enable<class_EngineDebugger_method_profiler_enable>` **(** :ref:`StringName<class_StringName>` name, :ref:`bool<class_bool>` enable, :ref:`Array<class_Array>` arguments=[] **)** |
++-------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                    | :ref:`register_message_capture<class_EngineDebugger_method_register_message_capture>` **(** :ref:`StringName<class_StringName>` name, :ref:`Callable<class_Callable>` callable **)**             |
++-------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                    | :ref:`register_profiler<class_EngineDebugger_method_register_profiler>` **(** :ref:`StringName<class_StringName>` name, :ref:`EngineProfiler<class_EngineProfiler>` profiler **)**               |
++-------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                    | :ref:`send_message<class_EngineDebugger_method_send_message>` **(** :ref:`String<class_String>` message, :ref:`Array<class_Array>` data **)**                                                    |
++-------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                    | :ref:`unregister_message_capture<class_EngineDebugger_method_unregister_message_capture>` **(** :ref:`StringName<class_StringName>` name **)**                                                   |
++-------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                    | :ref:`unregister_profiler<class_EngineDebugger_method_unregister_profiler>` **(** :ref:`StringName<class_StringName>` name **)**                                                                 |
++-------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 
 Method Descriptions
 -------------------
@@ -108,15 +108,9 @@ Callable must accept a message string and a data array as argument. If the messa
 
 .. _class_EngineDebugger_method_register_profiler:
 
-- void **register_profiler** **(** :ref:`StringName<class_StringName>` name, :ref:`Callable<class_Callable>` toggle, :ref:`Callable<class_Callable>` add, :ref:`Callable<class_Callable>` tick **)**
+- void **register_profiler** **(** :ref:`StringName<class_StringName>` name, :ref:`EngineProfiler<class_EngineProfiler>` profiler **)**
 
-Registers a profiler with the given ``name``.
-
-\ ``toggle`` callable is called when the profiler is enabled/disabled. It must take an argument array as an argument.
-
-\ ``add`` callable is called when data is added to profiler using :ref:`profiler_add_frame_data<class_EngineDebugger_method_profiler_add_frame_data>`. It must take a data array as argument.
-
-\ ``tick`` callable is called at every active profiler iteration. It must take frame time, idle time, physics time, and physics idle time as arguments.
+Registers a profiler with the given ``name``. See :ref:`EngineProfiler<class_EngineProfiler>` for more information.
 
 ----
 

+ 64 - 0
classes/class_engineprofiler.rst

@@ -0,0 +1,64 @@
+:github_url: hide
+
+.. Generated automatically by doc/tools/make_rst.py in Godot's source tree.
+.. DO NOT EDIT THIS FILE, but the EngineProfiler.xml source instead.
+.. The source is found in doc/classes or modules/<name>/doc_classes.
+
+.. _class_EngineProfiler:
+
+EngineProfiler
+==============
+
+**Inherits:** :ref:`RefCounted<class_RefCounted>` **<** :ref:`Object<class_Object>`
+
+Base class for creating custom profilers.
+
+Description
+-----------
+
+This class can be used to implement custom profilers that are able to interact with the engine and editor debugger.
+
+See :ref:`EngineDebugger<class_EngineDebugger>` and :ref:`EditorDebuggerPlugin<class_EditorDebuggerPlugin>` for more information.
+
+Methods
+-------
+
++------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void | :ref:`_add_frame<class_EngineProfiler_method__add_frame>` **(** :ref:`Array<class_Array>` data **)** |virtual|                                                                                                                        |
++------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void | :ref:`_tick<class_EngineProfiler_method__tick>` **(** :ref:`float<class_float>` frame_time, :ref:`float<class_float>` idle_time, :ref:`float<class_float>` physics_time, :ref:`float<class_float>` physics_frame_time **)** |virtual| |
++------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void | :ref:`_toggle<class_EngineProfiler_method__toggle>` **(** :ref:`bool<class_bool>` enable, :ref:`Array<class_Array>` options **)** |virtual|                                                                                           |
++------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+Method Descriptions
+-------------------
+
+.. _class_EngineProfiler_method__add_frame:
+
+- void **_add_frame** **(** :ref:`Array<class_Array>` data **)** |virtual|
+
+Called when data is added to profiler using :ref:`EngineDebugger.profiler_add_frame_data<class_EngineDebugger_method_profiler_add_frame_data>`.
+
+----
+
+.. _class_EngineProfiler_method__tick:
+
+- void **_tick** **(** :ref:`float<class_float>` frame_time, :ref:`float<class_float>` idle_time, :ref:`float<class_float>` physics_time, :ref:`float<class_float>` physics_frame_time **)** |virtual|
+
+Called once every engine iteration when the profiler is active with information about the current frame.
+
+----
+
+.. _class_EngineProfiler_method__toggle:
+
+- void **_toggle** **(** :ref:`bool<class_bool>` enable, :ref:`Array<class_Array>` options **)** |virtual|
+
+Called when the profiler is enabled/disabled, along with a set of ``options``.
+
+.. |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.)`

+ 17 - 15
classes/class_environment.rst

@@ -137,17 +137,17 @@ Properties
 +------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------+-----------------------------+
 | :ref:`ReflectionSource<enum_Environment_ReflectionSource>` | :ref:`reflected_light_source<class_Environment_property_reflected_light_source>`                                             | ``0``                       |
 +------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------+-----------------------------+
-| :ref:`float<class_float>`                                  | :ref:`sdfgi_bounce_feedback<class_Environment_property_sdfgi_bounce_feedback>`                                               | ``0.0``                     |
+| :ref:`float<class_float>`                                  | :ref:`sdfgi_bounce_feedback<class_Environment_property_sdfgi_bounce_feedback>`                                               | ``0.5``                     |
 +------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------+-----------------------------+
 | :ref:`float<class_float>`                                  | :ref:`sdfgi_cascade0_distance<class_Environment_property_sdfgi_cascade0_distance>`                                           | ``12.8``                    |
 +------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------+-----------------------------+
-| :ref:`int<class_int>`                                      | :ref:`sdfgi_cascades<class_Environment_property_sdfgi_cascades>`                                                             | ``6``                       |
+| :ref:`int<class_int>`                                      | :ref:`sdfgi_cascades<class_Environment_property_sdfgi_cascades>`                                                             | ``4``                       |
 +------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------+-----------------------------+
 | :ref:`bool<class_bool>`                                    | :ref:`sdfgi_enabled<class_Environment_property_sdfgi_enabled>`                                                               | ``false``                   |
 +------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------+-----------------------------+
 | :ref:`float<class_float>`                                  | :ref:`sdfgi_energy<class_Environment_property_sdfgi_energy>`                                                                 | ``1.0``                     |
 +------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------+-----------------------------+
-| :ref:`float<class_float>`                                  | :ref:`sdfgi_max_distance<class_Environment_property_sdfgi_max_distance>`                                                     | ``819.2``                   |
+| :ref:`float<class_float>`                                  | :ref:`sdfgi_max_distance<class_Environment_property_sdfgi_max_distance>`                                                     | ``204.8``                   |
 +------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------+-----------------------------+
 | :ref:`float<class_float>`                                  | :ref:`sdfgi_min_cell_size<class_Environment_property_sdfgi_min_cell_size>`                                                   | ``0.2``                     |
 +------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------+-----------------------------+
@@ -155,11 +155,11 @@ Properties
 +------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------+-----------------------------+
 | :ref:`float<class_float>`                                  | :ref:`sdfgi_probe_bias<class_Environment_property_sdfgi_probe_bias>`                                                         | ``1.1``                     |
 +------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------+-----------------------------+
-| :ref:`bool<class_bool>`                                    | :ref:`sdfgi_read_sky_light<class_Environment_property_sdfgi_read_sky_light>`                                                 | ``false``                   |
+| :ref:`bool<class_bool>`                                    | :ref:`sdfgi_read_sky_light<class_Environment_property_sdfgi_read_sky_light>`                                                 | ``true``                    |
 +------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------+-----------------------------+
 | :ref:`bool<class_bool>`                                    | :ref:`sdfgi_use_occlusion<class_Environment_property_sdfgi_use_occlusion>`                                                   | ``false``                   |
 +------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------+-----------------------------+
-| :ref:`SDFGIYScale<enum_Environment_SDFGIYScale>`           | :ref:`sdfgi_y_scale<class_Environment_property_sdfgi_y_scale>`                                                               | ``0``                       |
+| :ref:`SDFGIYScale<enum_Environment_SDFGIYScale>`           | :ref:`sdfgi_y_scale<class_Environment_property_sdfgi_y_scale>`                                                               | ``1``                       |
 +------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------+-----------------------------+
 | :ref:`Sky<class_Sky>`                                      | :ref:`sky<class_Environment_property_sky>`                                                                                   |                             |
 +------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------+-----------------------------+
@@ -372,19 +372,19 @@ enum **GlowBlendMode**:
 
 .. _enum_Environment_SDFGIYScale:
 
-.. _class_Environment_constant_SDFGI_Y_SCALE_DISABLED:
+.. _class_Environment_constant_SDFGI_Y_SCALE_50_PERCENT:
 
 .. _class_Environment_constant_SDFGI_Y_SCALE_75_PERCENT:
 
-.. _class_Environment_constant_SDFGI_Y_SCALE_50_PERCENT:
+.. _class_Environment_constant_SDFGI_Y_SCALE_100_PERCENT:
 
 enum **SDFGIYScale**:
 
-- **SDFGI_Y_SCALE_DISABLED** = **0**
+- **SDFGI_Y_SCALE_50_PERCENT** = **0**
 
 - **SDFGI_Y_SCALE_75_PERCENT** = **1**
 
-- **SDFGI_Y_SCALE_50_PERCENT** = **2**
+- **SDFGI_Y_SCALE_100_PERCENT** = **2**
 
 Property Descriptions
 ---------------------
@@ -511,7 +511,9 @@ The ambient light's energy. The higher the value, the stronger the light.
 | *Getter*  | get_ambient_light_sky_contribution()      |
 +-----------+-------------------------------------------+
 
-Defines the amount of light that the sky brings on the scene. A value of 0 means that the sky's light emission has no effect on the scene illumination, thus all ambient illumination is provided by the ambient light. On the contrary, a value of 1 means that all the light that affects the scene is provided by the sky, thus the ambient light parameter has no effect on the scene.
+Defines the amount of light that the sky brings on the scene. A value of ``0.0`` means that the sky's light emission has no effect on the scene illumination, thus all ambient illumination is provided by the ambient light. On the contrary, a value of ``1.0`` means that *all* the light that affects the scene is provided by the sky, thus the ambient light parameter has no effect on the scene.
+
+\ **Note:** :ref:`ambient_light_sky_contribution<class_Environment_property_ambient_light_sky_contribution>` is internally clamped between ``0.0`` and ``1.0`` (inclusive).
 
 ----
 
@@ -1132,7 +1134,7 @@ The strength of the glow effect. This applies as the glow is blurred across the
 - :ref:`float<class_float>` **sdfgi_bounce_feedback**
 
 +-----------+----------------------------------+
-| *Default* | ``0.0``                          |
+| *Default* | ``0.5``                          |
 +-----------+----------------------------------+
 | *Setter*  | set_sdfgi_bounce_feedback(value) |
 +-----------+----------------------------------+
@@ -1160,7 +1162,7 @@ The strength of the glow effect. This applies as the glow is blurred across the
 - :ref:`int<class_int>` **sdfgi_cascades**
 
 +-----------+---------------------------+
-| *Default* | ``6``                     |
+| *Default* | ``4``                     |
 +-----------+---------------------------+
 | *Setter*  | set_sdfgi_cascades(value) |
 +-----------+---------------------------+
@@ -1210,7 +1212,7 @@ If ``true``, enables signed distance field global illumination for meshes that h
 - :ref:`float<class_float>` **sdfgi_max_distance**
 
 +-----------+-------------------------------+
-| *Default* | ``819.2``                     |
+| *Default* | ``204.8``                     |
 +-----------+-------------------------------+
 | *Setter*  | set_sdfgi_max_distance(value) |
 +-----------+-------------------------------+
@@ -1266,7 +1268,7 @@ If ``true``, enables signed distance field global illumination for meshes that h
 - :ref:`bool<class_bool>` **sdfgi_read_sky_light**
 
 +-----------+---------------------------------+
-| *Default* | ``false``                       |
+| *Default* | ``true``                        |
 +-----------+---------------------------------+
 | *Setter*  | set_sdfgi_read_sky_light(value) |
 +-----------+---------------------------------+
@@ -1294,7 +1296,7 @@ If ``true``, enables signed distance field global illumination for meshes that h
 - :ref:`SDFGIYScale<enum_Environment_SDFGIYScale>` **sdfgi_y_scale**
 
 +-----------+--------------------------+
-| *Default* | ``0``                    |
+| *Default* | ``1``                    |
 +-----------+--------------------------+
 | *Setter*  | set_sdfgi_y_scale(value) |
 +-----------+--------------------------+

+ 8 - 8
classes/class_float.rst

@@ -56,11 +56,11 @@ Operators
 +-------------------------------------+--------------------------------------------------------------------------------------------------------------+
 | :ref:`Vector2<class_Vector2>`       | :ref:`operator *<class_float_operator_mul_Vector2>` **(** :ref:`Vector2<class_Vector2>` right **)**          |
 +-------------------------------------+--------------------------------------------------------------------------------------------------------------+
-| :ref:`Vector2i<class_Vector2i>`     | :ref:`operator *<class_float_operator_mul_Vector2i>` **(** :ref:`Vector2i<class_Vector2i>` right **)**       |
+| :ref:`Vector2<class_Vector2>`       | :ref:`operator *<class_float_operator_mul_Vector2>` **(** :ref:`Vector2i<class_Vector2i>` right **)**        |
 +-------------------------------------+--------------------------------------------------------------------------------------------------------------+
 | :ref:`Vector3<class_Vector3>`       | :ref:`operator *<class_float_operator_mul_Vector3>` **(** :ref:`Vector3<class_Vector3>` right **)**          |
 +-------------------------------------+--------------------------------------------------------------------------------------------------------------+
-| :ref:`Vector3i<class_Vector3i>`     | :ref:`operator *<class_float_operator_mul_Vector3i>` **(** :ref:`Vector3i<class_Vector3i>` right **)**       |
+| :ref:`Vector3<class_Vector3>`       | :ref:`operator *<class_float_operator_mul_Vector3>` **(** :ref:`Vector3i<class_Vector3i>` right **)**        |
 +-------------------------------------+--------------------------------------------------------------------------------------------------------------+
 | :ref:`float<class_float>`           | :ref:`operator *<class_float_operator_mul_float>` **(** :ref:`float<class_float>` right **)**                |
 +-------------------------------------+--------------------------------------------------------------------------------------------------------------+
@@ -181,13 +181,13 @@ Multiplies each component of the :ref:`Vector2<class_Vector2>` by the given ``fl
 
 ----
 
-- :ref:`Vector2i<class_Vector2i>` **operator *** **(** :ref:`Vector2i<class_Vector2i>` right **)**
+- :ref:`Vector2<class_Vector2>` **operator *** **(** :ref:`Vector2i<class_Vector2i>` right **)**
 
-Multiplies each component of the :ref:`Vector2i<class_Vector2i>` by the given ``float`` truncated to an integer.
+Multiplies each component of the :ref:`Vector2i<class_Vector2i>` by the given ``float``. Returns a :ref:`Vector2<class_Vector2>`.
 
 ::
 
-    print(0.9 * Vector2i(10, 20)) # Prints "(0, 0)"
+    print(0.9 * Vector2i(10, 15)) # Prints "(9, 13.5)"
 
 ----
 
@@ -197,13 +197,13 @@ Multiplies each component of the :ref:`Vector3<class_Vector3>` by the given ``fl
 
 ----
 
-- :ref:`Vector3i<class_Vector3i>` **operator *** **(** :ref:`Vector3i<class_Vector3i>` right **)**
+- :ref:`Vector3<class_Vector3>` **operator *** **(** :ref:`Vector3i<class_Vector3i>` right **)**
 
-Multiplies each component of the :ref:`Vector3i<class_Vector3i>` by the given ``float`` truncated to an integer.
+Multiplies each component of the :ref:`Vector3i<class_Vector3i>` by the given ``float``. Returns a :ref:`Vector3<class_Vector3>`.
 
 ::
 
-    print(0.9 * Vector3i(10, 20, 30)) # Prints "(0, 0, 0)"
+    print(0.9 * Vector3i(10, 15, 20)) # Prints "(9, 13.5, 18)"
 
 ----
 

+ 46 - 28
classes/class_fontdata.rst

@@ -24,33 +24,35 @@ Supported font formats:
 Properties
 ----------
 
-+-----------------------------------------------+-------------------------------------------------------------------------------------------------------+-----------------------+
-| :ref:`bool<class_bool>`                       | :ref:`antialiased<class_FontData_property_antialiased>`                                               | ``true``              |
-+-----------------------------------------------+-------------------------------------------------------------------------------------------------------+-----------------------+
-| :ref:`PackedByteArray<class_PackedByteArray>` | :ref:`data<class_FontData_property_data>`                                                             | ``PackedByteArray()`` |
-+-----------------------------------------------+-------------------------------------------------------------------------------------------------------+-----------------------+
-| :ref:`int<class_int>`                         | :ref:`fixed_size<class_FontData_property_fixed_size>`                                                 | ``0``                 |
-+-----------------------------------------------+-------------------------------------------------------------------------------------------------------+-----------------------+
-| :ref:`String<class_String>`                   | :ref:`font_name<class_FontData_property_font_name>`                                                   | ``""``                |
-+-----------------------------------------------+-------------------------------------------------------------------------------------------------------+-----------------------+
-| :ref:`int<class_int>`                         | :ref:`font_style<class_FontData_property_font_style>`                                                 | ``0``                 |
-+-----------------------------------------------+-------------------------------------------------------------------------------------------------------+-----------------------+
-| :ref:`bool<class_bool>`                       | :ref:`force_autohinter<class_FontData_property_force_autohinter>`                                     | ``false``             |
-+-----------------------------------------------+-------------------------------------------------------------------------------------------------------+-----------------------+
-| :ref:`Hinting<enum_TextServer_Hinting>`       | :ref:`hinting<class_FontData_property_hinting>`                                                       | ``1``                 |
-+-----------------------------------------------+-------------------------------------------------------------------------------------------------------+-----------------------+
-| :ref:`int<class_int>`                         | :ref:`msdf_pixel_range<class_FontData_property_msdf_pixel_range>`                                     | ``16``                |
-+-----------------------------------------------+-------------------------------------------------------------------------------------------------------+-----------------------+
-| :ref:`int<class_int>`                         | :ref:`msdf_size<class_FontData_property_msdf_size>`                                                   | ``48``                |
-+-----------------------------------------------+-------------------------------------------------------------------------------------------------------+-----------------------+
-| :ref:`bool<class_bool>`                       | :ref:`multichannel_signed_distance_field<class_FontData_property_multichannel_signed_distance_field>` | ``false``             |
-+-----------------------------------------------+-------------------------------------------------------------------------------------------------------+-----------------------+
-| :ref:`Dictionary<class_Dictionary>`           | :ref:`opentype_feature_overrides<class_FontData_property_opentype_feature_overrides>`                 | ``{}``                |
-+-----------------------------------------------+-------------------------------------------------------------------------------------------------------+-----------------------+
-| :ref:`float<class_float>`                     | :ref:`oversampling<class_FontData_property_oversampling>`                                             | ``0.0``               |
-+-----------------------------------------------+-------------------------------------------------------------------------------------------------------+-----------------------+
-| :ref:`String<class_String>`                   | :ref:`style_name<class_FontData_property_style_name>`                                                 | ``""``                |
-+-----------------------------------------------+-------------------------------------------------------------------------------------------------------+-----------------------+
++-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+-----------------------+
+| :ref:`bool<class_bool>`                                         | :ref:`antialiased<class_FontData_property_antialiased>`                                               | ``true``              |
++-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+-----------------------+
+| :ref:`PackedByteArray<class_PackedByteArray>`                   | :ref:`data<class_FontData_property_data>`                                                             | ``PackedByteArray()`` |
++-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+-----------------------+
+| :ref:`int<class_int>`                                           | :ref:`fixed_size<class_FontData_property_fixed_size>`                                                 | ``0``                 |
++-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+-----------------------+
+| :ref:`String<class_String>`                                     | :ref:`font_name<class_FontData_property_font_name>`                                                   | ``""``                |
++-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+-----------------------+
+| :ref:`int<class_int>`                                           | :ref:`font_style<class_FontData_property_font_style>`                                                 | ``0``                 |
++-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+-----------------------+
+| :ref:`bool<class_bool>`                                         | :ref:`force_autohinter<class_FontData_property_force_autohinter>`                                     | ``false``             |
++-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+-----------------------+
+| :ref:`Hinting<enum_TextServer_Hinting>`                         | :ref:`hinting<class_FontData_property_hinting>`                                                       | ``1``                 |
++-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+-----------------------+
+| :ref:`int<class_int>`                                           | :ref:`msdf_pixel_range<class_FontData_property_msdf_pixel_range>`                                     | ``16``                |
++-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+-----------------------+
+| :ref:`int<class_int>`                                           | :ref:`msdf_size<class_FontData_property_msdf_size>`                                                   | ``48``                |
++-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+-----------------------+
+| :ref:`bool<class_bool>`                                         | :ref:`multichannel_signed_distance_field<class_FontData_property_multichannel_signed_distance_field>` | ``false``             |
++-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+-----------------------+
+| :ref:`Dictionary<class_Dictionary>`                             | :ref:`opentype_feature_overrides<class_FontData_property_opentype_feature_overrides>`                 | ``{}``                |
++-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+-----------------------+
+| :ref:`float<class_float>`                                       | :ref:`oversampling<class_FontData_property_oversampling>`                                             | ``0.0``               |
++-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+-----------------------+
+| :ref:`String<class_String>`                                     | :ref:`style_name<class_FontData_property_style_name>`                                                 | ``""``                |
++-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+-----------------------+
+| :ref:`SubpixelPositioning<enum_TextServer_SubpixelPositioning>` | :ref:`subpixel_positioning<class_FontData_property_subpixel_positioning>`                             | ``1``                 |
++-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+-----------------------+
 
 Methods
 -------
@@ -284,7 +286,7 @@ Font style flags, see :ref:`FontStyle<enum_TextServer_FontStyle>`.
 | *Getter*  | is_force_autohinter()       |
 +-----------+-----------------------------+
 
-If set to ``true``, auto-hinting is supported and preffered over font built-in hinting. Used by dynamic fonts only.
+If set to ``true``, auto-hinting is supported and preferred over font built-in hinting. Used by dynamic fonts only.
 
 ----
 
@@ -398,6 +400,22 @@ Font oversampling factor, if set to ``0.0`` global oversampling factor is used i
 
 Font style name.
 
+----
+
+.. _class_FontData_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.
+
 Method Descriptions
 -------------------
 

+ 5 - 1
classes/class_geometryinstance3d.rst

@@ -296,7 +296,11 @@ If a material is assigned to this property, it will be used instead of any mater
 | *Getter*  | get_transparency()      |
 +-----------+-------------------------+
 
-Transparency applied to the whole geometry. In spatial shaders, transparency is set as the default value of the ``ALPHA`` built-in.
+The transparency applied to the whole geometry (as a multiplier of the materials' existing transparency). ``0.0`` is fully opaque, while ``1.0`` is fully transparent. Values greater than ``0.0`` (exclusive) will force the geometry's materials to go through the transparent pipeline, which is slower to render and can exhibit rendering issues due to incorrect transparency sorting. However, unlike using a transparent material, setting :ref:`transparency<class_GeometryInstance3D_property_transparency>` to a value greater than ``0.0`` (exclusive) will *not* disable shadow rendering.
+
+In spatial shaders, ``1.0 - transparency`` is set as the default value of the ``ALPHA`` built-in.
+
+\ **Note:** :ref:`transparency<class_GeometryInstance3D_property_transparency>` is clamped between ``0.0`` and ``1.0``, so this property cannot be used to make transparent materials more opaque than they originally are.
 
 ----
 

+ 1 - 1
classes/class_gpuparticles2d.rst

@@ -128,7 +128,7 @@ enum **EmitFlags**:
 
 - **EMIT_FLAG_COLOR** = **8** --- Particle starts with specified color.
 
-- **EMIT_FLAG_CUSTOM** = **16** --- Particle starts with specificed ``CUSTOM`` data.
+- **EMIT_FLAG_CUSTOM** = **16** --- Particle starts with specified ``CUSTOM`` data.
 
 Property Descriptions
 ---------------------

+ 1 - 1
classes/class_gpuparticles3d.rst

@@ -146,7 +146,7 @@ enum **EmitFlags**:
 
 - **EMIT_FLAG_COLOR** = **8** --- Particle starts with specified color.
 
-- **EMIT_FLAG_CUSTOM** = **16** --- Particle starts with specificed ``CUSTOM`` data.
+- **EMIT_FLAG_CUSTOM** = **16** --- Particle starts with specified ``CUSTOM`` data.
 
 ----
 

+ 10 - 0
classes/class_gridmap.rst

@@ -88,6 +88,8 @@ Methods
 +---------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`Array<class_Array>`       | :ref:`get_used_cells<class_GridMap_method_get_used_cells>` **(** **)** |const|                                                                                                         |
 +---------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Array<class_Array>`       | :ref:`get_used_cells_by_item<class_GridMap_method_get_used_cells_by_item>` **(** :ref:`int<class_int>` item **)** |const|                                                              |
++---------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                            | :ref:`make_baked_meshes<class_GridMap_method_make_baked_meshes>` **(** :ref:`bool<class_bool>` gen_lightmap_uv=false, :ref:`float<class_float>` lightmap_uv_texel_size=0.1 **)**       |
 +---------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`Vector3<class_Vector3>`   | :ref:`map_to_world<class_GridMap_method_map_to_world>` **(** :ref:`Vector3i<class_Vector3i>` map_position **)** |const|                                                                |
@@ -395,6 +397,14 @@ Returns an array of :ref:`Vector3<class_Vector3>` with the non-empty cell coordi
 
 ----
 
+.. _class_GridMap_method_get_used_cells_by_item:
+
+- :ref:`Array<class_Array>` **get_used_cells_by_item** **(** :ref:`int<class_int>` item **)** |const|
+
+Returns an array of all cells with the given item index specified in ``item``.
+
+----
+
 .. _class_GridMap_method_make_baked_meshes:
 
 - void **make_baked_meshes** **(** :ref:`bool<class_bool>` gen_lightmap_uv=false, :ref:`float<class_float>` lightmap_uv_texel_size=0.1 **)**

+ 12 - 0
classes/class_image.rst

@@ -56,6 +56,8 @@ Methods
 +-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`Error<enum_@GlobalScope_Error>`         | :ref:`compress_from_channels<class_Image_method_compress_from_channels>` **(** :ref:`CompressMode<enum_Image_CompressMode>` mode, :ref:`UsedChannels<enum_Image_UsedChannels>` channels, :ref:`float<class_float>` lossy_quality=0.7 **)**                           |
 +-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Dictionary<class_Dictionary>`           | :ref:`compute_image_metrics<class_Image_method_compute_image_metrics>` **(** :ref:`Image<class_Image>` compared_image, :ref:`bool<class_bool>` use_luma **)**                                                                                                        |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                                          | :ref:`convert<class_Image_method_convert>` **(** :ref:`Format<enum_Image_Format>` format **)**                                                                                                                                                                       |
 +-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                                          | :ref:`copy_from<class_Image_method_copy_from>` **(** :ref:`Image<class_Image>` src **)**                                                                                                                                                                             |
@@ -535,6 +537,16 @@ Compresses the image to use less memory. Can not directly access pixel data whil
 
 ----
 
+.. _class_Image_method_compute_image_metrics:
+
+- :ref:`Dictionary<class_Dictionary>` **compute_image_metrics** **(** :ref:`Image<class_Image>` compared_image, :ref:`bool<class_bool>` use_luma **)**
+
+Compute image metrics on the current image and the compared image.
+
+The dictionary contains ``max``, ``mean``, ``mean_squared``, ``root_mean_squared`` and ``peak_snr``.
+
+----
+
 .. _class_Image_method_convert:
 
 - void **convert** **(** :ref:`Format<enum_Image_Format>` format **)**

+ 6 - 4
classes/class_input.rst

@@ -65,7 +65,7 @@ Methods
 +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`Vector2<class_Vector2>`                     | :ref:`get_joy_vibration_strength<class_Input_method_get_joy_vibration_strength>` **(** :ref:`int<class_int>` device **)**                                                                                                                                                                                    |
 +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Vector2<class_Vector2>`                     | :ref:`get_last_mouse_velocity<class_Input_method_get_last_mouse_velocity>` **(** **)** |const|                                                                                                                                                                                                               |
+| :ref:`Vector2<class_Vector2>`                     | :ref:`get_last_mouse_velocity<class_Input_method_get_last_mouse_velocity>` **(** **)**                                                                                                                                                                                                                       |
 +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`Vector3<class_Vector3>`                     | :ref:`get_magnetometer<class_Input_method_get_magnetometer>` **(** **)** |const|                                                                                                                                                                                                                             |
 +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
@@ -397,9 +397,9 @@ Returns the strength of the joypad vibration: x is the strength of the weak moto
 
 .. _class_Input_method_get_last_mouse_velocity:
 
-- :ref:`Vector2<class_Vector2>` **get_last_mouse_velocity** **(** **)** |const|
+- :ref:`Vector2<class_Vector2>` **get_last_mouse_velocity** **(** **)**
 
-Returns the mouse velocity for the last time the cursor was moved, and this until the next frame where the mouse moves. This means that even if the mouse is not moving, this function will still return the value of the last motion.
+Returns the last mouse velocity. To provide a precise and jitter-free velocity, mouse velocity is only calculated every 0.1s. Therefore, mouse velocity will lag mouse movements.
 
 ----
 
@@ -688,7 +688,9 @@ Vibrate Android and iOS devices.
 
 - void **warp_mouse_position** **(** :ref:`Vector2<class_Vector2>` to **)**
 
-Sets the mouse position to the specified vector.
+Sets the mouse position to the specified vector, provided in pixels and relative to an origin at the upper left corner of the game window.
+
+Mouse position is clipped to the limits of the screen resolution, or to the limits of the game window if :ref:`MouseMode<enum_Input_MouseMode>` is set to ``MOUSE_MODE_CONFINED`` or ``MOUSE_MODE_CONFINED_HIDDEN``.
 
 .. |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.)`

+ 6 - 2
classes/class_inputeventmouse.rst

@@ -67,7 +67,9 @@ The mouse button mask identifier, one of or a bitwise combination of the :ref:`M
 | *Getter*  | get_global_position()      |
 +-----------+----------------------------+
 
-The global mouse position relative to the current :ref:`Viewport<class_Viewport>`. If used in :ref:`Control._gui_input<class_Control_method__gui_input>` and if the current :ref:`Control<class_Control>` is not under the mouse, moving it will not update this value.
+When received in :ref:`Node._input<class_Node_method__input>` or :ref:`Node._unhandled_input<class_Node_method__unhandled_input>`, returns the mouse's position in the root :ref:`Viewport<class_Viewport>` using the coordinate system of the root :ref:`Viewport<class_Viewport>`.
+
+When received in :ref:`Control._gui_input<class_Control_method__gui_input>`, returns the mouse's position in the :ref:`CanvasLayer<class_CanvasLayer>` that the :ref:`Control<class_Control>` is in using the coordinate system of the :ref:`CanvasLayer<class_CanvasLayer>`.
 
 ----
 
@@ -83,7 +85,9 @@ The global mouse position relative to the current :ref:`Viewport<class_Viewport>
 | *Getter*  | get_position()      |
 +-----------+---------------------+
 
-The local mouse position relative to the :ref:`Viewport<class_Viewport>`. If used in :ref:`Control._gui_input<class_Control_method__gui_input>`, the position is relative to the current :ref:`Control<class_Control>` which is under the mouse. If the current  :ref:`Control<class_Control>` is not under the mouse, moving it will not update this value.
+When received in :ref:`Node._input<class_Node_method__input>` or :ref:`Node._unhandled_input<class_Node_method__unhandled_input>`, returns the mouse's position in the :ref:`Viewport<class_Viewport>` this :ref:`Node<class_Node>` is in using the coordinate system of this :ref:`Viewport<class_Viewport>`.
+
+When received in :ref:`Control._gui_input<class_Control_method__gui_input>`, returns the mouse's position in the :ref:`Control<class_Control>` using the local coordinate system of the :ref:`Control<class_Control>`.
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`

+ 9 - 1
classes/class_int.rst

@@ -96,6 +96,8 @@ Operators
 +-------------------------------------+------------------------------------------------------------------------------------------------------------+
 | :ref:`int<class_int>`               | :ref:`operator *<class_int_operator_mul_int>` **(** :ref:`int<class_int>` right **)**                      |
 +-------------------------------------+------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`         | :ref:`operator +<class_int_operator_sum_String>` **(** :ref:`String<class_String>` right **)**             |
++-------------------------------------+------------------------------------------------------------------------------------------------------------+
 | :ref:`float<class_float>`           | :ref:`operator +<class_int_operator_sum_float>` **(** :ref:`float<class_float>` right **)**                |
 +-------------------------------------+------------------------------------------------------------------------------------------------------------+
 | :ref:`int<class_int>`               | :ref:`operator +<class_int_operator_sum_int>` **(** :ref:`int<class_int>` right **)**                      |
@@ -283,7 +285,13 @@ Multiplies two ``int``\ s.
 
 ----
 
-.. _class_int_operator_sum_float:
+.. _class_int_operator_sum_String:
+
+- :ref:`String<class_String>` **operator +** **(** :ref:`String<class_String>` right **)**
+
+Adds Unicode character with code ``int`` to the :ref:`String<class_String>`.
+
+----
 
 - :ref:`float<class_float>` **operator +** **(** :ref:`float<class_float>` right **)**
 

+ 35 - 0
classes/class_javascript.rst

@@ -39,6 +39,19 @@ Methods
 +-------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`JavaScriptObject<class_JavaScriptObject>` | :ref:`get_interface<class_JavaScript_method_get_interface>` **(** :ref:`String<class_String>` interface **)**                                                                                                                   |
 +-------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                         | :ref:`pwa_needs_update<class_JavaScript_method_pwa_needs_update>` **(** **)** |const|                                                                                                                                           |
++-------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Error<enum_@GlobalScope_Error>`           | :ref:`pwa_update<class_JavaScript_method_pwa_update>` **(** **)**                                                                                                                                                               |
++-------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+Signals
+-------
+
+.. _class_JavaScript_signal_pwa_update_available:
+
+- **pwa_update_available** **(** **)**
+
+Emitted when an update for this progressive web app has been detected but is waiting to be activated because a previous version is active. See :ref:`pwa_update<class_JavaScript_method_pwa_update>` to force the update to take place immediately.
 
 Method Descriptions
 -------------------
@@ -89,6 +102,28 @@ If ``use_global_execution_context`` is ``true``, the code will be evaluated in t
 
 Returns an interface to a JavaScript object that can be used by scripts. The ``interface`` must be a valid property of the JavaScript ``window``. The callback must accept a single :ref:`Array<class_Array>` argument, which will contain the JavaScript ``arguments``. See :ref:`JavaScriptObject<class_JavaScriptObject>` for usage.
 
+----
+
+.. _class_JavaScript_method_pwa_needs_update:
+
+- :ref:`bool<class_bool>` **pwa_needs_update** **(** **)** |const|
+
+Returns ``true`` if a new version of the progressive web app is waiting to be activated.
+
+\ **Note:** Only relevant when exported as a Progressive Web App.
+
+----
+
+.. _class_JavaScript_method_pwa_update:
+
+- :ref:`Error<enum_@GlobalScope_Error>` **pwa_update** **(** **)**
+
+Performs the live update of the progressive web app. Forcing the new version to be installed and the page to be reloaded.
+
+\ **Note:** Your application will be **reloaded in all browser tabs**.
+
+\ **Note:** Only relevant when exported as a Progressive Web App and :ref:`pwa_needs_update<class_JavaScript_method_pwa_needs_update>` returns ``true``.
+
 .. |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_line2d.rst

@@ -255,7 +255,9 @@ The points that form the lines. The line is drawn between every point set in thi
 | *Getter*  | get_round_precision()      |
 +-----------+----------------------------+
 
-The smoothness of the rounded joints and caps. This is only used if a cap or joint is set as round.
+The smoothness of the rounded joints and caps. Higher values result in smoother corners, but are more demanding to render and update. This is only used if a cap or joint is set as round.
+
+\ **Note:** The default value is tuned for lines with the default :ref:`width<class_Line2D_property_width>`. For thin lines, this value should be reduced to a number between ``2`` and ``4`` to improve performance.
 
 ----
 

+ 1 - 1
classes/class_mesh.rst

@@ -280,7 +280,7 @@ enum **ArrayFormat**:
 
 - **ARRAY_FORMAT_INDEX** = **4096** --- Mesh array uses indices.
 
-- **ARRAY_FORMAT_BLEND_SHAPE_MASK** = **2147475463**
+- **ARRAY_FORMAT_BLEND_SHAPE_MASK** = **7**
 
 - **ARRAY_FORMAT_CUSTOM_BASE** = **13**
 

+ 19 - 29
classes/class_multiplayerapi.rst

@@ -29,17 +29,15 @@ It is possible to override the MultiplayerAPI instance used by specific Nodes by
 Properties
 ----------
 
-+-----------------------------------------------------------+-------------------------------------------------------------------------------------+-----------+
-| :ref:`bool<class_bool>`                                   | :ref:`allow_object_decoding<class_MultiplayerAPI_property_allow_object_decoding>`   | ``false`` |
-+-----------------------------------------------------------+-------------------------------------------------------------------------------------+-----------+
-| :ref:`MultiplayerPeer<class_MultiplayerPeer>`             | :ref:`multiplayer_peer<class_MultiplayerAPI_property_multiplayer_peer>`             |           |
-+-----------------------------------------------------------+-------------------------------------------------------------------------------------+-----------+
-| :ref:`bool<class_bool>`                                   | :ref:`refuse_new_connections<class_MultiplayerAPI_property_refuse_new_connections>` | ``false`` |
-+-----------------------------------------------------------+-------------------------------------------------------------------------------------+-----------+
-| :ref:`MultiplayerReplicator<class_MultiplayerReplicator>` | :ref:`replicator<class_MultiplayerAPI_property_replicator>`                         |           |
-+-----------------------------------------------------------+-------------------------------------------------------------------------------------+-----------+
-| :ref:`Node<class_Node>`                                   | :ref:`root_node<class_MultiplayerAPI_property_root_node>`                           |           |
-+-----------------------------------------------------------+-------------------------------------------------------------------------------------+-----------+
++-----------------------------------------------+-------------------------------------------------------------------------------------+------------------+
+| :ref:`bool<class_bool>`                       | :ref:`allow_object_decoding<class_MultiplayerAPI_property_allow_object_decoding>`   | ``false``        |
++-----------------------------------------------+-------------------------------------------------------------------------------------+------------------+
+| :ref:`MultiplayerPeer<class_MultiplayerPeer>` | :ref:`multiplayer_peer<class_MultiplayerAPI_property_multiplayer_peer>`             |                  |
++-----------------------------------------------+-------------------------------------------------------------------------------------+------------------+
+| :ref:`bool<class_bool>`                       | :ref:`refuse_new_connections<class_MultiplayerAPI_property_refuse_new_connections>` | ``false``        |
++-----------------------------------------------+-------------------------------------------------------------------------------------+------------------+
+| :ref:`NodePath<class_NodePath>`               | :ref:`root_path<class_MultiplayerAPI_property_root_path>`                           | ``NodePath("")`` |
++-----------------------------------------------+-------------------------------------------------------------------------------------+------------------+
 
 Methods
 -------
@@ -162,27 +160,19 @@ If ``true``, the MultiplayerAPI's :ref:`multiplayer_peer<class_MultiplayerAPI_pr
 
 ----
 
-.. _class_MultiplayerAPI_property_replicator:
+.. _class_MultiplayerAPI_property_root_path:
 
-- :ref:`MultiplayerReplicator<class_MultiplayerReplicator>` **replicator**
+- :ref:`NodePath<class_NodePath>` **root_path**
 
-+----------+------------------+
-| *Getter* | get_replicator() |
-+----------+------------------+
++-----------+----------------------+
+| *Default* | ``NodePath("")``     |
++-----------+----------------------+
+| *Setter*  | set_root_path(value) |
++-----------+----------------------+
+| *Getter*  | get_root_path()      |
++-----------+----------------------+
 
-----
-
-.. _class_MultiplayerAPI_property_root_node:
-
-- :ref:`Node<class_Node>` **root_node**
-
-+----------+----------------------+
-| *Setter* | set_root_node(value) |
-+----------+----------------------+
-| *Getter* | get_root_node()      |
-+----------+----------------------+
-
-The root node to use for RPCs. Instead of an absolute path, a relative path will be used to find the node upon which the RPC should be executed.
+The root path to use for RPCs and replication. Instead of an absolute path, a relative path will be used to find the node upon which the RPC should be executed.
 
 This effectively allows to have different branches of the scene tree to be managed by different MultiplayerAPI, allowing for example to run both client and server in the same scene.
 

+ 0 - 225
classes/class_multiplayerreplicator.rst

@@ -1,225 +0,0 @@
-:github_url: hide
-
-.. Generated automatically by doc/tools/make_rst.py in Godot's source tree.
-.. DO NOT EDIT THIS FILE, but the MultiplayerReplicator.xml source instead.
-.. The source is found in doc/classes or modules/<name>/doc_classes.
-
-.. _class_MultiplayerReplicator:
-
-MultiplayerReplicator
-=====================
-
-**Inherits:** :ref:`Object<class_Object>`
-
-
-
-Methods
--------
-
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Error<enum_@GlobalScope_Error>`         | :ref:`decode_state<class_MultiplayerReplicator_method_decode_state>` **(** :ref:`int<class_int>` scene_id, :ref:`Object<class_Object>` object, :ref:`PackedByteArray<class_PackedByteArray>` data, :ref:`bool<class_bool>` initial=true **)**                                                                                                    |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Error<enum_@GlobalScope_Error>`         | :ref:`despawn<class_MultiplayerReplicator_method_despawn>` **(** :ref:`int<class_int>` scene_id, :ref:`Object<class_Object>` object, :ref:`int<class_int>` peer_id=0 **)**                                                                                                                                                                       |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`PackedByteArray<class_PackedByteArray>` | :ref:`encode_state<class_MultiplayerReplicator_method_encode_state>` **(** :ref:`int<class_int>` scene_id, :ref:`Object<class_Object>` object, :ref:`bool<class_bool>` initial=true **)**                                                                                                                                                        |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Error<enum_@GlobalScope_Error>`         | :ref:`send_despawn<class_MultiplayerReplicator_method_send_despawn>` **(** :ref:`int<class_int>` peer_id, :ref:`int<class_int>` scene_id, :ref:`Variant<class_Variant>` data=null, :ref:`NodePath<class_NodePath>` path=NodePath("") **)**                                                                                                       |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Error<enum_@GlobalScope_Error>`         | :ref:`send_spawn<class_MultiplayerReplicator_method_send_spawn>` **(** :ref:`int<class_int>` peer_id, :ref:`int<class_int>` scene_id, :ref:`Variant<class_Variant>` data=null, :ref:`NodePath<class_NodePath>` path=NodePath("") **)**                                                                                                           |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Error<enum_@GlobalScope_Error>`         | :ref:`send_sync<class_MultiplayerReplicator_method_send_sync>` **(** :ref:`int<class_int>` peer_id, :ref:`int<class_int>` scene_id, :ref:`PackedByteArray<class_PackedByteArray>` data, :ref:`TransferMode<enum_@GlobalScope_TransferMode>` transfer_mode=2, :ref:`int<class_int>` channel=0 **)**                                               |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Error<enum_@GlobalScope_Error>`         | :ref:`spawn<class_MultiplayerReplicator_method_spawn>` **(** :ref:`int<class_int>` scene_id, :ref:`Object<class_Object>` object, :ref:`int<class_int>` peer_id=0 **)**                                                                                                                                                                           |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Error<enum_@GlobalScope_Error>`         | :ref:`spawn_config<class_MultiplayerReplicator_method_spawn_config>` **(** :ref:`int<class_int>` scene_id, :ref:`ReplicationMode<enum_MultiplayerReplicator_ReplicationMode>` spawn_mode, :ref:`StringName[]<class_StringName>` properties=[], :ref:`Callable<class_Callable>` custom_send, :ref:`Callable<class_Callable>` custom_receive **)** |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Error<enum_@GlobalScope_Error>`         | :ref:`sync_all<class_MultiplayerReplicator_method_sync_all>` **(** :ref:`int<class_int>` scene_id, :ref:`int<class_int>` peer_id=0 **)**                                                                                                                                                                                                         |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Error<enum_@GlobalScope_Error>`         | :ref:`sync_config<class_MultiplayerReplicator_method_sync_config>` **(** :ref:`int<class_int>` scene_id, :ref:`int<class_int>` interval, :ref:`StringName[]<class_StringName>` properties=[], :ref:`Callable<class_Callable>` custom_send, :ref:`Callable<class_Callable>` custom_receive **)**                                                  |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                          | :ref:`track<class_MultiplayerReplicator_method_track>` **(** :ref:`int<class_int>` scene_id, :ref:`Object<class_Object>` object **)**                                                                                                                                                                                                            |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                          | :ref:`untrack<class_MultiplayerReplicator_method_untrack>` **(** :ref:`int<class_int>` scene_id, :ref:`Object<class_Object>` object **)**                                                                                                                                                                                                        |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-
-Signals
--------
-
-.. _class_MultiplayerReplicator_signal_despawn_requested:
-
-- **despawn_requested** **(** :ref:`int<class_int>` id, :ref:`int<class_int>` scene_id, :ref:`Node<class_Node>` parent, :ref:`String<class_String>` name, :ref:`PackedByteArray<class_PackedByteArray>` data **)**
-
-Emitted when a network despawn request has been received from a client, or for a :ref:`PackedScene<class_PackedScene>` that has been configured as :ref:`REPLICATION_MODE_CUSTOM<class_MultiplayerReplicator_constant_REPLICATION_MODE_CUSTOM>`.
-
-----
-
-.. _class_MultiplayerReplicator_signal_despawned:
-
-- **despawned** **(** :ref:`int<class_int>` scene_id, :ref:`Node<class_Node>` node **)**
-
-Emitted on a client before deleting a local Node upon receiving a despawn request from the server.
-
-----
-
-.. _class_MultiplayerReplicator_signal_replicated_instance_added:
-
-- **replicated_instance_added** **(** :ref:`int<class_int>` scene_id, :ref:`Node<class_Node>` node **)**
-
-Emitted when an instance of a :ref:`PackedScene<class_PackedScene>` that has been configured for networking enters the :ref:`SceneTree<class_SceneTree>`. See :ref:`spawn_config<class_MultiplayerReplicator_method_spawn_config>`.
-
-----
-
-.. _class_MultiplayerReplicator_signal_replicated_instance_removed:
-
-- **replicated_instance_removed** **(** :ref:`int<class_int>` scene_id, :ref:`Node<class_Node>` node **)**
-
-Emitted when an instance of a :ref:`PackedScene<class_PackedScene>` that has been configured for networking leaves the :ref:`SceneTree<class_SceneTree>`. See :ref:`spawn_config<class_MultiplayerReplicator_method_spawn_config>`.
-
-----
-
-.. _class_MultiplayerReplicator_signal_spawn_requested:
-
-- **spawn_requested** **(** :ref:`int<class_int>` id, :ref:`int<class_int>` scene_id, :ref:`Node<class_Node>` parent, :ref:`String<class_String>` name, :ref:`PackedByteArray<class_PackedByteArray>` data **)**
-
-Emitted when a network spawn request has been received from a client, or for a :ref:`PackedScene<class_PackedScene>` that has been configured as :ref:`REPLICATION_MODE_CUSTOM<class_MultiplayerReplicator_constant_REPLICATION_MODE_CUSTOM>`.
-
-----
-
-.. _class_MultiplayerReplicator_signal_spawned:
-
-- **spawned** **(** :ref:`int<class_int>` scene_id, :ref:`Node<class_Node>` node **)**
-
-Emitted on a client after a new Node is instantiated locally and added to the SceneTree upon receiving a spawn request from the server.
-
-Enumerations
-------------
-
-.. _enum_MultiplayerReplicator_ReplicationMode:
-
-.. _class_MultiplayerReplicator_constant_REPLICATION_MODE_NONE:
-
-.. _class_MultiplayerReplicator_constant_REPLICATION_MODE_SERVER:
-
-.. _class_MultiplayerReplicator_constant_REPLICATION_MODE_CUSTOM:
-
-enum **ReplicationMode**:
-
-- **REPLICATION_MODE_NONE** = **0** --- Used with :ref:`spawn_config<class_MultiplayerReplicator_method_spawn_config>` to identify a :ref:`PackedScene<class_PackedScene>` that should not be replicated.
-
-- **REPLICATION_MODE_SERVER** = **1** --- Used with :ref:`spawn_config<class_MultiplayerReplicator_method_spawn_config>` to identify a :ref:`PackedScene<class_PackedScene>` that should be automatically replicated from server to clients.
-
-- **REPLICATION_MODE_CUSTOM** = **2** --- Used with :ref:`spawn_config<class_MultiplayerReplicator_method_spawn_config>` to identify a :ref:`PackedScene<class_PackedScene>` that can be manually replicated among peers.
-
-Method Descriptions
--------------------
-
-.. _class_MultiplayerReplicator_method_decode_state:
-
-- :ref:`Error<enum_@GlobalScope_Error>` **decode_state** **(** :ref:`int<class_int>` scene_id, :ref:`Object<class_Object>` object, :ref:`PackedByteArray<class_PackedByteArray>` data, :ref:`bool<class_bool>` initial=true **)**
-
-Decode the given ``data`` representing a spawnable state into ``object`` using the configuration associated with the provided ``scene_id``. This function is called automatically when a client receives a server spawn for a scene with :ref:`REPLICATION_MODE_SERVER<class_MultiplayerReplicator_constant_REPLICATION_MODE_SERVER>`. See :ref:`spawn_config<class_MultiplayerReplicator_method_spawn_config>`.
-
-Tip: You may find this function useful in servers when parsing spawn requests from clients, or when implementing your own logic with :ref:`REPLICATION_MODE_CUSTOM<class_MultiplayerReplicator_constant_REPLICATION_MODE_CUSTOM>`.
-
-----
-
-.. _class_MultiplayerReplicator_method_despawn:
-
-- :ref:`Error<enum_@GlobalScope_Error>` **despawn** **(** :ref:`int<class_int>` scene_id, :ref:`Object<class_Object>` object, :ref:`int<class_int>` peer_id=0 **)**
-
-Request a despawn for the scene identified by ``scene_id`` to the given ``peer_id``. This will either trigger the default behavior, or invoke the custom spawn/despawn callables specified in :ref:`spawn_config<class_MultiplayerReplicator_method_spawn_config>`. See :ref:`send_despawn<class_MultiplayerReplicator_method_send_despawn>` for the default behavior.
-
-----
-
-.. _class_MultiplayerReplicator_method_encode_state:
-
-- :ref:`PackedByteArray<class_PackedByteArray>` **encode_state** **(** :ref:`int<class_int>` scene_id, :ref:`Object<class_Object>` object, :ref:`bool<class_bool>` initial=true **)**
-
-Encode the given ``object`` using the configuration associated with the provided ``scene_id``. This function is called automatically when the server spawns scenes with :ref:`REPLICATION_MODE_SERVER<class_MultiplayerReplicator_constant_REPLICATION_MODE_SERVER>`. See :ref:`spawn_config<class_MultiplayerReplicator_method_spawn_config>`.
-
-Tip: You may find this function useful when requesting spawns from clients to server, or when implementing your own logic with :ref:`REPLICATION_MODE_CUSTOM<class_MultiplayerReplicator_constant_REPLICATION_MODE_CUSTOM>`.
-
-----
-
-.. _class_MultiplayerReplicator_method_send_despawn:
-
-- :ref:`Error<enum_@GlobalScope_Error>` **send_despawn** **(** :ref:`int<class_int>` peer_id, :ref:`int<class_int>` scene_id, :ref:`Variant<class_Variant>` data=null, :ref:`NodePath<class_NodePath>` path=NodePath("") **)**
-
-Sends a despawn request for the scene identified by ``scene_id`` to the given ``peer_id`` (see :ref:`MultiplayerPeer.set_target_peer<class_MultiplayerPeer_method_set_target_peer>`). If the scene is configured as :ref:`REPLICATION_MODE_SERVER<class_MultiplayerReplicator_constant_REPLICATION_MODE_SERVER>` (see :ref:`spawn_config<class_MultiplayerReplicator_method_spawn_config>`) and the request is sent by the server (see :ref:`MultiplayerAPI.is_server<class_MultiplayerAPI_method_is_server>`), the receiving peer(s) will automatically queue for deletion the node at ``path`` and emit the signal :ref:`despawned<class_MultiplayerReplicator_signal_despawned>`. In all other cases no deletion happens, and the signal :ref:`despawn_requested<class_MultiplayerReplicator_signal_despawn_requested>` is emitted instead.
-
-----
-
-.. _class_MultiplayerReplicator_method_send_spawn:
-
-- :ref:`Error<enum_@GlobalScope_Error>` **send_spawn** **(** :ref:`int<class_int>` peer_id, :ref:`int<class_int>` scene_id, :ref:`Variant<class_Variant>` data=null, :ref:`NodePath<class_NodePath>` path=NodePath("") **)**
-
-Sends a spawn request for the scene identified by ``scene_id`` to the given ``peer_id`` (see :ref:`MultiplayerPeer.set_target_peer<class_MultiplayerPeer_method_set_target_peer>`). If the scene is configured as :ref:`REPLICATION_MODE_SERVER<class_MultiplayerReplicator_constant_REPLICATION_MODE_SERVER>` (see :ref:`spawn_config<class_MultiplayerReplicator_method_spawn_config>`) and the request is sent by the server (see :ref:`MultiplayerAPI.is_server<class_MultiplayerAPI_method_is_server>`), the receiving peer(s) will automatically instantiate that scene, add it to the :ref:`SceneTree<class_SceneTree>` at the given ``path`` and emit the signal :ref:`spawned<class_MultiplayerReplicator_signal_spawned>`. In all other cases no instantiation happens, and the signal :ref:`spawn_requested<class_MultiplayerReplicator_signal_spawn_requested>` is emitted instead.
-
-----
-
-.. _class_MultiplayerReplicator_method_send_sync:
-
-- :ref:`Error<enum_@GlobalScope_Error>` **send_sync** **(** :ref:`int<class_int>` peer_id, :ref:`int<class_int>` scene_id, :ref:`PackedByteArray<class_PackedByteArray>` data, :ref:`TransferMode<enum_@GlobalScope_TransferMode>` transfer_mode=2, :ref:`int<class_int>` channel=0 **)**
-
-Sends a sync request for the instances of the scene identified by ``scene_id`` to the given ``peer_id`` (see :ref:`MultiplayerPeer.set_target_peer<class_MultiplayerPeer_method_set_target_peer>`). This function can only be called manually when overriding the send and receive sync functions (see :ref:`sync_config<class_MultiplayerReplicator_method_sync_config>`).
-
-----
-
-.. _class_MultiplayerReplicator_method_spawn:
-
-- :ref:`Error<enum_@GlobalScope_Error>` **spawn** **(** :ref:`int<class_int>` scene_id, :ref:`Object<class_Object>` object, :ref:`int<class_int>` peer_id=0 **)**
-
-Request a spawn for the scene identified by ``scene_id`` to the given ``peer_id``. This will either trigger the default behavior, or invoke the custom spawn/despawn callables specified in :ref:`spawn_config<class_MultiplayerReplicator_method_spawn_config>`. See :ref:`send_spawn<class_MultiplayerReplicator_method_send_spawn>` for the default behavior.
-
-----
-
-.. _class_MultiplayerReplicator_method_spawn_config:
-
-- :ref:`Error<enum_@GlobalScope_Error>` **spawn_config** **(** :ref:`int<class_int>` scene_id, :ref:`ReplicationMode<enum_MultiplayerReplicator_ReplicationMode>` spawn_mode, :ref:`StringName[]<class_StringName>` properties=[], :ref:`Callable<class_Callable>` custom_send, :ref:`Callable<class_Callable>` custom_receive **)**
-
-Configures the MultiplayerReplicator to track instances of the :ref:`PackedScene<class_PackedScene>` identified by ``scene_id`` (see :ref:`ResourceLoader.get_resource_uid<class_ResourceLoader_method_get_resource_uid>`) for the purpose of network replication. When ``mode`` is :ref:`REPLICATION_MODE_SERVER<class_MultiplayerReplicator_constant_REPLICATION_MODE_SERVER>`, the specified ``properties`` will also be replicated to clients during the initial spawn. You can optionally specify a ``custom_send`` and a ``custom_receive`` to override the default behavior and customize the spawn/despawn proecess.
-
-Tip: You can use a custom property in the scene main script to return a customly optimized state representation.
-
-----
-
-.. _class_MultiplayerReplicator_method_sync_all:
-
-- :ref:`Error<enum_@GlobalScope_Error>` **sync_all** **(** :ref:`int<class_int>` scene_id, :ref:`int<class_int>` peer_id=0 **)**
-
-Manually request a sync for all the instances of the scene identified by ``scene_id``. This function will trigger the default sync behavior, or call your send custom send callable if specified in :ref:`sync_config<class_MultiplayerReplicator_method_sync_config>`.
-
-\ **Note:** The default implementation only allow syncing from server to clients.
-
-----
-
-.. _class_MultiplayerReplicator_method_sync_config:
-
-- :ref:`Error<enum_@GlobalScope_Error>` **sync_config** **(** :ref:`int<class_int>` scene_id, :ref:`int<class_int>` interval, :ref:`StringName[]<class_StringName>` properties=[], :ref:`Callable<class_Callable>` custom_send, :ref:`Callable<class_Callable>` custom_receive **)**
-
-Configures the MultiplayerReplicator to sync instances of the :ref:`PackedScene<class_PackedScene>` identified by ``scene_id`` (see :ref:`ResourceLoader.get_resource_uid<class_ResourceLoader_method_get_resource_uid>`) for the purpose of network replication at the desired ``interval`` (in milliseconds). The specified ``properties`` will be part of the state sync. You can optionally specify a ``custom_send`` and a ``custom_receive`` to override the default behavior and customize the synchronization proecess.
-
-Tip: You can use a custom property in the scene main script to return a customly optimized state representation (having a single property that returns a PackedByteArray is highly recommended when dealing with many instances).
-
-----
-
-.. _class_MultiplayerReplicator_method_track:
-
-- void **track** **(** :ref:`int<class_int>` scene_id, :ref:`Object<class_Object>` object **)**
-
-Track the given ``object`` as an instance of the scene identified by ``scene_id``. This object will be passed to your custom sync callables (see :ref:`sync_config<class_MultiplayerReplicator_method_sync_config>`). Tracking and untracking is automatic in :ref:`REPLICATION_MODE_SERVER<class_MultiplayerReplicator_constant_REPLICATION_MODE_SERVER>`.
-
-----
-
-.. _class_MultiplayerReplicator_method_untrack:
-
-- void **untrack** **(** :ref:`int<class_int>` scene_id, :ref:`Object<class_Object>` object **)**
-
-Untrack the given ``object``. This object will no longer be passed to your custom sync callables (see :ref:`sync_config<class_MultiplayerReplicator_method_sync_config>`). Tracking and untracking is automatic in :ref:`REPLICATION_MODE_SERVER<class_MultiplayerReplicator_constant_REPLICATION_MODE_SERVER>`.
-
-.. |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.)`

+ 126 - 0
classes/class_multiplayerspawner.rst

@@ -0,0 +1,126 @@
+:github_url: hide
+
+.. Generated automatically by doc/tools/make_rst.py in Godot's source tree.
+.. DO NOT EDIT THIS FILE, but the MultiplayerSpawner.xml source instead.
+.. The source is found in doc/classes or modules/<name>/doc_classes.
+
+.. _class_MultiplayerSpawner:
+
+MultiplayerSpawner
+==================
+
+**Inherits:** :ref:`Node<class_Node>` **<** :ref:`Object<class_Object>`
+
+
+
+Properties
+----------
+
++-----------------------------------------+-------------------------------------------------------------------+------------------+
+| :ref:`bool<class_bool>`                 | :ref:`auto_spawn<class_MultiplayerSpawner_property_auto_spawn>`   | ``false``        |
++-----------------------------------------+-------------------------------------------------------------------+------------------+
+| :ref:`PackedScene[]<class_PackedScene>` | :ref:`replication<class_MultiplayerSpawner_property_replication>` | ``[]``           |
++-----------------------------------------+-------------------------------------------------------------------+------------------+
+| :ref:`int<class_int>`                   | :ref:`spawn_limit<class_MultiplayerSpawner_property_spawn_limit>` | ``0``            |
++-----------------------------------------+-------------------------------------------------------------------+------------------+
+| :ref:`NodePath<class_NodePath>`         | :ref:`spawn_path<class_MultiplayerSpawner_property_spawn_path>`   | ``NodePath("")`` |
++-----------------------------------------+-------------------------------------------------------------------+------------------+
+
+Methods
+-------
+
++-----------------------------+------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Object<class_Object>` | :ref:`_spawn_custom<class_MultiplayerSpawner_method__spawn_custom>` **(** :ref:`Variant<class_Variant>` data **)** |virtual| |
++-----------------------------+------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Node<class_Node>`     | :ref:`spawn<class_MultiplayerSpawner_method_spawn>` **(** :ref:`Variant<class_Variant>` data=null **)**                      |
++-----------------------------+------------------------------------------------------------------------------------------------------------------------------+
+
+Signals
+-------
+
+.. _class_MultiplayerSpawner_signal_despawned:
+
+- **despawned** **(** :ref:`int<class_int>` scene_id, :ref:`Node<class_Node>` node **)**
+
+----
+
+.. _class_MultiplayerSpawner_signal_spawned:
+
+- **spawned** **(** :ref:`int<class_int>` scene_id, :ref:`Node<class_Node>` node **)**
+
+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_replication:
+
+- :ref:`PackedScene[]<class_PackedScene>` **replication**
+
++-----------+-----------------------------+
+| *Default* | ``[]``                      |
++-----------+-----------------------------+
+| *Setter*  | set_spawnable_scenes(value) |
++-----------+-----------------------------+
+| *Getter*  | get_spawnable_scenes()      |
++-----------+-----------------------------+
+
+----
+
+.. _class_MultiplayerSpawner_property_spawn_limit:
+
+- :ref:`int<class_int>` **spawn_limit**
+
++-----------+------------------------+
+| *Default* | ``0``                  |
++-----------+------------------------+
+| *Setter*  | set_spawn_limit(value) |
++-----------+------------------------+
+| *Getter*  | get_spawn_limit()      |
++-----------+------------------------+
+
+----
+
+.. _class_MultiplayerSpawner_property_spawn_path:
+
+- :ref:`NodePath<class_NodePath>` **spawn_path**
+
++-----------+-----------------------+
+| *Default* | ``NodePath("")``      |
++-----------+-----------------------+
+| *Setter*  | set_spawn_path(value) |
++-----------+-----------------------+
+| *Getter*  | get_spawn_path()      |
++-----------+-----------------------+
+
+Method Descriptions
+-------------------
+
+.. _class_MultiplayerSpawner_method__spawn_custom:
+
+- :ref:`Object<class_Object>` **_spawn_custom** **(** :ref:`Variant<class_Variant>` data **)** |virtual|
+
+----
+
+.. _class_MultiplayerSpawner_method_spawn:
+
+- :ref:`Node<class_Node>` **spawn** **(** :ref:`Variant<class_Variant>` data=null **)**
+
+.. |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.)`

+ 73 - 0
classes/class_multiplayersynchronizer.rst

@@ -0,0 +1,73 @@
+:github_url: hide
+
+.. Generated automatically by doc/tools/make_rst.py in Godot's source tree.
+.. DO NOT EDIT THIS FILE, but the MultiplayerSynchronizer.xml source instead.
+.. The source is found in doc/classes or modules/<name>/doc_classes.
+
+.. _class_MultiplayerSynchronizer:
+
+MultiplayerSynchronizer
+=======================
+
+**Inherits:** :ref:`Node<class_Node>` **<** :ref:`Object<class_Object>`
+
+
+
+Properties
+----------
+
++-------------------------------------------------------------+------------------------------------------------------------------------------------------+------------------+
+| :ref:`float<class_float>`                                   | :ref:`replication_interval<class_MultiplayerSynchronizer_property_replication_interval>` | ``0.0``          |
++-------------------------------------------------------------+------------------------------------------------------------------------------------------+------------------+
+| :ref:`SceneReplicationConfig<class_SceneReplicationConfig>` | :ref:`resource<class_MultiplayerSynchronizer_property_resource>`                         |                  |
++-------------------------------------------------------------+------------------------------------------------------------------------------------------+------------------+
+| :ref:`NodePath<class_NodePath>`                             | :ref:`root_path<class_MultiplayerSynchronizer_property_root_path>`                       | ``NodePath("")`` |
++-------------------------------------------------------------+------------------------------------------------------------------------------------------+------------------+
+
+Property Descriptions
+---------------------
+
+.. _class_MultiplayerSynchronizer_property_replication_interval:
+
+- :ref:`float<class_float>` **replication_interval**
+
++-----------+---------------------------------+
+| *Default* | ``0.0``                         |
++-----------+---------------------------------+
+| *Setter*  | set_replication_interval(value) |
++-----------+---------------------------------+
+| *Getter*  | get_replication_interval()      |
++-----------+---------------------------------+
+
+----
+
+.. _class_MultiplayerSynchronizer_property_resource:
+
+- :ref:`SceneReplicationConfig<class_SceneReplicationConfig>` **resource**
+
++----------+-------------------------------+
+| *Setter* | set_replication_config(value) |
++----------+-------------------------------+
+| *Getter* | get_replication_config()      |
++----------+-------------------------------+
+
+----
+
+.. _class_MultiplayerSynchronizer_property_root_path:
+
+- :ref:`NodePath<class_NodePath>` **root_path**
+
++-----------+----------------------+
+| *Default* | ``NodePath("")``     |
++-----------+----------------------+
+| *Setter*  | set_root_path(value) |
++-----------+----------------------+
+| *Getter*  | get_root_path()      |
++-----------+----------------------+
+
+.. |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.)`

+ 48 - 16
classes/class_node.rst

@@ -11,7 +11,7 @@ Node
 
 **Inherits:** :ref:`Object<class_Object>`
 
-**Inherited By:** :ref:`AnimationPlayer<class_AnimationPlayer>`, :ref:`AnimationTree<class_AnimationTree>`, :ref:`AudioStreamPlayer<class_AudioStreamPlayer>`, :ref:`CanvasItem<class_CanvasItem>`, :ref:`CanvasLayer<class_CanvasLayer>`, :ref:`EditorFileSystem<class_EditorFileSystem>`, :ref:`EditorInterface<class_EditorInterface>`, :ref:`EditorPlugin<class_EditorPlugin>`, :ref:`EditorResourcePreview<class_EditorResourcePreview>`, :ref:`HTTPRequest<class_HTTPRequest>`, :ref:`InstancePlaceholder<class_InstancePlaceholder>`, :ref:`NavigationAgent2D<class_NavigationAgent2D>`, :ref:`NavigationAgent3D<class_NavigationAgent3D>`, :ref:`NavigationObstacle2D<class_NavigationObstacle2D>`, :ref:`NavigationObstacle3D<class_NavigationObstacle3D>`, :ref:`Node3D<class_Node3D>`, :ref:`ResourcePreloader<class_ResourcePreloader>`, :ref:`ShaderGlobalsOverride<class_ShaderGlobalsOverride>`, :ref:`SkeletonIK3D<class_SkeletonIK3D>`, :ref:`Timer<class_Timer>`, :ref:`Viewport<class_Viewport>`, :ref:`WorldEnvironment<class_WorldEnvironment>`
+**Inherited By:** :ref:`AnimationPlayer<class_AnimationPlayer>`, :ref:`AnimationTree<class_AnimationTree>`, :ref:`AudioStreamPlayer<class_AudioStreamPlayer>`, :ref:`CanvasItem<class_CanvasItem>`, :ref:`CanvasLayer<class_CanvasLayer>`, :ref:`EditorFileSystem<class_EditorFileSystem>`, :ref:`EditorInterface<class_EditorInterface>`, :ref:`EditorPlugin<class_EditorPlugin>`, :ref:`EditorResourcePreview<class_EditorResourcePreview>`, :ref:`HTTPRequest<class_HTTPRequest>`, :ref:`InstancePlaceholder<class_InstancePlaceholder>`, :ref:`MultiplayerSpawner<class_MultiplayerSpawner>`, :ref:`MultiplayerSynchronizer<class_MultiplayerSynchronizer>`, :ref:`NavigationAgent2D<class_NavigationAgent2D>`, :ref:`NavigationAgent3D<class_NavigationAgent3D>`, :ref:`NavigationObstacle2D<class_NavigationObstacle2D>`, :ref:`NavigationObstacle3D<class_NavigationObstacle3D>`, :ref:`Node3D<class_Node3D>`, :ref:`ResourcePreloader<class_ResourcePreloader>`, :ref:`ShaderGlobalsOverride<class_ShaderGlobalsOverride>`, :ref:`SkeletonIK3D<class_SkeletonIK3D>`, :ref:`Timer<class_Timer>`, :ref:`Viewport<class_Viewport>`, :ref:`WorldEnvironment<class_WorldEnvironment>`
 
 Base class for all *scene* objects.
 
@@ -104,7 +104,7 @@ Methods
 +---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`Node<class_Node>`                           | :ref:`duplicate<class_Node_method_duplicate>` **(** :ref:`int<class_int>` flags=15 **)** |const|                                                                                                                                                                                                           |
 +---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Node<class_Node>`                           | :ref:`find_node<class_Node_method_find_node>` **(** :ref:`String<class_String>` mask, :ref:`bool<class_bool>` recursive=true, :ref:`bool<class_bool>` owned=true **)** |const|                                                                                                                             |
+| :ref:`Node[]<class_Node>`                         | :ref:`find_nodes<class_Node_method_find_nodes>` **(** :ref:`String<class_String>` mask, :ref:`String<class_String>` type="", :ref:`bool<class_bool>` recursive=true, :ref:`bool<class_bool>` owned=true **)** |const|                                                                                      |
 +---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`Node<class_Node>`                           | :ref:`find_parent<class_Node_method_find_parent>` **(** :ref:`String<class_String>` mask **)** |const|                                                                                                                                                                                                     |
 +---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
@@ -234,6 +234,22 @@ Methods
 Signals
 -------
 
+.. _class_Node_signal_child_entered_tree:
+
+- **child_entered_tree** **(** :ref:`Node<class_Node>` node **)**
+
+Emitted when a child node enters the scene tree, either because it entered on its own or because this node entered with it.
+
+----
+
+.. _class_Node_signal_child_exited_tree:
+
+- **child_exited_tree** **(** :ref:`Node<class_Node>` node **)**
+
+Emitted when a child node exits the scene tree, either because it exited on its own or because this node exited.
+
+----
+
 .. _class_Node_signal_ready:
 
 - **ready** **(** **)**
@@ -400,6 +416,12 @@ Constants
 
 .. _class_Node_constant_NOTIFICATION_WM_SIZE_CHANGED:
 
+.. _class_Node_constant_NOTIFICATION_WM_DPI_CHANGE:
+
+.. _class_Node_constant_NOTIFICATION_VP_MOUSE_ENTER:
+
+.. _class_Node_constant_NOTIFICATION_VP_MOUSE_EXIT:
+
 .. _class_Node_constant_NOTIFICATION_OS_MEMORY_WARNING:
 
 .. _class_Node_constant_NOTIFICATION_TRANSLATION_CHANGED:
@@ -486,6 +508,12 @@ Specific to the Android platform.
 
 - **NOTIFICATION_WM_SIZE_CHANGED** = **1008**
 
+- **NOTIFICATION_WM_DPI_CHANGE** = **1009**
+
+- **NOTIFICATION_VP_MOUSE_ENTER** = **1010** --- Notification received when the mouse enters the viewport.
+
+- **NOTIFICATION_VP_MOUSE_EXIT** = **1011** --- Notification received when the mouse leaves the viewport.
+
 - **NOTIFICATION_OS_MEMORY_WARNING** = **2009** --- Notification received from the OS when the application is exceeding its allocated memory.
 
 Specific to the iOS platform.
@@ -688,7 +716,7 @@ To consume the input event and stop it propagating further to other nodes, :ref:
 
 For gameplay input, :ref:`_unhandled_input<class_Node_method__unhandled_input>` and :ref:`_unhandled_key_input<class_Node_method__unhandled_key_input>` are usually a better fit as they allow the GUI to intercept the events first.
 
-\ **Note:** This method is only called if the node is present in the scene tree (i.e. if it's not orphan).
+\ **Note:** This method is only called if the node is present in the scene tree (i.e. if it's not an orphan).
 
 ----
 
@@ -702,7 +730,7 @@ It is only called if physics processing is enabled, which is done automatically
 
 Corresponds to the :ref:`NOTIFICATION_PHYSICS_PROCESS<class_Node_constant_NOTIFICATION_PHYSICS_PROCESS>` notification in :ref:`Object._notification<class_Object_method__notification>`.
 
-\ **Note:** This method is only called if the node is present in the scene tree (i.e. if it's not orphan).
+\ **Note:** This method is only called if the node is present in the scene tree (i.e. if it's not an orphan).
 
 ----
 
@@ -716,7 +744,7 @@ It is only called if processing is enabled, which is done automatically if this
 
 Corresponds to the :ref:`NOTIFICATION_PROCESS<class_Node_constant_NOTIFICATION_PROCESS>` notification in :ref:`Object._notification<class_Object_method__notification>`.
 
-\ **Note:** This method is only called if the node is present in the scene tree (i.e. if it's not orphan).
+\ **Note:** This method is only called if the node is present in the scene tree (i.e. if it's not an orphan).
 
 ----
 
@@ -726,11 +754,11 @@ Corresponds to the :ref:`NOTIFICATION_PROCESS<class_Node_constant_NOTIFICATION_P
 
 Called when the node is "ready", i.e. when both the node and its children have entered the scene tree. If the node has children, their :ref:`_ready<class_Node_method__ready>` callbacks get triggered first, and the parent node will receive the ready notification afterwards.
 
-Corresponds to the :ref:`NOTIFICATION_READY<class_Node_constant_NOTIFICATION_READY>` notification in :ref:`Object._notification<class_Object_method__notification>`. See also the ``onready`` keyword for variables.
+Corresponds to the :ref:`NOTIFICATION_READY<class_Node_constant_NOTIFICATION_READY>` notification in :ref:`Object._notification<class_Object_method__notification>`. See also the ``@onready`` annotation for variables.
 
 Usually used for initialization. For even earlier initialization, :ref:`Object._init<class_Object_method__init>` may be used. See also :ref:`_enter_tree<class_Node_method__enter_tree>`.
 
-\ **Note:** :ref:`_ready<class_Node_method__ready>` may be called only once for each node. After removing a node from the scene tree and adding again, ``_ready`` will not be called for the second time. This can be bypassed with requesting another call with :ref:`request_ready<class_Node_method_request_ready>`, which may be called anywhere before adding the node again.
+\ **Note:** :ref:`_ready<class_Node_method__ready>` may be called only once for each node. After removing a node from the scene tree and adding it again, ``_ready`` will not be called a second time. This can be bypassed by requesting another call with :ref:`request_ready<class_Node_method_request_ready>`, which may be called anywhere before adding the node again.
 
 ----
 
@@ -738,7 +766,7 @@ Usually used for initialization. For even earlier initialization, :ref:`Object._
 
 - void **_unhandled_input** **(** :ref:`InputEvent<class_InputEvent>` event **)** |virtual|
 
-Called when an :ref:`InputEvent<class_InputEvent>` hasn't been consumed by :ref:`_input<class_Node_method__input>` or any GUI. The input event propagates up through the node tree until a node consumes it.
+Called when an :ref:`InputEvent<class_InputEvent>` hasn't been consumed by :ref:`_input<class_Node_method__input>` or any GUI :ref:`Control<class_Control>` item. The input event propagates up through the node tree until a node consumes it.
 
 It is only called if unhandled input processing is enabled, which is done automatically if this method is overridden, and can be toggled with :ref:`set_process_unhandled_input<class_Node_method_set_process_unhandled_input>`.
 
@@ -746,7 +774,7 @@ To consume the input event and stop it propagating further to other nodes, :ref:
 
 For gameplay input, this and :ref:`_unhandled_key_input<class_Node_method__unhandled_key_input>` are usually a better fit than :ref:`_input<class_Node_method__input>` as they allow the GUI to intercept the events first.
 
-\ **Note:** This method is only called if the node is present in the scene tree (i.e. if it's not orphan).
+\ **Note:** This method is only called if the node is present in the scene tree (i.e. if it's not an orphan).
 
 ----
 
@@ -754,7 +782,7 @@ For gameplay input, this and :ref:`_unhandled_key_input<class_Node_method__unhan
 
 - void **_unhandled_key_input** **(** :ref:`InputEvent<class_InputEvent>` event **)** |virtual|
 
-Called when an :ref:`InputEventKey<class_InputEventKey>` or :ref:`InputEventShortcut<class_InputEventShortcut>` hasn't been consumed by :ref:`_input<class_Node_method__input>` or any GUI. The input event propagates up through the node tree until a node consumes it.
+Called when an :ref:`InputEventKey<class_InputEventKey>` or :ref:`InputEventShortcut<class_InputEventShortcut>` hasn't been consumed by :ref:`_input<class_Node_method__input>` or any GUI :ref:`Control<class_Control>` item. The input event propagates up through the node tree until a node consumes it.
 
 It is only called if unhandled key input processing is enabled, which is done automatically if this method is overridden, and can be toggled with :ref:`set_process_unhandled_key_input<class_Node_method_set_process_unhandled_key_input>`.
 
@@ -762,7 +790,7 @@ To consume the input event and stop it propagating further to other nodes, :ref:
 
 For gameplay input, this and :ref:`_unhandled_input<class_Node_method__unhandled_input>` are usually a better fit than :ref:`_input<class_Node_method__input>` as they allow the GUI to intercept the events first.
 
-\ **Note:** This method is only called if the node is present in the scene tree (i.e. if it's not orphan).
+\ **Note:** This method is only called if the node is present in the scene tree (i.e. if it's not an orphan).
 
 ----
 
@@ -863,17 +891,21 @@ You can fine-tune the behavior using the ``flags`` (see :ref:`DuplicateFlags<enu
 
 ----
 
-.. _class_Node_method_find_node:
+.. _class_Node_method_find_nodes:
 
-- :ref:`Node<class_Node>` **find_node** **(** :ref:`String<class_String>` mask, :ref:`bool<class_bool>` recursive=true, :ref:`bool<class_bool>` owned=true **)** |const|
+- :ref:`Node[]<class_Node>` **find_nodes** **(** :ref:`String<class_String>` mask, :ref:`String<class_String>` type="", :ref:`bool<class_bool>` recursive=true, :ref:`bool<class_bool>` owned=true **)** |const|
 
-Finds a descendant of this node whose name matches ``mask`` as in :ref:`String.match<class_String_method_match>` (i.e. case-sensitive, but ``"*"`` matches zero or more characters and ``"?"`` matches any single character except ``"."``). Returns ``null`` if no matching ``Node`` is found.
+Finds descendants of this node whose, name matches ``mask`` as in :ref:`String.match<class_String_method_match>`, and/or type matches ``type`` as in :ref:`Object.is_class<class_Object_method_is_class>`.
 
-\ **Note:** It does not match against the full path, just against individual node names.
+\ ``mask`` does not match against the full path, just against individual node names. It is case-sensitive, with ``"*"`` matching zero or more characters and ``"?"`` matching any single character except ``"."``).
+
+\ ``type`` will check equality or inheritance. It is case-sensitive, ``"Object"`` will match a node whose type is ``"Node"`` but not the other way around.
 
 If ``owned`` is ``true``, this method only finds nodes whose owner is this node. This is especially important for scenes instantiated through a script, because those scenes don't have an owner.
 
-\ **Note:** As this method walks through all the descendants of the node, it is the slowest way to get a reference to another node. Whenever possible, consider using :ref:`get_node<class_Node_method_get_node>` instead. To avoid using :ref:`find_node<class_Node_method_find_node>` too often, consider caching the node reference into a variable.
+Returns an empty array, if no matching nodes are found.
+
+\ **Note:** As this method walks through all the descendants of the node, it is the slowest way to get references to other nodes. To avoid using :ref:`find_nodes<class_Node_method_find_nodes>` too often, consider caching the node references into variables.
 
 ----
 

文件差异内容过多而无法显示
+ 0 - 0
classes/class_object.rst


+ 24 - 27
classes/class_occluder3d.rst

@@ -11,45 +11,42 @@ Occluder3D
 
 **Inherits:** :ref:`Resource<class_Resource>` **<** :ref:`RefCounted<class_RefCounted>` **<** :ref:`Object<class_Object>`
 
+**Inherited By:** :ref:`ArrayOccluder3D<class_ArrayOccluder3D>`, :ref:`BoxOccluder3D<class_BoxOccluder3D>`, :ref:`PolygonOccluder3D<class_PolygonOccluder3D>`, :ref:`QuadOccluder3D<class_QuadOccluder3D>`, :ref:`SphereOccluder3D<class_SphereOccluder3D>`
 
+Occluder shape resource for use with occlusion culling in :ref:`OccluderInstance3D<class_OccluderInstance3D>`.
 
-Properties
-----------
+Description
+-----------
 
-+-----------------------------------------------------+-----------------------------------------------------+--------------------------+
-| :ref:`PackedInt32Array<class_PackedInt32Array>`     | :ref:`indices<class_Occluder3D_property_indices>`   | ``PackedInt32Array()``   |
-+-----------------------------------------------------+-----------------------------------------------------+--------------------------+
-| :ref:`PackedVector3Array<class_PackedVector3Array>` | :ref:`vertices<class_Occluder3D_property_vertices>` | ``PackedVector3Array()`` |
-+-----------------------------------------------------+-----------------------------------------------------+--------------------------+
+``Occluder3D`` stores an occluder shape that can be used by the engine's occlusion culling system.
 
-Property Descriptions
----------------------
+See :ref:`OccluderInstance3D<class_OccluderInstance3D>`'s documentation for instructions on setting up occlusion culling.
 
-.. _class_Occluder3D_property_indices:
+Methods
+-------
 
-- :ref:`PackedInt32Array<class_PackedInt32Array>` **indices**
++-----------------------------------------------------+-------------------------------------------------------------------------------+
+| :ref:`PackedInt32Array<class_PackedInt32Array>`     | :ref:`get_indices<class_Occluder3D_method_get_indices>` **(** **)** |const|   |
++-----------------------------------------------------+-------------------------------------------------------------------------------+
+| :ref:`PackedVector3Array<class_PackedVector3Array>` | :ref:`get_vertices<class_Occluder3D_method_get_vertices>` **(** **)** |const| |
++-----------------------------------------------------+-------------------------------------------------------------------------------+
 
-+-----------+------------------------+
-| *Default* | ``PackedInt32Array()`` |
-+-----------+------------------------+
-| *Setter*  | set_indices(value)     |
-+-----------+------------------------+
-| *Getter*  | get_indices()          |
-+-----------+------------------------+
+Method Descriptions
+-------------------
+
+.. _class_Occluder3D_method_get_indices:
+
+- :ref:`PackedInt32Array<class_PackedInt32Array>` **get_indices** **(** **)** |const|
+
+Returns the occluder shape's vertex indices.
 
 ----
 
-.. _class_Occluder3D_property_vertices:
+.. _class_Occluder3D_method_get_vertices:
 
-- :ref:`PackedVector3Array<class_PackedVector3Array>` **vertices**
+- :ref:`PackedVector3Array<class_PackedVector3Array>` **get_vertices** **(** **)** |const|
 
-+-----------+--------------------------+
-| *Default* | ``PackedVector3Array()`` |
-+-----------+--------------------------+
-| *Setter*  | set_vertices(value)      |
-+-----------+--------------------------+
-| *Getter*  | get_vertices()           |
-+-----------+--------------------------+
+Returns the occluder shape's vertex positions.
 
 .. |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.)`

+ 54 - 7
classes/class_occluderinstance3d.rst

@@ -11,16 +11,31 @@ OccluderInstance3D
 
 **Inherits:** :ref:`Node3D<class_Node3D>` **<** :ref:`Node<class_Node>` **<** :ref:`Object<class_Object>`
 
+Provides occlusion culling for 3D nodes, which improves performance in closed areas.
 
+Description
+-----------
+
+Occlusion culling can improve rendering performance in closed/semi-open areas by hiding geometry that is occluded by other objects.
+
+The occlusion culling system is mostly static. ``OccluderInstance3D``\ s can be moved or hidden at run-time, but doing so will trigger a background recomputation that can take several frames. It is recommended to only move ``OccluderInstance3D``\ s sporadically (e.g. for procedural generation purposes), rather than doing so every frame.
+
+The occlusion culling system works by rendering the occluders on the CPU in parallel using `Embree <https://www.embree.org/>`__, drawing the result to a low-resolution buffer then using this to cull 3D nodes individually. In the 3D editor, you can preview the occlusion culling buffer by choosing **Perspective > Debug Advanced... > Occlusion Culling Buffer** in the top-left corner of the 3D viewport. The occlusion culling buffer quality can be adjusted in the Project Settings.
+
+\ **Baking:** Select an ``OccluderInstance3D`` node, then use the **Bake Occluders** button at the top of the 3D editor. Only opaque materials will be taken into account; transparent materials (alpha-blended or alpha-tested) will be ignored by the occluder generation.
+
+\ **Note:** Occlusion culling is only effective if :ref:`ProjectSettings.rendering/occlusion_culling/use_occlusion_culling<class_ProjectSettings_property_rendering/occlusion_culling/use_occlusion_culling>` is ``true``. Enabling occlusion culling has a cost on the CPU. Only enable occlusion culling if you actually plan to use it. Large open scenes with few or no objects blocking the view will generally not benefit much from occlusion culling. Large open scenes generally benefit more from mesh LOD and visibility ranges (:ref:`GeometryInstance3D.visibility_range_begin<class_GeometryInstance3D_property_visibility_range_begin>` and :ref:`GeometryInstance3D.visibility_range_end<class_GeometryInstance3D_property_visibility_range_end>`) compared to occlusion culling.
 
 Properties
 ----------
 
-+-------------------------------------+---------------------------------------------------------------+----------------+
-| :ref:`int<class_int>`               | :ref:`bake_mask<class_OccluderInstance3D_property_bake_mask>` | ``4294967295`` |
-+-------------------------------------+---------------------------------------------------------------+----------------+
-| :ref:`Occluder3D<class_Occluder3D>` | :ref:`occluder<class_OccluderInstance3D_property_occluder>`   |                |
-+-------------------------------------+---------------------------------------------------------------+----------------+
++-------------------------------------+-----------------------------------------------------------------------------------------------------+----------------+
+| :ref:`int<class_int>`               | :ref:`bake_mask<class_OccluderInstance3D_property_bake_mask>`                                       | ``4294967295`` |
++-------------------------------------+-----------------------------------------------------------------------------------------------------+----------------+
+| :ref:`float<class_float>`           | :ref:`bake_simplification_distance<class_OccluderInstance3D_property_bake_simplification_distance>` | ``0.1``        |
++-------------------------------------+-----------------------------------------------------------------------------------------------------+----------------+
+| :ref:`Occluder3D<class_Occluder3D>` | :ref:`occluder<class_OccluderInstance3D_property_occluder>`                                         |                |
++-------------------------------------+-----------------------------------------------------------------------------------------------------+----------------+
 
 Methods
 -------
@@ -46,6 +61,32 @@ Property Descriptions
 | *Getter*  | get_bake_mask()      |
 +-----------+----------------------+
 
+The visual layers to account for when baking for occluders. Only :ref:`MeshInstance3D<class_MeshInstance3D>`\ s whose :ref:`VisualInstance3D.layers<class_VisualInstance3D_property_layers>` match with this :ref:`bake_mask<class_OccluderInstance3D_property_bake_mask>` will be included in the generated occluder mesh. By default, all objects are taken into account for the occluder baking.
+
+To improve performance and avoid artifacts, it is recommended to exclude dynamic objects, small objects and fixtures from the baking process by moving them to a separate visual layer and excluding this layer in :ref:`bake_mask<class_OccluderInstance3D_property_bake_mask>`.
+
+----
+
+.. _class_OccluderInstance3D_property_bake_simplification_distance:
+
+- :ref:`float<class_float>` **bake_simplification_distance**
+
++-----------+-----------------------------------------+
+| *Default* | ``0.1``                                 |
++-----------+-----------------------------------------+
+| *Setter*  | set_bake_simplification_distance(value) |
++-----------+-----------------------------------------+
+| *Getter*  | get_bake_simplification_distance()      |
++-----------+-----------------------------------------+
+
+The simplification distance to use for simplifying the generated occluder polygon (in 3D units). Higher values result in a less detailed occluder mesh, which improves performance but reduces culling accuracy.
+
+The occluder geometry is rendered on the CPU, so it is important to keep its geometry as simple as possible. Since the buffer is rendered at a low resolution, less detailed occluder meshes generally still work well. The default value is fairly aggressive, so you may have to decrase it if you run into false negatives (objects being occluded even though they are visible by the camera). A value of ``0.01`` will act conservatively, and will keep geometry *perceptually* unaffected in the occlusion culling buffer. Depending on the scene, a value of ``0.01`` may still simplify the mesh noticeably compared to disabling simplification entirely.
+
+Setting this to ``0.0`` disables simplification entirely, but vertices in the exact same position will still be merged. The mesh will also be re-indexed to reduce both the number of vertices and indices.
+
+\ **Note:** This uses the `meshoptimizer <https://meshoptimizer.org/>`__ library under the hood, similar to LOD generation.
+
 ----
 
 .. _class_OccluderInstance3D_property_occluder:
@@ -58,6 +99,12 @@ Property Descriptions
 | *Getter* | get_occluder()      |
 +----------+---------------------+
 
+The occluder resource for this ``OccluderInstance3D``. You can generate an occluder resource by selecting an ``OccluderInstance3D`` node then using the **Bake Occluders** button at the top of the editor.
+
+You can also draw your own 2D occluder polygon by adding a new :ref:`PolygonOccluder3D<class_PolygonOccluder3D>` resource to the :ref:`occluder<class_OccluderInstance3D_property_occluder>` property in the inspector.
+
+Alternatively, you can select a primitive occluder to use: :ref:`QuadOccluder3D<class_QuadOccluder3D>`, :ref:`BoxOccluder3D<class_BoxOccluder3D>` or :ref:`SphereOccluder3D<class_SphereOccluder3D>`.
+
 Method Descriptions
 -------------------
 
@@ -65,7 +112,7 @@ Method Descriptions
 
 - :ref:`bool<class_bool>` **get_bake_mask_value** **(** :ref:`int<class_int>` layer_number **)** |const|
 
-Returns whether or not the specified layer of the :ref:`bake_mask<class_OccluderInstance3D_property_bake_mask>` is enabled, given a ``layer_number`` between 1 and 20.
+Returns whether or not the specified layer of the :ref:`bake_mask<class_OccluderInstance3D_property_bake_mask>` is enabled, given a ``layer_number`` between 1 and 32.
 
 ----
 
@@ -73,7 +120,7 @@ Returns whether or not the specified layer of the :ref:`bake_mask<class_Occluder
 
 - void **set_bake_mask_value** **(** :ref:`int<class_int>` layer_number, :ref:`bool<class_bool>` value **)**
 
-Based on ``value``, enables or disables the specified layer in the :ref:`bake_mask<class_OccluderInstance3D_property_bake_mask>`, given a ``layer_number`` between 1 and 20.
+Based on ``value``, enables or disables the specified layer in the :ref:`bake_mask<class_OccluderInstance3D_property_bake_mask>`, given a ``layer_number`` between 1 and 32.
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`

+ 13 - 1
classes/class_os.rst

@@ -92,6 +92,8 @@ Methods
 +---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`int<class_int>`                             | :ref:`get_processor_count<class_OS_method_get_processor_count>` **(** **)** |const|                                                                                                                                                                                           |
 +---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`                       | :ref:`get_processor_name<class_OS_method_get_processor_name>` **(** **)** |const|                                                                                                                                                                                             |
++---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`int<class_int>`                             | :ref:`get_static_memory_peak_usage<class_OS_method_get_static_memory_peak_usage>` **(** **)** |const|                                                                                                                                                                         |
 +---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`int<class_int>`                             | :ref:`get_static_memory_usage<class_OS_method_get_static_memory_usage>` **(** **)** |const|                                                                                                                                                                                   |
@@ -768,7 +770,17 @@ Returns the project's process ID.
 
 - :ref:`int<class_int>` **get_processor_count** **(** **)** |const|
 
-Returns the number of threads available on the host machine.
+Returns the number of *logical* CPU cores available on the host machine. On CPUs with HyperThreading enabled, this number will be greater than the number of *physical* CPU cores.
+
+----
+
+.. _class_OS_method_get_processor_name:
+
+- :ref:`String<class_String>` **get_processor_name** **(** **)** |const|
+
+Returns the name of the CPU model on the host machine (e.g. "Intel(R) Core(TM) i7-6700K CPU @ 4.00GHz").
+
+\ **Note:** This method is only implemented on Windows, macOS, Linux and iOS. On Android, HTML5 and UWP, :ref:`get_processor_name<class_OS_method_get_processor_name>` returns an empty string.
 
 ----
 

+ 0 - 37
classes/class_panel.rst

@@ -27,13 +27,6 @@ Tutorials
 
 - `3D Inverse Kinematics Demo <https://godotengine.org/asset-library/asset/523>`__
 
-Properties
-----------
-
-+------------------------------+----------------------------------------+-------+
-| :ref:`Mode<enum_Panel_Mode>` | :ref:`mode<class_Panel_property_mode>` | ``0`` |
-+------------------------------+----------------------------------------+-------+
-
 Theme Properties
 ----------------
 
@@ -43,36 +36,6 @@ Theme Properties
 | :ref:`StyleBox<class_StyleBox>` | :ref:`panel_fg<class_Panel_theme_style_panel_fg>` |
 +---------------------------------+---------------------------------------------------+
 
-Enumerations
-------------
-
-.. _enum_Panel_Mode:
-
-.. _class_Panel_constant_MODE_BACKGROUND:
-
-.. _class_Panel_constant_MODE_FOREGROUND:
-
-enum **Mode**:
-
-- **MODE_BACKGROUND** = **0**
-
-- **MODE_FOREGROUND** = **1**
-
-Property Descriptions
----------------------
-
-.. _class_Panel_property_mode:
-
-- :ref:`Mode<enum_Panel_Mode>` **mode**
-
-+-----------+-----------------+
-| *Default* | ``0``           |
-+-----------+-----------------+
-| *Setter*  | set_mode(value) |
-+-----------+-----------------+
-| *Getter*  | get_mode()      |
-+-----------+-----------------+
-
 Theme Property Descriptions
 ---------------------------
 

+ 47 - 47
classes/class_physicalskymaterial.rst

@@ -25,29 +25,29 @@ As it is based on a daylight model, the sky fades to black as the sunset ends. I
 Properties
 ----------
 
-+-----------------------------------+--------------------------------------------------------------------------------------+--------------------------------+
-| :ref:`float<class_float>`         | :ref:`dither_strength<class_PhysicalSkyMaterial_property_dither_strength>`           | ``1.0``                        |
-+-----------------------------------+--------------------------------------------------------------------------------------+--------------------------------+
-| :ref:`float<class_float>`         | :ref:`exposure<class_PhysicalSkyMaterial_property_exposure>`                         | ``0.1``                        |
-+-----------------------------------+--------------------------------------------------------------------------------------+--------------------------------+
-| :ref:`Color<class_Color>`         | :ref:`ground_color<class_PhysicalSkyMaterial_property_ground_color>`                 | ``Color(1, 1, 1, 1)``          |
-+-----------------------------------+--------------------------------------------------------------------------------------+--------------------------------+
-| :ref:`float<class_float>`         | :ref:`mie_coefficient<class_PhysicalSkyMaterial_property_mie_coefficient>`           | ``0.005``                      |
-+-----------------------------------+--------------------------------------------------------------------------------------+--------------------------------+
-| :ref:`Color<class_Color>`         | :ref:`mie_color<class_PhysicalSkyMaterial_property_mie_color>`                       | ``Color(0.63, 0.77, 0.92, 1)`` |
-+-----------------------------------+--------------------------------------------------------------------------------------+--------------------------------+
-| :ref:`float<class_float>`         | :ref:`mie_eccentricity<class_PhysicalSkyMaterial_property_mie_eccentricity>`         | ``0.8``                        |
-+-----------------------------------+--------------------------------------------------------------------------------------+--------------------------------+
-| :ref:`Texture2D<class_Texture2D>` | :ref:`night_sky<class_PhysicalSkyMaterial_property_night_sky>`                       |                                |
-+-----------------------------------+--------------------------------------------------------------------------------------+--------------------------------+
-| :ref:`float<class_float>`         | :ref:`rayleigh_coefficient<class_PhysicalSkyMaterial_property_rayleigh_coefficient>` | ``2.0``                        |
-+-----------------------------------+--------------------------------------------------------------------------------------+--------------------------------+
-| :ref:`Color<class_Color>`         | :ref:`rayleigh_color<class_PhysicalSkyMaterial_property_rayleigh_color>`             | ``Color(0.26, 0.41, 0.58, 1)`` |
-+-----------------------------------+--------------------------------------------------------------------------------------+--------------------------------+
-| :ref:`float<class_float>`         | :ref:`sun_disk_scale<class_PhysicalSkyMaterial_property_sun_disk_scale>`             | ``1.0``                        |
-+-----------------------------------+--------------------------------------------------------------------------------------+--------------------------------+
-| :ref:`float<class_float>`         | :ref:`turbidity<class_PhysicalSkyMaterial_property_turbidity>`                       | ``10.0``                       |
-+-----------------------------------+--------------------------------------------------------------------------------------+--------------------------------+
++-----------------------------------+--------------------------------------------------------------------------------------+----------------------------------+
+| :ref:`float<class_float>`         | :ref:`dither_strength<class_PhysicalSkyMaterial_property_dither_strength>`           | ``1.0``                          |
++-----------------------------------+--------------------------------------------------------------------------------------+----------------------------------+
+| :ref:`float<class_float>`         | :ref:`exposure<class_PhysicalSkyMaterial_property_exposure>`                         | ``0.1``                          |
++-----------------------------------+--------------------------------------------------------------------------------------+----------------------------------+
+| :ref:`Color<class_Color>`         | :ref:`ground_color<class_PhysicalSkyMaterial_property_ground_color>`                 | ``Color(0.1, 0.07, 0.034, 1)``   |
++-----------------------------------+--------------------------------------------------------------------------------------+----------------------------------+
+| :ref:`float<class_float>`         | :ref:`mie_coefficient<class_PhysicalSkyMaterial_property_mie_coefficient>`           | ``0.005``                        |
++-----------------------------------+--------------------------------------------------------------------------------------+----------------------------------+
+| :ref:`Color<class_Color>`         | :ref:`mie_color<class_PhysicalSkyMaterial_property_mie_color>`                       | ``Color(0.69, 0.729, 0.812, 1)`` |
++-----------------------------------+--------------------------------------------------------------------------------------+----------------------------------+
+| :ref:`float<class_float>`         | :ref:`mie_eccentricity<class_PhysicalSkyMaterial_property_mie_eccentricity>`         | ``0.8``                          |
++-----------------------------------+--------------------------------------------------------------------------------------+----------------------------------+
+| :ref:`Texture2D<class_Texture2D>` | :ref:`night_sky<class_PhysicalSkyMaterial_property_night_sky>`                       |                                  |
++-----------------------------------+--------------------------------------------------------------------------------------+----------------------------------+
+| :ref:`float<class_float>`         | :ref:`rayleigh_coefficient<class_PhysicalSkyMaterial_property_rayleigh_coefficient>` | ``2.0``                          |
++-----------------------------------+--------------------------------------------------------------------------------------+----------------------------------+
+| :ref:`Color<class_Color>`         | :ref:`rayleigh_color<class_PhysicalSkyMaterial_property_rayleigh_color>`             | ``Color(0.3, 0.405, 0.6, 1)``    |
++-----------------------------------+--------------------------------------------------------------------------------------+----------------------------------+
+| :ref:`float<class_float>`         | :ref:`sun_disk_scale<class_PhysicalSkyMaterial_property_sun_disk_scale>`             | ``1.0``                          |
++-----------------------------------+--------------------------------------------------------------------------------------+----------------------------------+
+| :ref:`float<class_float>`         | :ref:`turbidity<class_PhysicalSkyMaterial_property_turbidity>`                       | ``10.0``                         |
++-----------------------------------+--------------------------------------------------------------------------------------+----------------------------------+
 
 Property Descriptions
 ---------------------
@@ -88,13 +88,13 @@ Sets the exposure of the sky. Higher exposure values make the entire sky brighte
 
 - :ref:`Color<class_Color>` **ground_color**
 
-+-----------+-------------------------+
-| *Default* | ``Color(1, 1, 1, 1)``   |
-+-----------+-------------------------+
-| *Setter*  | set_ground_color(value) |
-+-----------+-------------------------+
-| *Getter*  | get_ground_color()      |
-+-----------+-------------------------+
++-----------+--------------------------------+
+| *Default* | ``Color(0.1, 0.07, 0.034, 1)`` |
++-----------+--------------------------------+
+| *Setter*  | set_ground_color(value)        |
++-----------+--------------------------------+
+| *Getter*  | get_ground_color()             |
++-----------+--------------------------------+
 
 Modulates the :ref:`Color<class_Color>` on the bottom half of the sky to represent the ground.
 
@@ -120,15 +120,15 @@ Controls the strength of mie scattering for the sky. Mie scattering results from
 
 - :ref:`Color<class_Color>` **mie_color**
 
-+-----------+--------------------------------+
-| *Default* | ``Color(0.63, 0.77, 0.92, 1)`` |
-+-----------+--------------------------------+
-| *Setter*  | set_mie_color(value)           |
-+-----------+--------------------------------+
-| *Getter*  | get_mie_color()                |
-+-----------+--------------------------------+
++-----------+----------------------------------+
+| *Default* | ``Color(0.69, 0.729, 0.812, 1)`` |
++-----------+----------------------------------+
+| *Setter*  | set_mie_color(value)             |
++-----------+----------------------------------+
+| *Getter*  | get_mie_color()                  |
++-----------+----------------------------------+
 
-Controls the :ref:`Color<class_Color>` of the mie scattering effect. While not physically accurate, this allows for the creation of alien looking planets.
+Controls the :ref:`Color<class_Color>` of the mie scattering effect. While not physically accurate, this allows for the creation of alien-looking planets.
 
 ----
 
@@ -182,15 +182,15 @@ Controls the strength of the Rayleigh scattering. Rayleigh scattering results fr
 
 - :ref:`Color<class_Color>` **rayleigh_color**
 
-+-----------+--------------------------------+
-| *Default* | ``Color(0.26, 0.41, 0.58, 1)`` |
-+-----------+--------------------------------+
-| *Setter*  | set_rayleigh_color(value)      |
-+-----------+--------------------------------+
-| *Getter*  | get_rayleigh_color()           |
-+-----------+--------------------------------+
++-----------+-------------------------------+
+| *Default* | ``Color(0.3, 0.405, 0.6, 1)`` |
++-----------+-------------------------------+
+| *Setter*  | set_rayleigh_color(value)     |
++-----------+-------------------------------+
+| *Getter*  | get_rayleigh_color()          |
++-----------+-------------------------------+
 
-Controls the :ref:`Color<class_Color>` of the Rayleigh scattering. While not physically accurate, this allows for the creation of alien looking planets. For example, setting this to a red :ref:`Color<class_Color>` results in a Mars looking atmosphere with a corresponding blue sunset.
+Controls the :ref:`Color<class_Color>` of the Rayleigh scattering. While not physically accurate, this allows for the creation of alien-looking planets. For example, setting this to a red :ref:`Color<class_Color>` results in a Mars-looking atmosphere with a corresponding blue sunset.
 
 ----
 
@@ -222,7 +222,7 @@ Sets the size of the sun disk. Default value is based on Sol's perceived size fr
 | *Getter*  | get_turbidity()      |
 +-----------+----------------------+
 
-Sets the thickness of the atmosphere. High turbidity creates a foggy looking atmosphere, while a low turbidity results in a clearer atmosphere.
+Sets the thickness of the atmosphere. High turbidity creates a foggy-looking atmosphere, while a low turbidity results in a clearer atmosphere.
 
 .. |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.)`

+ 54 - 0
classes/class_polygonoccluder3d.rst

@@ -0,0 +1,54 @@
+:github_url: hide
+
+.. Generated automatically by doc/tools/make_rst.py in Godot's source tree.
+.. DO NOT EDIT THIS FILE, but the PolygonOccluder3D.xml source instead.
+.. The source is found in doc/classes or modules/<name>/doc_classes.
+
+.. _class_PolygonOccluder3D:
+
+PolygonOccluder3D
+=================
+
+**Inherits:** :ref:`Occluder3D<class_Occluder3D>` **<** :ref:`Resource<class_Resource>` **<** :ref:`RefCounted<class_RefCounted>` **<** :ref:`Object<class_Object>`
+
+Flat 2D polygon shape for use with occlusion culling in :ref:`OccluderInstance3D<class_OccluderInstance3D>`.
+
+Description
+-----------
+
+``PolygonOccluder3D`` stores a polygon shape that can be used by the engine's occlusion culling system. When an :ref:`OccluderInstance3D<class_OccluderInstance3D>` with a ``PolygonOccluder3D`` is selected in the editor, an editor will appear at the top of the 3D viewport so you can add/remove points. All points must be placed on the same 2D plane, which means it is not possible to create arbitrary 3D shapes with a single ``PolygonOccluder3D``. To use arbitrary 3D shapes as occluders, use :ref:`ArrayOccluder3D<class_ArrayOccluder3D>` or :ref:`OccluderInstance3D<class_OccluderInstance3D>`'s baking feature instead.
+
+See :ref:`OccluderInstance3D<class_OccluderInstance3D>`'s documentation for instructions on setting up occlusion culling.
+
+Properties
+----------
+
++-----------------------------------------------------+----------------------------------------------------------+--------------------------+
+| :ref:`PackedVector2Array<class_PackedVector2Array>` | :ref:`polygon<class_PolygonOccluder3D_property_polygon>` | ``PackedVector2Array()`` |
++-----------------------------------------------------+----------------------------------------------------------+--------------------------+
+
+Property Descriptions
+---------------------
+
+.. _class_PolygonOccluder3D_property_polygon:
+
+- :ref:`PackedVector2Array<class_PackedVector2Array>` **polygon**
+
++-----------+--------------------------+
+| *Default* | ``PackedVector2Array()`` |
++-----------+--------------------------+
+| *Setter*  | set_polygon(value)       |
++-----------+--------------------------+
+| *Getter*  | get_polygon()            |
++-----------+--------------------------+
+
+The polygon to use for occlusion culling. The polygon can be convex or concave, but it should have as few points as possible to maximize performance.
+
+The polygon must *not* have intersecting lines. Otherwise, triangulation will fail (with an error message printed).
+
+.. |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.)`

+ 4 - 4
classes/class_popup.rst

@@ -13,12 +13,12 @@ Popup
 
 **Inherited By:** :ref:`PopupMenu<class_PopupMenu>`, :ref:`PopupPanel<class_PopupPanel>`
 
-Base container control for popups and dialogs.
+Popup is a base window container for popup-like subwindows.
 
 Description
 -----------
 
-Popup is a base :ref:`Control<class_Control>` used to show dialogs and popups. It's a subwindow and modal by default (see :ref:`Control<class_Control>`) and has helpers for custom popup behavior.
+Popup is a base window container for popup-like subwindows. It's a modal by default (see :ref:`close_on_parent_focus<class_Popup_property_close_on_parent_focus>`) and has helpers for custom popup behavior.
 
 Properties
 ----------
@@ -44,7 +44,7 @@ Signals
 
 - **popup_hide** **(** **)**
 
-Emitted when a popup is hidden.
+Emitted when the popup is hidden.
 
 Property Descriptions
 ---------------------
@@ -61,7 +61,7 @@ Property Descriptions
 | *Getter*  | get_close_on_parent_focus()      |
 +-----------+----------------------------------+
 
-If ``true``, the ``Popup`` will close when its parent is focused.
+If true, the ``Popup`` will close when its parent :ref:`Window<class_Window>` is focused.
 
 .. |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.)`

+ 21 - 1
classes/class_popupmenu.rst

@@ -16,7 +16,7 @@ PopupMenu displays a list of options.
 Description
 -----------
 
-``PopupMenu`` is a :ref:`Control<class_Control>` that displays a list of options. They are popular in toolbars or context menus.
+``PopupMenu`` is a modal window used to display a list of options. They are popular in toolbars or context menus.
 
 The size of a ``PopupMenu`` can be limited by using :ref:`Window.max_size<class_Window_property_max_size>`. If the height of the list of items is larger than the maximum height of the ``PopupMenu``, a :ref:`ScrollContainer<class_ScrollContainer>` within the popup will allow the user to scroll the contents.
 
@@ -117,6 +117,10 @@ Methods
 +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                                             | :ref:`remove_item<class_PopupMenu_method_remove_item>` **(** :ref:`int<class_int>` index **)**                                                                                                                                                                        |
 +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                             | :ref:`scroll_to_item<class_PopupMenu_method_scroll_to_item>` **(** :ref:`int<class_int>` index **)**                                                                                                                                                                  |
++--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                             | :ref:`set_current_index<class_PopupMenu_method_set_current_index>` **(** :ref:`int<class_int>` index **)**                                                                                                                                                            |
++--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                                             | :ref:`set_item_accelerator<class_PopupMenu_method_set_item_accelerator>` **(** :ref:`int<class_int>` index, :ref:`Key<enum_@GlobalScope_Key>` accel **)**                                                                                                             |
 +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                                             | :ref:`set_item_as_checkable<class_PopupMenu_method_set_item_as_checkable>` **(** :ref:`int<class_int>` index, :ref:`bool<class_bool>` enable **)**                                                                                                                    |
@@ -684,6 +688,22 @@ Removes the item at the given ``index`` from the menu.
 
 ----
 
+.. _class_PopupMenu_method_scroll_to_item:
+
+- void **scroll_to_item** **(** :ref:`int<class_int>` index **)**
+
+Moves the scroll view to make the item at the given ``index`` visible.
+
+----
+
+.. _class_PopupMenu_method_set_current_index:
+
+- void **set_current_index** **(** :ref:`int<class_int>` index **)**
+
+Sets the currently focused item as the given ``index``.
+
+----
+
 .. _class_PopupMenu_method_set_item_accelerator:
 
 - void **set_item_accelerator** **(** :ref:`int<class_int>` index, :ref:`Key<enum_@GlobalScope_Key>` accel **)**

+ 52 - 52
classes/class_proceduralskymaterial.rst

@@ -25,27 +25,27 @@ The ``ProceduralSkyMaterial`` supports up to 4 suns. Each sun takes its color, e
 Properties
 ----------
 
-+---------------------------+----------------------------------------------------------------------------------------+--------------------------------+
-| :ref:`Color<class_Color>` | :ref:`ground_bottom_color<class_ProceduralSkyMaterial_property_ground_bottom_color>`   | ``Color(0.12, 0.12, 0.13, 1)`` |
-+---------------------------+----------------------------------------------------------------------------------------+--------------------------------+
-| :ref:`float<class_float>` | :ref:`ground_curve<class_ProceduralSkyMaterial_property_ground_curve>`                 | ``0.02``                       |
-+---------------------------+----------------------------------------------------------------------------------------+--------------------------------+
-| :ref:`float<class_float>` | :ref:`ground_energy<class_ProceduralSkyMaterial_property_ground_energy>`               | ``1.0``                        |
-+---------------------------+----------------------------------------------------------------------------------------+--------------------------------+
-| :ref:`Color<class_Color>` | :ref:`ground_horizon_color<class_ProceduralSkyMaterial_property_ground_horizon_color>` | ``Color(0.37, 0.33, 0.31, 1)`` |
-+---------------------------+----------------------------------------------------------------------------------------+--------------------------------+
-| :ref:`float<class_float>` | :ref:`sky_curve<class_ProceduralSkyMaterial_property_sky_curve>`                       | ``0.09``                       |
-+---------------------------+----------------------------------------------------------------------------------------+--------------------------------+
-| :ref:`float<class_float>` | :ref:`sky_energy<class_ProceduralSkyMaterial_property_sky_energy>`                     | ``1.0``                        |
-+---------------------------+----------------------------------------------------------------------------------------+--------------------------------+
-| :ref:`Color<class_Color>` | :ref:`sky_horizon_color<class_ProceduralSkyMaterial_property_sky_horizon_color>`       | ``Color(0.55, 0.69, 0.81, 1)`` |
-+---------------------------+----------------------------------------------------------------------------------------+--------------------------------+
-| :ref:`Color<class_Color>` | :ref:`sky_top_color<class_ProceduralSkyMaterial_property_sky_top_color>`               | ``Color(0.35, 0.46, 0.71, 1)`` |
-+---------------------------+----------------------------------------------------------------------------------------+--------------------------------+
-| :ref:`float<class_float>` | :ref:`sun_angle_max<class_ProceduralSkyMaterial_property_sun_angle_max>`               | ``100.0``                      |
-+---------------------------+----------------------------------------------------------------------------------------+--------------------------------+
-| :ref:`float<class_float>` | :ref:`sun_curve<class_ProceduralSkyMaterial_property_sun_curve>`                       | ``0.05``                       |
-+---------------------------+----------------------------------------------------------------------------------------+--------------------------------+
++---------------------------+----------------------------------------------------------------------------------------+--------------------------------------+
+| :ref:`Color<class_Color>` | :ref:`ground_bottom_color<class_ProceduralSkyMaterial_property_ground_bottom_color>`   | ``Color(0.2, 0.169, 0.133, 1)``      |
++---------------------------+----------------------------------------------------------------------------------------+--------------------------------------+
+| :ref:`float<class_float>` | :ref:`ground_curve<class_ProceduralSkyMaterial_property_ground_curve>`                 | ``0.02``                             |
++---------------------------+----------------------------------------------------------------------------------------+--------------------------------------+
+| :ref:`float<class_float>` | :ref:`ground_energy<class_ProceduralSkyMaterial_property_ground_energy>`               | ``1.0``                              |
++---------------------------+----------------------------------------------------------------------------------------+--------------------------------------+
+| :ref:`Color<class_Color>` | :ref:`ground_horizon_color<class_ProceduralSkyMaterial_property_ground_horizon_color>` | ``Color(0.6463, 0.6558, 0.6708, 1)`` |
++---------------------------+----------------------------------------------------------------------------------------+--------------------------------------+
+| :ref:`float<class_float>` | :ref:`sky_curve<class_ProceduralSkyMaterial_property_sky_curve>`                       | ``0.15``                             |
++---------------------------+----------------------------------------------------------------------------------------+--------------------------------------+
+| :ref:`float<class_float>` | :ref:`sky_energy<class_ProceduralSkyMaterial_property_sky_energy>`                     | ``1.0``                              |
++---------------------------+----------------------------------------------------------------------------------------+--------------------------------------+
+| :ref:`Color<class_Color>` | :ref:`sky_horizon_color<class_ProceduralSkyMaterial_property_sky_horizon_color>`       | ``Color(0.6463, 0.6558, 0.6708, 1)`` |
++---------------------------+----------------------------------------------------------------------------------------+--------------------------------------+
+| :ref:`Color<class_Color>` | :ref:`sky_top_color<class_ProceduralSkyMaterial_property_sky_top_color>`               | ``Color(0.385, 0.454, 0.55, 1)``     |
++---------------------------+----------------------------------------------------------------------------------------+--------------------------------------+
+| :ref:`float<class_float>` | :ref:`sun_angle_max<class_ProceduralSkyMaterial_property_sun_angle_max>`               | ``30.0``                             |
++---------------------------+----------------------------------------------------------------------------------------+--------------------------------------+
+| :ref:`float<class_float>` | :ref:`sun_curve<class_ProceduralSkyMaterial_property_sun_curve>`                       | ``0.15``                             |
++---------------------------+----------------------------------------------------------------------------------------+--------------------------------------+
 
 Property Descriptions
 ---------------------
@@ -54,13 +54,13 @@ Property Descriptions
 
 - :ref:`Color<class_Color>` **ground_bottom_color**
 
-+-----------+--------------------------------+
-| *Default* | ``Color(0.12, 0.12, 0.13, 1)`` |
-+-----------+--------------------------------+
-| *Setter*  | set_ground_bottom_color(value) |
-+-----------+--------------------------------+
-| *Getter*  | get_ground_bottom_color()      |
-+-----------+--------------------------------+
++-----------+---------------------------------+
+| *Default* | ``Color(0.2, 0.169, 0.133, 1)`` |
++-----------+---------------------------------+
+| *Setter*  | set_ground_bottom_color(value)  |
++-----------+---------------------------------+
+| *Getter*  | get_ground_bottom_color()       |
++-----------+---------------------------------+
 
 Color of the ground at the bottom. Blends with :ref:`ground_horizon_color<class_ProceduralSkyMaterial_property_ground_horizon_color>`.
 
@@ -102,13 +102,13 @@ Amount of energy contribution from the ground.
 
 - :ref:`Color<class_Color>` **ground_horizon_color**
 
-+-----------+---------------------------------+
-| *Default* | ``Color(0.37, 0.33, 0.31, 1)``  |
-+-----------+---------------------------------+
-| *Setter*  | set_ground_horizon_color(value) |
-+-----------+---------------------------------+
-| *Getter*  | get_ground_horizon_color()      |
-+-----------+---------------------------------+
++-----------+--------------------------------------+
+| *Default* | ``Color(0.6463, 0.6558, 0.6708, 1)`` |
++-----------+--------------------------------------+
+| *Setter*  | set_ground_horizon_color(value)      |
++-----------+--------------------------------------+
+| *Getter*  | get_ground_horizon_color()           |
++-----------+--------------------------------------+
 
 Color of the ground at the horizon. Blends with :ref:`ground_bottom_color<class_ProceduralSkyMaterial_property_ground_bottom_color>`.
 
@@ -119,7 +119,7 @@ Color of the ground at the horizon. Blends with :ref:`ground_bottom_color<class_
 - :ref:`float<class_float>` **sky_curve**
 
 +-----------+----------------------+
-| *Default* | ``0.09``             |
+| *Default* | ``0.15``             |
 +-----------+----------------------+
 | *Setter*  | set_sky_curve(value) |
 +-----------+----------------------+
@@ -150,13 +150,13 @@ Amount of energy contribution from the sky.
 
 - :ref:`Color<class_Color>` **sky_horizon_color**
 
-+-----------+--------------------------------+
-| *Default* | ``Color(0.55, 0.69, 0.81, 1)`` |
-+-----------+--------------------------------+
-| *Setter*  | set_sky_horizon_color(value)   |
-+-----------+--------------------------------+
-| *Getter*  | get_sky_horizon_color()        |
-+-----------+--------------------------------+
++-----------+--------------------------------------+
+| *Default* | ``Color(0.6463, 0.6558, 0.6708, 1)`` |
++-----------+--------------------------------------+
+| *Setter*  | set_sky_horizon_color(value)         |
++-----------+--------------------------------------+
+| *Getter*  | get_sky_horizon_color()              |
++-----------+--------------------------------------+
 
 Color of the sky at the horizon. Blends with :ref:`sky_top_color<class_ProceduralSkyMaterial_property_sky_top_color>`.
 
@@ -166,13 +166,13 @@ Color of the sky at the horizon. Blends with :ref:`sky_top_color<class_Procedura
 
 - :ref:`Color<class_Color>` **sky_top_color**
 
-+-----------+--------------------------------+
-| *Default* | ``Color(0.35, 0.46, 0.71, 1)`` |
-+-----------+--------------------------------+
-| *Setter*  | set_sky_top_color(value)       |
-+-----------+--------------------------------+
-| *Getter*  | get_sky_top_color()            |
-+-----------+--------------------------------+
++-----------+----------------------------------+
+| *Default* | ``Color(0.385, 0.454, 0.55, 1)`` |
++-----------+----------------------------------+
+| *Setter*  | set_sky_top_color(value)         |
++-----------+----------------------------------+
+| *Getter*  | get_sky_top_color()              |
++-----------+----------------------------------+
 
 Color of the sky at the top. Blends with :ref:`sky_horizon_color<class_ProceduralSkyMaterial_property_sky_horizon_color>`.
 
@@ -183,7 +183,7 @@ Color of the sky at the top. Blends with :ref:`sky_horizon_color<class_Procedura
 - :ref:`float<class_float>` **sun_angle_max**
 
 +-----------+--------------------------+
-| *Default* | ``100.0``                |
+| *Default* | ``30.0``                 |
 +-----------+--------------------------+
 | *Setter*  | set_sun_angle_max(value) |
 +-----------+--------------------------+
@@ -199,7 +199,7 @@ Distance from center of sun where it fades out completely.
 - :ref:`float<class_float>` **sun_curve**
 
 +-----------+----------------------+
-| *Default* | ``0.05``             |
+| *Default* | ``0.15``             |
 +-----------+----------------------+
 | *Setter*  | set_sun_curve(value) |
 +-----------+----------------------+

+ 78 - 16
classes/class_projectsettings.rst

@@ -137,6 +137,8 @@ Properties
 +---------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------+
 | :ref:`bool<class_bool>`                           | :ref:`debug/gdscript/warnings/incompatible_ternary<class_ProjectSettings_property_debug/gdscript/warnings/incompatible_ternary>`                                                                   | ``true``                                                                                        |
 +---------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                           | :ref:`debug/gdscript/warnings/int_assigned_to_enum<class_ProjectSettings_property_debug/gdscript/warnings/int_assigned_to_enum>`                                                                   | ``true``                                                                                        |
++---------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------+
 | :ref:`bool<class_bool>`                           | :ref:`debug/gdscript/warnings/integer_division<class_ProjectSettings_property_debug/gdscript/warnings/integer_division>`                                                                           | ``true``                                                                                        |
 +---------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------+
 | :ref:`bool<class_bool>`                           | :ref:`debug/gdscript/warnings/narrowing_conversion<class_ProjectSettings_property_debug/gdscript/warnings/narrowing_conversion>`                                                                   | ``true``                                                                                        |
@@ -267,6 +269,12 @@ Properties
 +---------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------+
 | :ref:`String<class_String>`                       | :ref:`gui/theme/custom_font<class_ProjectSettings_property_gui/theme/custom_font>`                                                                                                                 | ``""``                                                                                          |
 +---------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                           | :ref:`gui/theme/default_font_antialiased<class_ProjectSettings_property_gui/theme/default_font_antialiased>`                                                                                       | ``true``                                                                                        |
++---------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                             | :ref:`gui/theme/default_font_hinting<class_ProjectSettings_property_gui/theme/default_font_hinting>`                                                                                               | ``1``                                                                                           |
++---------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                             | :ref:`gui/theme/default_font_subpixel_positioning<class_ProjectSettings_property_gui/theme/default_font_subpixel_positioning>`                                                                     | ``1``                                                                                           |
++---------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------+
 | :ref:`float<class_float>`                         | :ref:`gui/theme/default_theme_scale<class_ProjectSettings_property_gui/theme/default_theme_scale>`                                                                                                 | ``1.0``                                                                                         |
 +---------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------+
 | :ref:`int<class_int>`                             | :ref:`gui/timers/incremental_search_max_interval_msec<class_ProjectSettings_property_gui/timers/incremental_search_max_interval_msec>`                                                             | ``2000``                                                                                        |
@@ -1025,13 +1033,13 @@ Properties
 +---------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------+
 | :ref:`bool<class_bool>`                           | :ref:`rendering/global_illumination/gi/use_half_resolution<class_ProjectSettings_property_rendering/global_illumination/gi/use_half_resolution>`                                                   | ``false``                                                                                       |
 +---------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                             | :ref:`rendering/global_illumination/sdfgi/frames_to_converge<class_ProjectSettings_property_rendering/global_illumination/sdfgi/frames_to_converge>`                                               | ``4``                                                                                           |
+| :ref:`int<class_int>`                             | :ref:`rendering/global_illumination/sdfgi/frames_to_converge<class_ProjectSettings_property_rendering/global_illumination/sdfgi/frames_to_converge>`                                               | ``5``                                                                                           |
 +---------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------+
 | :ref:`int<class_int>`                             | :ref:`rendering/global_illumination/sdfgi/frames_to_update_lights<class_ProjectSettings_property_rendering/global_illumination/sdfgi/frames_to_update_lights>`                                     | ``2``                                                                                           |
 +---------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------+
 | :ref:`int<class_int>`                             | :ref:`rendering/global_illumination/sdfgi/probe_ray_count<class_ProjectSettings_property_rendering/global_illumination/sdfgi/probe_ray_count>`                                                     | ``1``                                                                                           |
 +---------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                             | :ref:`rendering/global_illumination/voxel_gi/quality<class_ProjectSettings_property_rendering/global_illumination/voxel_gi/quality>`                                                               | ``1``                                                                                           |
+| :ref:`int<class_int>`                             | :ref:`rendering/global_illumination/voxel_gi/quality<class_ProjectSettings_property_rendering/global_illumination/voxel_gi/quality>`                                                               | ``0``                                                                                           |
 +---------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------+
 | :ref:`int<class_int>`                             | :ref:`rendering/lightmapping/bake_performance/max_rays_per_pass<class_ProjectSettings_property_rendering/lightmapping/bake_performance/max_rays_per_pass>`                                         | ``32``                                                                                          |
 +---------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------+
@@ -1085,9 +1093,9 @@ Properties
 +---------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------+
 | :ref:`bool<class_bool>`                           | :ref:`rendering/reflections/sky_reflections/fast_filter_high_quality<class_ProjectSettings_property_rendering/reflections/sky_reflections/fast_filter_high_quality>`                               | ``false``                                                                                       |
 +---------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                             | :ref:`rendering/reflections/sky_reflections/ggx_samples<class_ProjectSettings_property_rendering/reflections/sky_reflections/ggx_samples>`                                                         | ``1024``                                                                                        |
+| :ref:`int<class_int>`                             | :ref:`rendering/reflections/sky_reflections/ggx_samples<class_ProjectSettings_property_rendering/reflections/sky_reflections/ggx_samples>`                                                         | ``32``                                                                                          |
 +---------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                             | :ref:`rendering/reflections/sky_reflections/ggx_samples.mobile<class_ProjectSettings_property_rendering/reflections/sky_reflections/ggx_samples.mobile>`                                           | ``128``                                                                                         |
+| :ref:`int<class_int>`                             | :ref:`rendering/reflections/sky_reflections/ggx_samples.mobile<class_ProjectSettings_property_rendering/reflections/sky_reflections/ggx_samples.mobile>`                                           | ``16``                                                                                          |
 +---------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------+
 | :ref:`int<class_int>`                             | :ref:`rendering/reflections/sky_reflections/roughness_layers<class_ProjectSettings_property_rendering/reflections/sky_reflections/roughness_layers>`                                               | ``8``                                                                                           |
 +---------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------+
@@ -1131,7 +1139,7 @@ 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>`                                           | ``3``                                                                                           |
+| :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_quality.mobile<class_ProjectSettings_property_rendering/shadows/directional_shadow/soft_shadow_quality.mobile>`                             | ``0``                                                                                           |
 +---------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------+
@@ -1149,7 +1157,7 @@ Properties
 +---------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------+
 | :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/shadows/soft_shadow_quality<class_ProjectSettings_property_rendering/shadows/shadows/soft_shadow_quality>`                                                                 | ``3``                                                                                           |
+| :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/shadows/soft_shadow_quality.mobile<class_ProjectSettings_property_rendering/shadows/shadows/soft_shadow_quality.mobile>`                                                   | ``0``                                                                                           |
 +---------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------+
@@ -1848,6 +1856,16 @@ If ``true``, enables warnings when a ternary operator may emit values with incom
 
 ----
 
+.. _class_ProjectSettings_property_debug/gdscript/warnings/int_assigned_to_enum:
+
+- :ref:`bool<class_bool>` **debug/gdscript/warnings/int_assigned_to_enum**
+
++-----------+----------+
+| *Default* | ``true`` |
++-----------+----------+
+
+----
+
 .. _class_ProjectSettings_property_debug/gdscript/warnings/integer_division:
 
 - :ref:`bool<class_bool>` **debug/gdscript/warnings/integer_division**
@@ -2644,6 +2662,42 @@ Path to a custom :ref:`Font<class_Font>` resource to use as default for all GUI
 
 ----
 
+.. _class_ProjectSettings_property_gui/theme/default_font_antialiased:
+
+- :ref:`bool<class_bool>` **gui/theme/default_font_antialiased**
+
++-----------+----------+
+| *Default* | ``true`` |
++-----------+----------+
+
+If set to ``true``, default font uses 8-bit anitialiased glyph rendering.  See :ref:`FontData.antialiased<class_FontData_property_antialiased>`.
+
+----
+
+.. _class_ProjectSettings_property_gui/theme/default_font_hinting:
+
+- :ref:`int<class_int>` **gui/theme/default_font_hinting**
+
++-----------+-------+
+| *Default* | ``1`` |
++-----------+-------+
+
+Default font hinting mode. See :ref:`FontData.hinting<class_FontData_property_hinting>`.
+
+----
+
+.. _class_ProjectSettings_property_gui/theme/default_font_subpixel_positioning:
+
+- :ref:`int<class_int>` **gui/theme/default_font_subpixel_positioning**
+
++-----------+-------+
+| *Default* | ``1`` |
++-----------+-------+
+
+Default font glyph sub-pixel positioning mode. See :ref:`FontData.subpixel_positioning<class_FontData_property_subpixel_positioning>`.
+
+----
+
 .. _class_ProjectSettings_property_gui/theme/default_theme_scale:
 
 - :ref:`float<class_float>` **gui/theme/default_theme_scale**
@@ -6883,7 +6937,7 @@ If ``true``, renders :ref:`VoxelGI<class_VoxelGI>` and SDFGI (:ref:`Environment.
 - :ref:`int<class_int>` **rendering/global_illumination/sdfgi/frames_to_converge**
 
 +-----------+-------+
-| *Default* | ``4`` |
+| *Default* | ``5`` |
 +-----------+-------+
 
 ----
@@ -6913,7 +6967,7 @@ If ``true``, renders :ref:`VoxelGI<class_VoxelGI>` and SDFGI (:ref:`Environment.
 - :ref:`int<class_int>` **rendering/global_illumination/voxel_gi/quality**
 
 +-----------+-------+
-| *Default* | ``1`` |
+| *Default* | ``0`` |
 +-----------+-------+
 
 ----
@@ -7122,6 +7176,8 @@ The automatic LOD bias to use for meshes rendered within the :ref:`ReflectionPro
 | *Default* | ``2`` |
 +-----------+-------+
 
+The `BVH <https://en.wikipedia.org/wiki/Bounding_volume_hierarchy>`__ quality to use when rendering the occlusion culling buffer. Higher values will result in more accurate occlusion culling, at the cost of higher CPU usage.
+
 ----
 
 .. _class_ProjectSettings_property_rendering/occlusion_culling/occlusion_rays_per_thread:
@@ -7132,6 +7188,8 @@ The automatic LOD bias to use for meshes rendered within the :ref:`ReflectionPro
 | *Default* | ``512`` |
 +-----------+---------+
 
+Higher values will result in more accurate occlusion culling, at the cost of higher CPU usage. The occlusion culling buffer's pixel count is roughly equal to ``occlusion_rays_per_thread * number_of_logical_cpu_cores``, so it will depend on the system's CPU. Therefore, CPUs with fewer cores will use a lower resolution to attempt keeping performance costs even across devices.
+
 ----
 
 .. _class_ProjectSettings_property_rendering/occlusion_culling/use_occlusion_culling:
@@ -7142,6 +7200,10 @@ The automatic LOD bias to use for meshes rendered within the :ref:`ReflectionPro
 | *Default* | ``false`` |
 +-----------+-----------+
 
+If ``true``, :ref:`OccluderInstance3D<class_OccluderInstance3D>` nodes will be usable for occlusion culling in 3D in the root viewport. In custom viewports, :ref:`Viewport.use_occlusion_culling<class_Viewport_property_use_occlusion_culling>` must be set to ``true`` instead.
+
+\ **Note:** Enabling occlusion culling has a cost on the CPU. Only enable occlusion culling if you actually plan to use it. Large open scenes with few or no objects blocking the view will generally not benefit much from occlusion culling. Large open scenes generally benefit more from mesh LOD and visibility ranges (:ref:`GeometryInstance3D.visibility_range_begin<class_GeometryInstance3D_property_visibility_range_begin>` and :ref:`GeometryInstance3D.visibility_range_end<class_GeometryInstance3D_property_visibility_range_end>`) compared to occlusion culling.
+
 ----
 
 .. _class_ProjectSettings_property_rendering/reflections/reflection_atlas/reflection_count:
@@ -7196,9 +7258,9 @@ Use a higher quality variant of the fast filtering algorithm. Significantly slow
 
 - :ref:`int<class_int>` **rendering/reflections/sky_reflections/ggx_samples**
 
-+-----------+----------+
-| *Default* | ``1024`` |
-+-----------+----------+
++-----------+--------+
+| *Default* | ``32`` |
++-----------+--------+
 
 Sets the number of samples to take when using importance sampling for :ref:`Sky<class_Sky>`\ s and :ref:`ReflectionProbe<class_ReflectionProbe>`\ s. A higher value will result in smoother, higher quality reflections, but increases time to calculate radiance maps. In general, fewer samples are needed for simpler, low dynamic range environments while more samples are needed for HDR environments and environments with a high level of detail.
 
@@ -7208,9 +7270,9 @@ Sets the number of samples to take when using importance sampling for :ref:`Sky<
 
 - :ref:`int<class_int>` **rendering/reflections/sky_reflections/ggx_samples.mobile**
 
-+-----------+---------+
-| *Default* | ``128`` |
-+-----------+---------+
++-----------+--------+
+| *Default* | ``16`` |
++-----------+--------+
 
 Lower-end override for :ref:`rendering/reflections/sky_reflections/ggx_samples<class_ProjectSettings_property_rendering/reflections/sky_reflections/ggx_samples>` on mobile devices, due to performance concerns or driver support.
 
@@ -7461,7 +7523,7 @@ Lower-end override for :ref:`rendering/shadows/directional_shadow/size<class_Pro
 - :ref:`int<class_int>` **rendering/shadows/directional_shadow/soft_shadow_quality**
 
 +-----------+-------+
-| *Default* | ``3`` |
+| *Default* | ``2`` |
 +-----------+-------+
 
 Quality setting for shadows cast by :ref:`DirectionalLight3D<class_DirectionalLight3D>`\ s. Higher quality settings use more samples when reading from shadow maps and are thus slower. Low quality settings may result in shadows looking grainy.
@@ -7571,7 +7633,7 @@ Lower-end override for :ref:`rendering/shadows/shadow_atlas/size<class_ProjectSe
 - :ref:`int<class_int>` **rendering/shadows/shadows/soft_shadow_quality**
 
 +-----------+-------+
-| *Default* | ``3`` |
+| *Default* | ``2`` |
 +-----------+-------+
 
 Quality setting for shadows cast by :ref:`OmniLight3D<class_OmniLight3D>`\ s and :ref:`SpotLight3D<class_SpotLight3D>`\ s. Higher quality settings use more samples when reading from shadow maps and are thus slower. Low quality settings may result in shadows looking grainy.

+ 52 - 0
classes/class_quadoccluder3d.rst

@@ -0,0 +1,52 @@
+:github_url: hide
+
+.. Generated automatically by doc/tools/make_rst.py in Godot's source tree.
+.. DO NOT EDIT THIS FILE, but the QuadOccluder3D.xml source instead.
+.. The source is found in doc/classes or modules/<name>/doc_classes.
+
+.. _class_QuadOccluder3D:
+
+QuadOccluder3D
+==============
+
+**Inherits:** :ref:`Occluder3D<class_Occluder3D>` **<** :ref:`Resource<class_Resource>` **<** :ref:`RefCounted<class_RefCounted>` **<** :ref:`Object<class_Object>`
+
+Flat plane shape for use with occlusion culling in :ref:`OccluderInstance3D<class_OccluderInstance3D>`.
+
+Description
+-----------
+
+``QuadOccluder3D`` stores a flat plane shape that can be used by the engine's occlusion culling system. See also :ref:`PolygonOccluder3D<class_PolygonOccluder3D>` if you need to customize the quad's shape.
+
+See :ref:`OccluderInstance3D<class_OccluderInstance3D>`'s documentation for instructions on setting up occlusion culling.
+
+Properties
+----------
+
++-------------------------------+-------------------------------------------------+-------------------+
+| :ref:`Vector2<class_Vector2>` | :ref:`size<class_QuadOccluder3D_property_size>` | ``Vector2(1, 1)`` |
++-------------------------------+-------------------------------------------------+-------------------+
+
+Property Descriptions
+---------------------
+
+.. _class_QuadOccluder3D_property_size:
+
+- :ref:`Vector2<class_Vector2>` **size**
+
++-----------+-------------------+
+| *Default* | ``Vector2(1, 1)`` |
++-----------+-------------------+
+| *Setter*  | set_size(value)   |
++-----------+-------------------+
+| *Getter*  | get_size()        |
++-----------+-------------------+
+
+The quad's size in 3D units.
+
+.. |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.)`

+ 4 - 2
classes/class_rect2.rst

@@ -229,7 +229,7 @@ Returns a copy of this ``Rect2`` expanded to include a given point.
 
 - :ref:`float<class_float>` **get_area** **(** **)** |const|
 
-Returns the area of the ``Rect2``.
+Returns the area of the ``Rect2``. See also :ref:`has_no_area<class_Rect2_method_has_no_area>`.
 
 ----
 
@@ -269,7 +269,9 @@ Returns a copy of the ``Rect2`` grown by the specified ``amount`` on the specifi
 
 - :ref:`bool<class_bool>` **has_no_area** **(** **)** |const|
 
-Returns ``true`` if the ``Rect2`` is flat or empty.
+Returns ``true`` if the ``Rect2`` is flat or empty, ``false`` otherwise. See also :ref:`get_area<class_Rect2_method_get_area>`.
+
+\ **Note:** If the ``Rect2`` has a negative size and is not flat or empty, :ref:`has_no_area<class_Rect2_method_has_no_area>` will return ``true``.
 
 ----
 

+ 4 - 2
classes/class_rect2i.rst

@@ -219,7 +219,7 @@ Returns a copy of this ``Rect2i`` expanded so that the borders align with the gi
 
 - :ref:`int<class_int>` **get_area** **(** **)** |const|
 
-Returns the area of the ``Rect2i``.
+Returns the area of the ``Rect2i``. See also :ref:`has_no_area<class_Rect2i_method_has_no_area>`.
 
 ----
 
@@ -261,7 +261,9 @@ Returns a copy of the ``Rect2i`` grown by the specified ``amount`` on the specif
 
 - :ref:`bool<class_bool>` **has_no_area** **(** **)** |const|
 
-Returns ``true`` if the ``Rect2i`` is flat or empty.
+Returns ``true`` if the ``Rect2i`` is flat or empty, ``false`` otherwise. See also :ref:`get_area<class_Rect2i_method_get_area>`.
+
+\ **Note:** If the ``Rect2i`` has a negative size and is not flat or empty, :ref:`has_no_area<class_Rect2i_method_has_no_area>` will return ``true``.
 
 ----
 

文件差异内容过多而无法显示
+ 0 - 0
classes/class_refcounted.rst


+ 11 - 5
classes/class_renderingserver.rst

@@ -1211,7 +1211,7 @@ enum **ArrayFormat**:
 
 - **ARRAY_FORMAT_INDEX** = **4096** --- Flag used to mark an index array.
 
-- **ARRAY_FORMAT_BLEND_SHAPE_MASK** = **2147475463**
+- **ARRAY_FORMAT_BLEND_SHAPE_MASK** = **7**
 
 - **ARRAY_FORMAT_CUSTOM_BASE** = **13**
 
@@ -2295,19 +2295,19 @@ enum **EnvironmentSSILQuality**:
 
 .. _enum_RenderingServer_EnvironmentSDFGIYScale:
 
-.. _class_RenderingServer_constant_ENV_SDFGI_Y_SCALE_DISABLED:
+.. _class_RenderingServer_constant_ENV_SDFGI_Y_SCALE_50_PERCENT:
 
 .. _class_RenderingServer_constant_ENV_SDFGI_Y_SCALE_75_PERCENT:
 
-.. _class_RenderingServer_constant_ENV_SDFGI_Y_SCALE_50_PERCENT:
+.. _class_RenderingServer_constant_ENV_SDFGI_Y_SCALE_100_PERCENT:
 
 enum **EnvironmentSDFGIYScale**:
 
-- **ENV_SDFGI_Y_SCALE_DISABLED** = **0**
+- **ENV_SDFGI_Y_SCALE_50_PERCENT** = **0**
 
 - **ENV_SDFGI_Y_SCALE_75_PERCENT** = **1**
 
-- **ENV_SDFGI_Y_SCALE_50_PERCENT** = **2**
+- **ENV_SDFGI_Y_SCALE_100_PERCENT** = **2**
 
 ----
 
@@ -4332,6 +4332,12 @@ Sets a material that will override the material for all surfaces on the mesh ass
 
 Sets the transparency for the given geometry instance. Equivalent to :ref:`GeometryInstance3D.transparency<class_GeometryInstance3D_property_transparency>`.
 
+A transparency of ``0.0`` is fully opaque, while ``1.0`` is fully transparent. Values greater than ``0.0`` (exclusive) will force the geometry's materials to go through the transparent pipeline, which is slower to render and can exhibit rendering issues due to incorrect transparency sorting. However, unlike using a transparent material, setting ``transparency`` to a value greater than ``0.0`` (exclusive) will *not* disable shadow rendering.
+
+In spatial shaders, ``1.0 - transparency`` is set as the default value of the ``ALPHA`` built-in.
+
+\ **Note:** ``transparency`` is clamped between ``0.0`` and ``1.0``, so this property cannot be used to make transparent materials more opaque than they originally are.
+
 ----
 
 .. _class_RenderingServer_method_instance_geometry_set_visibility_range:

文件差异内容过多而无法显示
+ 0 - 0
classes/class_resource.rst


+ 2 - 2
classes/class_resourceuid.rst

@@ -19,7 +19,7 @@ Methods
 +-----------------------------+-----------------------------------------------------------------------------------------------------------------------+
 | void                        | :ref:`add_id<class_ResourceUID_method_add_id>` **(** :ref:`int<class_int>` id, :ref:`String<class_String>` path **)** |
 +-----------------------------+-----------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`       | :ref:`create_id<class_ResourceUID_method_create_id>` **(** **)** |const|                                              |
+| :ref:`int<class_int>`       | :ref:`create_id<class_ResourceUID_method_create_id>` **(** **)**                                                      |
 +-----------------------------+-----------------------------------------------------------------------------------------------------------------------+
 | :ref:`String<class_String>` | :ref:`get_id_path<class_ResourceUID_method_get_id_path>` **(** :ref:`int<class_int>` id **)** |const|                 |
 +-----------------------------+-----------------------------------------------------------------------------------------------------------------------+
@@ -52,7 +52,7 @@ Method Descriptions
 
 .. _class_ResourceUID_method_create_id:
 
-- :ref:`int<class_int>` **create_id** **(** **)** |const|
+- :ref:`int<class_int>` **create_id** **(** **)**
 
 ----
 

+ 90 - 0
classes/class_richtextlabel.rst

@@ -38,6 +38,8 @@ Tutorials
 Properties
 ----------
 
++--------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+
+| :ref:`AutowrapMode<enum_RichTextLabel_AutowrapMode>`                           | :ref:`autowrap_mode<class_RichTextLabel_property_autowrap_mode>`                                                 | ``3``                                                                         |
 +--------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+
 | :ref:`bool<class_bool>`                                                        | :ref:`bbcode_enabled<class_RichTextLabel_property_bbcode_enabled>`                                               | ``false``                                                                     |
 +--------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+
@@ -90,12 +92,22 @@ Methods
 +-------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                                | :ref:`clear<class_RichTextLabel_method_clear>` **(** **)**                                                                                                                                                                                                                                                                                                                             |
 +-------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`               | :ref:`get_character_line<class_RichTextLabel_method_get_character_line>` **(** :ref:`int<class_int>` character **)**                                                                                                                                                                                                                                                                   |
++-------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`               | :ref:`get_character_paragraph<class_RichTextLabel_method_get_character_paragraph>` **(** :ref:`int<class_int>` character **)**                                                                                                                                                                                                                                                         |
++-------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`int<class_int>`               | :ref:`get_content_height<class_RichTextLabel_method_get_content_height>` **(** **)** |const|                                                                                                                                                                                                                                                                                           |
 +-------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`               | :ref:`get_content_width<class_RichTextLabel_method_get_content_width>` **(** **)** |const|                                                                                                                                                                                                                                                                                             |
++-------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`int<class_int>`               | :ref:`get_line_count<class_RichTextLabel_method_get_line_count>` **(** **)** |const|                                                                                                                                                                                                                                                                                                   |
 +-------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`           | :ref:`get_line_offset<class_RichTextLabel_method_get_line_offset>` **(** :ref:`int<class_int>` line **)**                                                                                                                                                                                                                                                                              |
++-------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`int<class_int>`               | :ref:`get_paragraph_count<class_RichTextLabel_method_get_paragraph_count>` **(** **)** |const|                                                                                                                                                                                                                                                                                         |
 +-------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`           | :ref:`get_paragraph_offset<class_RichTextLabel_method_get_paragraph_offset>` **(** :ref:`int<class_int>` paragraph **)**                                                                                                                                                                                                                                                               |
++-------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`String<class_String>`         | :ref:`get_parsed_text<class_RichTextLabel_method_get_parsed_text>` **(** **)** |const|                                                                                                                                                                                                                                                                                                 |
 +-------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`String<class_String>`         | :ref:`get_selected_text<class_RichTextLabel_method_get_selected_text>` **(** **)** |const|                                                                                                                                                                                                                                                                                             |
@@ -270,6 +282,28 @@ Triggers when the mouse enters a meta tag.
 Enumerations
 ------------
 
+.. _enum_RichTextLabel_AutowrapMode:
+
+.. _class_RichTextLabel_constant_AUTOWRAP_OFF:
+
+.. _class_RichTextLabel_constant_AUTOWRAP_ARBITRARY:
+
+.. _class_RichTextLabel_constant_AUTOWRAP_WORD:
+
+.. _class_RichTextLabel_constant_AUTOWRAP_WORD_SMART:
+
+enum **AutowrapMode**:
+
+- **AUTOWRAP_OFF** = **0** --- Autowrap is disabled.
+
+- **AUTOWRAP_ARBITRARY** = **1** --- Wraps the text inside the node's bounding rectangle by allowing to break lines at arbitrary positions, which is useful when very limited space is available.
+
+- **AUTOWRAP_WORD** = **2** --- Wraps the text inside the node's bounding rectangle by soft-breaking between words.
+
+- **AUTOWRAP_WORD_SMART** = **3** --- Behaves similarly to :ref:`AUTOWRAP_WORD<class_RichTextLabel_constant_AUTOWRAP_WORD>`, but force-breaks a word if that single word does not fit in one line.
+
+----
+
 .. _enum_RichTextLabel_ListType:
 
 .. _class_RichTextLabel_constant_LIST_NUMBERS:
@@ -429,6 +463,22 @@ enum **VisibleCharactersBehavior**:
 Property Descriptions
 ---------------------
 
+.. _class_RichTextLabel_property_autowrap_mode:
+
+- :ref:`AutowrapMode<enum_RichTextLabel_AutowrapMode>` **autowrap_mode**
+
++-----------+--------------------------+
+| *Default* | ``3``                    |
++-----------+--------------------------+
+| *Setter*  | set_autowrap_mode(value) |
++-----------+--------------------------+
+| *Getter*  | get_autowrap_mode()      |
++-----------+--------------------------+
+
+If set to something other than :ref:`AUTOWRAP_OFF<class_RichTextLabel_constant_AUTOWRAP_OFF>`, the text gets wrapped inside the node's bounding rectangle. To see how each mode behaves, see :ref:`AutowrapMode<enum_RichTextLabel_AutowrapMode>`.
+
+----
+
 .. _class_RichTextLabel_property_bbcode_enabled:
 
 - :ref:`bool<class_bool>` **bbcode_enabled**
@@ -764,6 +814,22 @@ Clears the tag stack and sets :ref:`text<class_RichTextLabel_property_text>` to
 
 ----
 
+.. _class_RichTextLabel_method_get_character_line:
+
+- :ref:`int<class_int>` **get_character_line** **(** :ref:`int<class_int>` character **)**
+
+Returns the line number of the character position provided.
+
+----
+
+.. _class_RichTextLabel_method_get_character_paragraph:
+
+- :ref:`int<class_int>` **get_character_paragraph** **(** :ref:`int<class_int>` character **)**
+
+Returns the paragraph number of the character position provided.
+
+----
+
 .. _class_RichTextLabel_method_get_content_height:
 
 - :ref:`int<class_int>` **get_content_height** **(** **)** |const|
@@ -772,6 +838,14 @@ Returns the height of the content.
 
 ----
 
+.. _class_RichTextLabel_method_get_content_width:
+
+- :ref:`int<class_int>` **get_content_width** **(** **)** |const|
+
+Returns the width of the content.
+
+----
+
 .. _class_RichTextLabel_method_get_line_count:
 
 - :ref:`int<class_int>` **get_line_count** **(** **)** |const|
@@ -780,6 +854,14 @@ Returns the total number of lines in the text. Wrapped text is counted as multip
 
 ----
 
+.. _class_RichTextLabel_method_get_line_offset:
+
+- :ref:`float<class_float>` **get_line_offset** **(** :ref:`int<class_int>` line **)**
+
+Returns the vertical offset of the line found at the provided index.
+
+----
+
 .. _class_RichTextLabel_method_get_paragraph_count:
 
 - :ref:`int<class_int>` **get_paragraph_count** **(** **)** |const|
@@ -788,6 +870,14 @@ Returns the total number of paragraphs (newlines or ``p`` tags in the tag stack'
 
 ----
 
+.. _class_RichTextLabel_method_get_paragraph_offset:
+
+- :ref:`float<class_float>` **get_paragraph_offset** **(** :ref:`int<class_int>` paragraph **)**
+
+Returns the vertical offset of the paragraph found at the provided index.
+
+----
+
 .. _class_RichTextLabel_method_get_parsed_text:
 
 - :ref:`String<class_String>` **get_parsed_text** **(** **)** |const|

+ 13 - 3
classes/class_rid.rst

@@ -28,9 +28,11 @@ Constructors
 Methods
 -------
 
-+-----------------------+------------------------------------------------------------+
-| :ref:`int<class_int>` | :ref:`get_id<class_RID_method_get_id>` **(** **)** |const| |
-+-----------------------+------------------------------------------------------------+
++-------------------------+----------------------------------------------------------------+
+| :ref:`int<class_int>`   | :ref:`get_id<class_RID_method_get_id>` **(** **)** |const|     |
++-------------------------+----------------------------------------------------------------+
+| :ref:`bool<class_bool>` | :ref:`is_valid<class_RID_method_is_valid>` **(** **)** |const| |
++-------------------------+----------------------------------------------------------------+
 
 Operators
 ---------
@@ -77,6 +79,14 @@ Method Descriptions
 
 Returns the ID of the referenced resource.
 
+----
+
+.. _class_RID_method_is_valid:
+
+- :ref:`bool<class_bool>` **is_valid** **(** **)** |const|
+
+Returns ``true`` if ``RID`` is valid.
+
 Operator Descriptions
 ---------------------
 

+ 91 - 0
classes/class_scenereplicationconfig.rst

@@ -0,0 +1,91 @@
+:github_url: hide
+
+.. Generated automatically by doc/tools/make_rst.py in Godot's source tree.
+.. DO NOT EDIT THIS FILE, but the SceneReplicationConfig.xml source instead.
+.. The source is found in doc/classes or modules/<name>/doc_classes.
+
+.. _class_SceneReplicationConfig:
+
+SceneReplicationConfig
+======================
+
+**Inherits:** :ref:`Resource<class_Resource>` **<** :ref:`RefCounted<class_RefCounted>` **<** :ref:`Object<class_Object>`
+
+
+
+Methods
+-------
+
++-----------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                              | :ref:`add_property<class_SceneReplicationConfig_method_add_property>` **(** :ref:`NodePath<class_NodePath>` path, :ref:`int<class_int>` index=-1 **)**              |
++-----------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`NodePath[]<class_NodePath>` | :ref:`get_properties<class_SceneReplicationConfig_method_get_properties>` **(** **)** |const|                                                                       |
++-----------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`             | :ref:`property_get_index<class_SceneReplicationConfig_method_property_get_index>` **(** :ref:`NodePath<class_NodePath>` path **)** |const|                          |
++-----------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`           | :ref:`property_get_spawn<class_SceneReplicationConfig_method_property_get_spawn>` **(** :ref:`NodePath<class_NodePath>` path **)**                                  |
++-----------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`           | :ref:`property_get_sync<class_SceneReplicationConfig_method_property_get_sync>` **(** :ref:`NodePath<class_NodePath>` path **)**                                    |
++-----------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                              | :ref:`property_set_spawn<class_SceneReplicationConfig_method_property_set_spawn>` **(** :ref:`NodePath<class_NodePath>` path, :ref:`bool<class_bool>` enabled **)** |
++-----------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                              | :ref:`property_set_sync<class_SceneReplicationConfig_method_property_set_sync>` **(** :ref:`NodePath<class_NodePath>` path, :ref:`bool<class_bool>` enabled **)**   |
++-----------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                              | :ref:`remove_property<class_SceneReplicationConfig_method_remove_property>` **(** :ref:`NodePath<class_NodePath>` path **)**                                        |
++-----------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+Method Descriptions
+-------------------
+
+.. _class_SceneReplicationConfig_method_add_property:
+
+- void **add_property** **(** :ref:`NodePath<class_NodePath>` path, :ref:`int<class_int>` index=-1 **)**
+
+----
+
+.. _class_SceneReplicationConfig_method_get_properties:
+
+- :ref:`NodePath[]<class_NodePath>` **get_properties** **(** **)** |const|
+
+----
+
+.. _class_SceneReplicationConfig_method_property_get_index:
+
+- :ref:`int<class_int>` **property_get_index** **(** :ref:`NodePath<class_NodePath>` path **)** |const|
+
+----
+
+.. _class_SceneReplicationConfig_method_property_get_spawn:
+
+- :ref:`bool<class_bool>` **property_get_spawn** **(** :ref:`NodePath<class_NodePath>` path **)**
+
+----
+
+.. _class_SceneReplicationConfig_method_property_get_sync:
+
+- :ref:`bool<class_bool>` **property_get_sync** **(** :ref:`NodePath<class_NodePath>` path **)**
+
+----
+
+.. _class_SceneReplicationConfig_method_property_set_spawn:
+
+- void **property_set_spawn** **(** :ref:`NodePath<class_NodePath>` path, :ref:`bool<class_bool>` enabled **)**
+
+----
+
+.. _class_SceneReplicationConfig_method_property_set_sync:
+
+- void **property_set_sync** **(** :ref:`NodePath<class_NodePath>` path, :ref:`bool<class_bool>` enabled **)**
+
+----
+
+.. _class_SceneReplicationConfig_method_remove_property:
+
+- void **remove_property** **(** :ref:`NodePath<class_NodePath>` path **)**
+
+.. |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.)`

+ 52 - 0
classes/class_sphereoccluder3d.rst

@@ -0,0 +1,52 @@
+:github_url: hide
+
+.. Generated automatically by doc/tools/make_rst.py in Godot's source tree.
+.. DO NOT EDIT THIS FILE, but the SphereOccluder3D.xml source instead.
+.. The source is found in doc/classes or modules/<name>/doc_classes.
+
+.. _class_SphereOccluder3D:
+
+SphereOccluder3D
+================
+
+**Inherits:** :ref:`Occluder3D<class_Occluder3D>` **<** :ref:`Resource<class_Resource>` **<** :ref:`RefCounted<class_RefCounted>` **<** :ref:`Object<class_Object>`
+
+Spherical shape for use with occlusion culling in :ref:`OccluderInstance3D<class_OccluderInstance3D>`.
+
+Description
+-----------
+
+``SphereOccluder3D`` stores a sphere shape that can be used by the engine's occlusion culling system.
+
+See :ref:`OccluderInstance3D<class_OccluderInstance3D>`'s documentation for instructions on setting up occlusion culling.
+
+Properties
+----------
+
++---------------------------+-------------------------------------------------------+---------+
+| :ref:`float<class_float>` | :ref:`radius<class_SphereOccluder3D_property_radius>` | ``1.0`` |
++---------------------------+-------------------------------------------------------+---------+
+
+Property Descriptions
+---------------------
+
+.. _class_SphereOccluder3D_property_radius:
+
+- :ref:`float<class_float>` **radius**
+
++-----------+-------------------+
+| *Default* | ``1.0``           |
++-----------+-------------------+
+| *Setter*  | set_radius(value) |
++-----------+-------------------+
+| *Getter*  | get_radius()      |
++-----------+-------------------+
+
+The sphere's radius in 3D units.
+
+.. |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.)`

+ 1 - 1
classes/class_spritebase3d.rst

@@ -232,7 +232,7 @@ If ``true``, texture is flipped vertically.
 
 A color value used to *multiply* the texture's colors. Can be used for mood-coloring or to simulate the color of light.
 
-\ **Note:** If a :ref:`GeometryInstance3D.material_override<class_GeometryInstance3D_property_material_override>` is defined on the ``SpriteBase3D``, the material override must be configured to take vertex colors into account for albedo. Otherwise, the color defined in :ref:`modulate<class_SpriteBase3D_property_modulate>` will be ignored. For a :ref:`BaseMaterial3D<class_BaseMaterial3D>`, :ref:`BaseMaterial3D.vertex_color_use_as_albedo<class_BaseMaterial3D_property_vertex_color_use_as_albedo>` must be ``true``. For a :ref:`ShaderMaterial<class_ShaderMaterial>`, ``ALBEDO *= COLOR.rgb;[/color] must be inserted in the shader's [code]fragment()`` function.
+\ **Note:** If a :ref:`GeometryInstance3D.material_override<class_GeometryInstance3D_property_material_override>` is defined on the ``SpriteBase3D``, the material override must be configured to take vertex colors into account for albedo. Otherwise, the color defined in :ref:`modulate<class_SpriteBase3D_property_modulate>` will be ignored. For a :ref:`BaseMaterial3D<class_BaseMaterial3D>`, :ref:`BaseMaterial3D.vertex_color_use_as_albedo<class_BaseMaterial3D_property_vertex_color_use_as_albedo>` must be ``true``. For a :ref:`ShaderMaterial<class_ShaderMaterial>`, ``ALBEDO *= COLOR.rgb;`` must be inserted in the shader's ``fragment()`` function.
 
 ----
 

+ 21 - 0
classes/class_streampeerbuffer.rst

@@ -11,7 +11,14 @@ StreamPeerBuffer
 
 **Inherits:** :ref:`StreamPeer<class_StreamPeer>` **<** :ref:`RefCounted<class_RefCounted>` **<** :ref:`Object<class_Object>`
 
+Data buffer stream peer.
 
+Description
+-----------
+
+Data buffer stream peer that uses a byte array as the stream. This object can be used to handle binary data from network sessions. To handle binary data stored in files, :ref:`File<class_File>` can be used directly.
+
+A ``StreamPeerBuffer`` object keeps an internal cursor which is the offset in bytes to the start of the buffer. Get and put operations are performed at the cursor position and will move the cursor accordingly.
 
 Properties
 ----------
@@ -52,6 +59,8 @@ Property Descriptions
 | *Getter*  | get_data_array()      |
 +-----------+-----------------------+
 
+The underlying data buffer. Setting this value resets the cursor.
+
 Method Descriptions
 -------------------
 
@@ -59,36 +68,48 @@ Method Descriptions
 
 - void **clear** **(** **)**
 
+Clears the :ref:`data_array<class_StreamPeerBuffer_property_data_array>` and resets the cursor.
+
 ----
 
 .. _class_StreamPeerBuffer_method_duplicate:
 
 - :ref:`StreamPeerBuffer<class_StreamPeerBuffer>` **duplicate** **(** **)** |const|
 
+Returns a new ``StreamPeerBuffer`` with the same :ref:`data_array<class_StreamPeerBuffer_property_data_array>` content.
+
 ----
 
 .. _class_StreamPeerBuffer_method_get_position:
 
 - :ref:`int<class_int>` **get_position** **(** **)** |const|
 
+Returns the current cursor position.
+
 ----
 
 .. _class_StreamPeerBuffer_method_get_size:
 
 - :ref:`int<class_int>` **get_size** **(** **)** |const|
 
+Returns the size of :ref:`data_array<class_StreamPeerBuffer_property_data_array>`.
+
 ----
 
 .. _class_StreamPeerBuffer_method_resize:
 
 - void **resize** **(** :ref:`int<class_int>` size **)**
 
+Resizes the :ref:`data_array<class_StreamPeerBuffer_property_data_array>`. This *doesn't* update the cursor.
+
 ----
 
 .. _class_StreamPeerBuffer_method_seek:
 
 - void **seek** **(** :ref:`int<class_int>` position **)**
 
+Moves the cursor to the specified position. ``position`` must be a valid index of :ref:`data_array<class_StreamPeerBuffer_property_data_array>`.
+
 .. |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.)`

+ 37 - 3
classes/class_string.rst

@@ -54,6 +54,8 @@ Methods
 +-----------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`String<class_String>`                         | :ref:`chr<class_String_method_chr>` **(** :ref:`int<class_int>` char **)** |static|                                                                                             |
 +-----------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                             | :ref:`contains<class_String_method_contains>` **(** :ref:`String<class_String>` what **)** |const|                                                                              |
++-----------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`int<class_int>`                               | :ref:`count<class_String_method_count>` **(** :ref:`String<class_String>` what, :ref:`int<class_int>` from=0, :ref:`int<class_int>` to=0 **)** |const|                          |
 +-----------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`int<class_int>`                               | :ref:`countn<class_String_method_countn>` **(** :ref:`String<class_String>` what, :ref:`int<class_int>` from=0, :ref:`int<class_int>` to=0 **)** |const|                        |
@@ -78,6 +80,10 @@ Methods
 +-----------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`String<class_String>`                         | :ref:`get_slice<class_String_method_get_slice>` **(** :ref:`String<class_String>` delimiter, :ref:`int<class_int>` slice **)** |const|                                          |
 +-----------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                               | :ref:`get_slice_count<class_String_method_get_slice_count>` **(** :ref:`String<class_String>` delimiter **)** |const|                                                           |
++-----------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`                         | :ref:`get_slicec<class_String_method_get_slicec>` **(** :ref:`int<class_int>` delimiter, :ref:`int<class_int>` slice **)** |const|                                              |
++-----------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`int<class_int>`                               | :ref:`hash<class_String_method_hash>` **(** **)** |const|                                                                                                                       |
 +-----------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`int<class_int>`                               | :ref:`hex_to_int<class_String_method_hex_to_int>` **(** **)** |const|                                                                                                           |
@@ -365,6 +371,14 @@ To get a boolean result from a string comparison, use the ``==`` operator instea
 
 ----
 
+.. _class_String_method_contains:
+
+- :ref:`bool<class_bool>` **contains** **(** :ref:`String<class_String>` what **)** |const|
+
+Returns ``true`` if the string contains the given string.
+
+----
+
 .. _class_String_method_count:
 
 - :ref:`int<class_int>` **count** **(** :ref:`String<class_String>` what, :ref:`int<class_int>` from=0, :ref:`int<class_int>` to=0 **)** |const|
@@ -496,11 +510,31 @@ Example:
 
 ----
 
+.. _class_String_method_get_slice_count:
+
+- :ref:`int<class_int>` **get_slice_count** **(** :ref:`String<class_String>` delimiter **)** |const|
+
+Splits a string using a ``delimiter`` and returns a number of slices.
+
+----
+
+.. _class_String_method_get_slicec:
+
+- :ref:`String<class_String>` **get_slicec** **(** :ref:`int<class_int>` delimiter, :ref:`int<class_int>` slice **)** |const|
+
+Splits a string using a Unicode character with code ``delimiter`` and returns a substring at index ``slice``. Returns an empty string if the index doesn't exist.
+
+This is a more performant alternative to :ref:`split<class_String_method_split>` for cases when you need only one element from the array at a fixed index.
+
+----
+
 .. _class_String_method_hash:
 
 - :ref:`int<class_int>` **hash** **(** **)** |const|
 
-Hashes the string and returns a 32-bit integer.
+Returns the 32-bit hash value representing the string's contents.
+
+\ **Note:** ``String``\ s with equal content will always produce identical hash values. However, the reverse is not true. Returning identical hash values does *not* imply the strings are equal, because different strings can have identical hash values due to hash collisions.
 
 ----
 
@@ -727,7 +761,7 @@ Returns a copy of the string with characters removed from the left. The ``chars`
 
 - :ref:`bool<class_bool>` **match** **(** :ref:`String<class_String>` expr **)** |const|
 
-Does a simple case-sensitive expression match, where ``"*"`` matches zero or more arbitrary characters and ``"?"`` matches any single character except a period (``"."``).
+Does a simple case-sensitive expression match, where ``"*"`` matches zero or more arbitrary characters and ``"?"`` matches any single character except a period (``"."``). An empty string or empty expression always evaluates to ``false``.
 
 ----
 
@@ -735,7 +769,7 @@ Does a simple case-sensitive expression match, where ``"*"`` matches zero or mor
 
 - :ref:`bool<class_bool>` **matchn** **(** :ref:`String<class_String>` expr **)** |const|
 
-Does a simple case-insensitive expression match, where ``"*"`` matches zero or more arbitrary characters and ``"?"`` matches any single character except a period (``"."``).
+Does a simple case-insensitive expression match, where ``"*"`` matches zero or more arbitrary characters and ``"?"`` matches any single character except a period (``"."``). An empty string or empty expression always evaluates to ``false``.
 
 ----
 

+ 32 - 0
classes/class_stringname.rst

@@ -37,12 +37,20 @@ Operators
 +-------------------------+--------------------------------------------------------------------------------------------------------------+
 | :ref:`bool<class_bool>` | :ref:`operator !=<class_StringName_operator_neq_bool>` **(** :ref:`StringName<class_StringName>` right **)** |
 +-------------------------+--------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>` | :ref:`operator <<class_StringName_operator_lt_bool>` **(** :ref:`StringName<class_StringName>` right **)**   |
++-------------------------+--------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>` | :ref:`operator <=<class_StringName_operator_lte_bool>` **(** :ref:`StringName<class_StringName>` right **)** |
++-------------------------+--------------------------------------------------------------------------------------------------------------+
 | :ref:`bool<class_bool>` | :ref:`operator ==<class_StringName_operator_eq_bool>` **(** **)**                                            |
 +-------------------------+--------------------------------------------------------------------------------------------------------------+
 | :ref:`bool<class_bool>` | :ref:`operator ==<class_StringName_operator_eq_bool>` **(** :ref:`String<class_String>` right **)**          |
 +-------------------------+--------------------------------------------------------------------------------------------------------------+
 | :ref:`bool<class_bool>` | :ref:`operator ==<class_StringName_operator_eq_bool>` **(** :ref:`StringName<class_StringName>` right **)**  |
 +-------------------------+--------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>` | :ref:`operator ><class_StringName_operator_gt_bool>` **(** :ref:`StringName<class_StringName>` right **)**   |
++-------------------------+--------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>` | :ref:`operator >=<class_StringName_operator_gte_bool>` **(** :ref:`StringName<class_StringName>` right **)** |
++-------------------------+--------------------------------------------------------------------------------------------------------------+
 
 Constructor Descriptions
 ------------------------
@@ -82,6 +90,18 @@ Operator Descriptions
 
 ----
 
+.. _class_StringName_operator_lt_bool:
+
+- :ref:`bool<class_bool>` **operator <** **(** :ref:`StringName<class_StringName>` right **)**
+
+----
+
+.. _class_StringName_operator_lte_bool:
+
+- :ref:`bool<class_bool>` **operator <=** **(** :ref:`StringName<class_StringName>` right **)**
+
+----
+
 .. _class_StringName_operator_eq_bool:
 
 - :ref:`bool<class_bool>` **operator ==** **(** **)**
@@ -94,6 +114,18 @@ Operator Descriptions
 
 - :ref:`bool<class_bool>` **operator ==** **(** :ref:`StringName<class_StringName>` right **)**
 
+----
+
+.. _class_StringName_operator_gt_bool:
+
+- :ref:`bool<class_bool>` **operator >** **(** :ref:`StringName<class_StringName>` right **)**
+
+----
+
+.. _class_StringName_operator_gte_bool:
+
+- :ref:`bool<class_bool>` **operator >=** **(** :ref:`StringName<class_StringName>` right **)**
+
 .. |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_subviewportcontainer.rst

@@ -20,6 +20,8 @@ A :ref:`Container<class_Container>` node that holds a :ref:`SubViewport<class_Su
 
 \ **Note:** Changing a SubViewportContainer's :ref:`Control.rect_scale<class_Control_property_rect_scale>` will cause its contents to appear distorted. To change its visual size without causing distortion, adjust the node's margins instead (if it's not already in a container).
 
+\ **Note:** The SubViewportContainer forwards mouse-enter and mouse-exit notifications to its sub-viewports.
+
 Properties
 ----------
 

+ 38 - 38
classes/class_textline.rst

@@ -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="" **)** |
-+-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| 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>` 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 **)**                                                                                                                                                                             |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 
 Enumerations
 ------------
@@ -247,7 +247,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:`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 **)**
 
 Adds text span and font to draw it.
 

+ 2 - 2
classes/class_textparagraph.rst

@@ -49,7 +49,7 @@ Methods
 +---------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`bool<class_bool>`         | :ref:`add_object<class_TextParagraph_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_TextParagraph_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:`bool<class_bool>`         | :ref:`add_string<class_TextParagraph_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_TextParagraph_method_clear>` **(** **)**                                                                                                                                                                                                                                                                         |
 +---------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
@@ -317,7 +317,7 @@ Adds inline object to the text buffer, ``key`` must be unique. In the text, obje
 
 .. _class_TextParagraph_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:`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 **)**
 
 Adds text span and font to draw it.
 

+ 408 - 330
classes/class_textserver.rst

@@ -23,333 +23,343 @@ Description
 Methods
 -------
 
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`RID<class_RID>`                               | :ref:`create_font<class_TextServer_method_create_font>` **(** **)**                                                                                                                                                                                                                                                                                                    |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`RID<class_RID>`                               | :ref:`create_shaped_text<class_TextServer_method_create_shaped_text>` **(** :ref:`Direction<enum_TextServer_Direction>` direction=0, :ref:`Orientation<enum_TextServer_Orientation>` orientation=0 **)**                                                                                                                                                               |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`draw_hex_code_box<class_TextServer_method_draw_hex_code_box>` **(** :ref:`RID<class_RID>` canvas, :ref:`int<class_int>` size, :ref:`Vector2<class_Vector2>` pos, :ref:`int<class_int>` index, :ref:`Color<class_Color>` color **)** |const|                                                                                                                      |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`font_clear_glyphs<class_TextServer_method_font_clear_glyphs>` **(** :ref:`RID<class_RID>` font_rid, :ref:`Vector2i<class_Vector2i>` size **)**                                                                                                                                                                                                                   |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`font_clear_kerning_map<class_TextServer_method_font_clear_kerning_map>` **(** :ref:`RID<class_RID>` font_rid, :ref:`int<class_int>` size **)**                                                                                                                                                                                                                   |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`font_clear_size_cache<class_TextServer_method_font_clear_size_cache>` **(** :ref:`RID<class_RID>` font_rid **)**                                                                                                                                                                                                                                                 |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`font_clear_textures<class_TextServer_method_font_clear_textures>` **(** :ref:`RID<class_RID>` font_rid, :ref:`Vector2i<class_Vector2i>` size **)**                                                                                                                                                                                                               |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`font_draw_glyph<class_TextServer_method_font_draw_glyph>` **(** :ref:`RID<class_RID>` font_rid, :ref:`RID<class_RID>` canvas, :ref:`int<class_int>` size, :ref:`Vector2<class_Vector2>` pos, :ref:`int<class_int>` index, :ref:`Color<class_Color>` color=Color(1, 1, 1, 1) **)** |const|                                                                        |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`font_draw_glyph_outline<class_TextServer_method_font_draw_glyph_outline>` **(** :ref:`RID<class_RID>` font_rid, :ref:`RID<class_RID>` canvas, :ref:`int<class_int>` size, :ref:`int<class_int>` outline_size, :ref:`Vector2<class_Vector2>` pos, :ref:`int<class_int>` index, :ref:`Color<class_Color>` color=Color(1, 1, 1, 1) **)** |const|                    |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                           | :ref:`font_get_ascent<class_TextServer_method_font_get_ascent>` **(** :ref:`RID<class_RID>` font_rid, :ref:`int<class_int>` size **)** |const|                                                                                                                                                                                                                         |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                           | :ref:`font_get_descent<class_TextServer_method_font_get_descent>` **(** :ref:`RID<class_RID>` font_rid, :ref:`int<class_int>` size **)** |const|                                                                                                                                                                                                                       |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                               | :ref:`font_get_fixed_size<class_TextServer_method_font_get_fixed_size>` **(** :ref:`RID<class_RID>` font_rid **)** |const|                                                                                                                                                                                                                                             |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                           | :ref:`font_get_global_oversampling<class_TextServer_method_font_get_global_oversampling>` **(** **)** |const|                                                                                                                                                                                                                                                          |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Vector2<class_Vector2>`                       | :ref:`font_get_glyph_advance<class_TextServer_method_font_get_glyph_advance>` **(** :ref:`RID<class_RID>` font_rid, :ref:`int<class_int>` size, :ref:`int<class_int>` glyph **)** |const|                                                                                                                                                                              |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Dictionary<class_Dictionary>`                 | :ref:`font_get_glyph_contours<class_TextServer_method_font_get_glyph_contours>` **(** :ref:`RID<class_RID>` font, :ref:`int<class_int>` size, :ref:`int<class_int>` index **)** |const|                                                                                                                                                                                |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                               | :ref:`font_get_glyph_index<class_TextServer_method_font_get_glyph_index>` **(** :ref:`RID<class_RID>` font_rid, :ref:`int<class_int>` size, :ref:`int<class_int>` char, :ref:`int<class_int>` variation_selector **)** |const|                                                                                                                                         |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Array<class_Array>`                           | :ref:`font_get_glyph_list<class_TextServer_method_font_get_glyph_list>` **(** :ref:`RID<class_RID>` font_rid, :ref:`Vector2i<class_Vector2i>` size **)** |const|                                                                                                                                                                                                       |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Vector2<class_Vector2>`                       | :ref:`font_get_glyph_offset<class_TextServer_method_font_get_glyph_offset>` **(** :ref:`RID<class_RID>` font_rid, :ref:`Vector2i<class_Vector2i>` size, :ref:`int<class_int>` glyph **)** |const|                                                                                                                                                                      |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Vector2<class_Vector2>`                       | :ref:`font_get_glyph_size<class_TextServer_method_font_get_glyph_size>` **(** :ref:`RID<class_RID>` font_rid, :ref:`Vector2i<class_Vector2i>` size, :ref:`int<class_int>` glyph **)** |const|                                                                                                                                                                          |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                               | :ref:`font_get_glyph_texture_idx<class_TextServer_method_font_get_glyph_texture_idx>` **(** :ref:`RID<class_RID>` font_rid, :ref:`Vector2i<class_Vector2i>` size, :ref:`int<class_int>` glyph **)** |const|                                                                                                                                                            |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Rect2<class_Rect2>`                           | :ref:`font_get_glyph_uv_rect<class_TextServer_method_font_get_glyph_uv_rect>` **(** :ref:`RID<class_RID>` font_rid, :ref:`Vector2i<class_Vector2i>` size, :ref:`int<class_int>` glyph **)** |const|                                                                                                                                                                    |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Hinting<enum_TextServer_Hinting>`             | :ref:`font_get_hinting<class_TextServer_method_font_get_hinting>` **(** :ref:`RID<class_RID>` font_rid **)** |const|                                                                                                                                                                                                                                                   |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Vector2<class_Vector2>`                       | :ref:`font_get_kerning<class_TextServer_method_font_get_kerning>` **(** :ref:`RID<class_RID>` font_rid, :ref:`int<class_int>` size, :ref:`Vector2i<class_Vector2i>` glyph_pair **)** |const|                                                                                                                                                                           |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Array<class_Array>`                           | :ref:`font_get_kerning_list<class_TextServer_method_font_get_kerning_list>` **(** :ref:`RID<class_RID>` font_rid, :ref:`int<class_int>` size **)** |const|                                                                                                                                                                                                             |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                             | :ref:`font_get_language_support_override<class_TextServer_method_font_get_language_support_override>` **(** :ref:`RID<class_RID>` font_rid, :ref:`String<class_String>` language **)**                                                                                                                                                                                 |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`PackedStringArray<class_PackedStringArray>`   | :ref:`font_get_language_support_overrides<class_TextServer_method_font_get_language_support_overrides>` **(** :ref:`RID<class_RID>` font_rid **)**                                                                                                                                                                                                                     |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                               | :ref:`font_get_msdf_pixel_range<class_TextServer_method_font_get_msdf_pixel_range>` **(** :ref:`RID<class_RID>` font_rid **)** |const|                                                                                                                                                                                                                                 |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                               | :ref:`font_get_msdf_size<class_TextServer_method_font_get_msdf_size>` **(** :ref:`RID<class_RID>` font_rid **)** |const|                                                                                                                                                                                                                                               |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_String>`                         | :ref:`font_get_name<class_TextServer_method_font_get_name>` **(** :ref:`RID<class_RID>` font_rid **)** |const|                                                                                                                                                                                                                                                         |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Dictionary<class_Dictionary>`                 | :ref:`font_get_opentype_feature_overrides<class_TextServer_method_font_get_opentype_feature_overrides>` **(** :ref:`RID<class_RID>` font_rid **)** |const|                                                                                                                                                                                                             |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                           | :ref:`font_get_oversampling<class_TextServer_method_font_get_oversampling>` **(** :ref:`RID<class_RID>` font_rid **)** |const|                                                                                                                                                                                                                                         |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                           | :ref:`font_get_scale<class_TextServer_method_font_get_scale>` **(** :ref:`RID<class_RID>` font_rid, :ref:`int<class_int>` size **)** |const|                                                                                                                                                                                                                           |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                             | :ref:`font_get_script_support_override<class_TextServer_method_font_get_script_support_override>` **(** :ref:`RID<class_RID>` font_rid, :ref:`String<class_String>` script **)**                                                                                                                                                                                       |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`PackedStringArray<class_PackedStringArray>`   | :ref:`font_get_script_support_overrides<class_TextServer_method_font_get_script_support_overrides>` **(** :ref:`RID<class_RID>` font_rid **)**                                                                                                                                                                                                                         |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Array<class_Array>`                           | :ref:`font_get_size_cache_list<class_TextServer_method_font_get_size_cache_list>` **(** :ref:`RID<class_RID>` font_rid **)** |const|                                                                                                                                                                                                                                   |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                               | :ref:`font_get_spacing<class_TextServer_method_font_get_spacing>` **(** :ref:`RID<class_RID>` font_rid, :ref:`int<class_int>` size, :ref:`SpacingType<enum_TextServer_SpacingType>` spacing **)** |const|                                                                                                                                                              |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                               | :ref:`font_get_style<class_TextServer_method_font_get_style>` **(** :ref:`RID<class_RID>` font_rid **)** |const|                                                                                                                                                                                                                                                       |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_String>`                         | :ref:`font_get_style_name<class_TextServer_method_font_get_style_name>` **(** :ref:`RID<class_RID>` font_rid **)** |const|                                                                                                                                                                                                                                             |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_String>`                         | :ref:`font_get_supported_chars<class_TextServer_method_font_get_supported_chars>` **(** :ref:`RID<class_RID>` font_rid **)** |const|                                                                                                                                                                                                                                   |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                               | :ref:`font_get_texture_count<class_TextServer_method_font_get_texture_count>` **(** :ref:`RID<class_RID>` font_rid, :ref:`Vector2i<class_Vector2i>` size **)** |const|                                                                                                                                                                                                 |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Image<class_Image>`                           | :ref:`font_get_texture_image<class_TextServer_method_font_get_texture_image>` **(** :ref:`RID<class_RID>` font_rid, :ref:`Vector2i<class_Vector2i>` size, :ref:`int<class_int>` texture_index **)** |const|                                                                                                                                                            |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`PackedInt32Array<class_PackedInt32Array>`     | :ref:`font_get_texture_offsets<class_TextServer_method_font_get_texture_offsets>` **(** :ref:`RID<class_RID>` font_rid, :ref:`Vector2i<class_Vector2i>` size, :ref:`int<class_int>` texture_index **)** |const|                                                                                                                                                        |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                           | :ref:`font_get_underline_position<class_TextServer_method_font_get_underline_position>` **(** :ref:`RID<class_RID>` font_rid, :ref:`int<class_int>` size **)** |const|                                                                                                                                                                                                 |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                           | :ref:`font_get_underline_thickness<class_TextServer_method_font_get_underline_thickness>` **(** :ref:`RID<class_RID>` font_rid, :ref:`int<class_int>` size **)** |const|                                                                                                                                                                                               |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Dictionary<class_Dictionary>`                 | :ref:`font_get_variation_coordinates<class_TextServer_method_font_get_variation_coordinates>` **(** :ref:`RID<class_RID>` font_rid **)** |const|                                                                                                                                                                                                                       |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                             | :ref:`font_has_char<class_TextServer_method_font_has_char>` **(** :ref:`RID<class_RID>` font_rid, :ref:`int<class_int>` char **)** |const|                                                                                                                                                                                                                             |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                             | :ref:`font_is_antialiased<class_TextServer_method_font_is_antialiased>` **(** :ref:`RID<class_RID>` font_rid **)** |const|                                                                                                                                                                                                                                             |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                             | :ref:`font_is_force_autohinter<class_TextServer_method_font_is_force_autohinter>` **(** :ref:`RID<class_RID>` font_rid **)** |const|                                                                                                                                                                                                                                   |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                             | :ref:`font_is_language_supported<class_TextServer_method_font_is_language_supported>` **(** :ref:`RID<class_RID>` font_rid, :ref:`String<class_String>` language **)** |const|                                                                                                                                                                                         |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                             | :ref:`font_is_multichannel_signed_distance_field<class_TextServer_method_font_is_multichannel_signed_distance_field>` **(** :ref:`RID<class_RID>` font_rid **)** |const|                                                                                                                                                                                               |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                             | :ref:`font_is_script_supported<class_TextServer_method_font_is_script_supported>` **(** :ref:`RID<class_RID>` font_rid, :ref:`String<class_String>` script **)** |const|                                                                                                                                                                                               |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`font_remove_glyph<class_TextServer_method_font_remove_glyph>` **(** :ref:`RID<class_RID>` font_rid, :ref:`Vector2i<class_Vector2i>` size, :ref:`int<class_int>` glyph **)**                                                                                                                                                                                      |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`font_remove_kerning<class_TextServer_method_font_remove_kerning>` **(** :ref:`RID<class_RID>` font_rid, :ref:`int<class_int>` size, :ref:`Vector2i<class_Vector2i>` glyph_pair **)**                                                                                                                                                                             |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`font_remove_language_support_override<class_TextServer_method_font_remove_language_support_override>` **(** :ref:`RID<class_RID>` font_rid, :ref:`String<class_String>` language **)**                                                                                                                                                                           |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`font_remove_script_support_override<class_TextServer_method_font_remove_script_support_override>` **(** :ref:`RID<class_RID>` font_rid, :ref:`String<class_String>` script **)**                                                                                                                                                                                 |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`font_remove_size_cache<class_TextServer_method_font_remove_size_cache>` **(** :ref:`RID<class_RID>` font_rid, :ref:`Vector2i<class_Vector2i>` size **)**                                                                                                                                                                                                         |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`font_remove_texture<class_TextServer_method_font_remove_texture>` **(** :ref:`RID<class_RID>` font_rid, :ref:`Vector2i<class_Vector2i>` size, :ref:`int<class_int>` texture_index **)**                                                                                                                                                                          |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`font_render_glyph<class_TextServer_method_font_render_glyph>` **(** :ref:`RID<class_RID>` font_rid, :ref:`Vector2i<class_Vector2i>` size, :ref:`int<class_int>` index **)**                                                                                                                                                                                      |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`font_render_range<class_TextServer_method_font_render_range>` **(** :ref:`RID<class_RID>` font_rid, :ref:`Vector2i<class_Vector2i>` size, :ref:`int<class_int>` start, :ref:`int<class_int>` end **)**                                                                                                                                                           |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`font_set_antialiased<class_TextServer_method_font_set_antialiased>` **(** :ref:`RID<class_RID>` font_rid, :ref:`bool<class_bool>` antialiased **)**                                                                                                                                                                                                              |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`font_set_ascent<class_TextServer_method_font_set_ascent>` **(** :ref:`RID<class_RID>` font_rid, :ref:`int<class_int>` size, :ref:`float<class_float>` ascent **)**                                                                                                                                                                                               |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`font_set_data<class_TextServer_method_font_set_data>` **(** :ref:`RID<class_RID>` font_rid, :ref:`PackedByteArray<class_PackedByteArray>` data **)**                                                                                                                                                                                                             |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`font_set_descent<class_TextServer_method_font_set_descent>` **(** :ref:`RID<class_RID>` font_rid, :ref:`int<class_int>` size, :ref:`float<class_float>` descent **)**                                                                                                                                                                                            |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`font_set_fixed_size<class_TextServer_method_font_set_fixed_size>` **(** :ref:`RID<class_RID>` font_rid, :ref:`int<class_int>` fixed_size **)**                                                                                                                                                                                                                   |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`font_set_force_autohinter<class_TextServer_method_font_set_force_autohinter>` **(** :ref:`RID<class_RID>` font_rid, :ref:`bool<class_bool>` force_autohinter **)**                                                                                                                                                                                               |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`font_set_global_oversampling<class_TextServer_method_font_set_global_oversampling>` **(** :ref:`float<class_float>` oversampling **)**                                                                                                                                                                                                                           |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`font_set_glyph_advance<class_TextServer_method_font_set_glyph_advance>` **(** :ref:`RID<class_RID>` font_rid, :ref:`int<class_int>` size, :ref:`int<class_int>` glyph, :ref:`Vector2<class_Vector2>` advance **)**                                                                                                                                               |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`font_set_glyph_offset<class_TextServer_method_font_set_glyph_offset>` **(** :ref:`RID<class_RID>` font_rid, :ref:`Vector2i<class_Vector2i>` size, :ref:`int<class_int>` glyph, :ref:`Vector2<class_Vector2>` offset **)**                                                                                                                                        |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`font_set_glyph_size<class_TextServer_method_font_set_glyph_size>` **(** :ref:`RID<class_RID>` font_rid, :ref:`Vector2i<class_Vector2i>` size, :ref:`int<class_int>` glyph, :ref:`Vector2<class_Vector2>` gl_size **)**                                                                                                                                           |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`font_set_glyph_texture_idx<class_TextServer_method_font_set_glyph_texture_idx>` **(** :ref:`RID<class_RID>` font_rid, :ref:`Vector2i<class_Vector2i>` size, :ref:`int<class_int>` glyph, :ref:`int<class_int>` texture_idx **)**                                                                                                                                 |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`font_set_glyph_uv_rect<class_TextServer_method_font_set_glyph_uv_rect>` **(** :ref:`RID<class_RID>` font_rid, :ref:`Vector2i<class_Vector2i>` size, :ref:`int<class_int>` glyph, :ref:`Rect2<class_Rect2>` uv_rect **)**                                                                                                                                         |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`font_set_hinting<class_TextServer_method_font_set_hinting>` **(** :ref:`RID<class_RID>` font_rid, :ref:`Hinting<enum_TextServer_Hinting>` _hinting **)**                                                                                                                                                                                                         |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`font_set_kerning<class_TextServer_method_font_set_kerning>` **(** :ref:`RID<class_RID>` font_rid, :ref:`int<class_int>` size, :ref:`Vector2i<class_Vector2i>` glyph_pair, :ref:`Vector2<class_Vector2>` kerning **)**                                                                                                                                            |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`font_set_language_support_override<class_TextServer_method_font_set_language_support_override>` **(** :ref:`RID<class_RID>` font_rid, :ref:`String<class_String>` language, :ref:`bool<class_bool>` supported **)**                                                                                                                                              |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`font_set_msdf_pixel_range<class_TextServer_method_font_set_msdf_pixel_range>` **(** :ref:`RID<class_RID>` font_rid, :ref:`int<class_int>` msdf_pixel_range **)**                                                                                                                                                                                                 |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`font_set_msdf_size<class_TextServer_method_font_set_msdf_size>` **(** :ref:`RID<class_RID>` font_rid, :ref:`int<class_int>` msdf_size **)**                                                                                                                                                                                                                      |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`font_set_multichannel_signed_distance_field<class_TextServer_method_font_set_multichannel_signed_distance_field>` **(** :ref:`RID<class_RID>` font_rid, :ref:`bool<class_bool>` msdf **)**                                                                                                                                                                       |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`font_set_name<class_TextServer_method_font_set_name>` **(** :ref:`RID<class_RID>` font_rid, :ref:`String<class_String>` name **)**                                                                                                                                                                                                                               |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`font_set_opentype_feature_overrides<class_TextServer_method_font_set_opentype_feature_overrides>` **(** :ref:`RID<class_RID>` font_rid, :ref:`Dictionary<class_Dictionary>` overrides **)**                                                                                                                                                                      |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`font_set_oversampling<class_TextServer_method_font_set_oversampling>` **(** :ref:`RID<class_RID>` font_rid, :ref:`float<class_float>` oversampling **)**                                                                                                                                                                                                         |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`font_set_scale<class_TextServer_method_font_set_scale>` **(** :ref:`RID<class_RID>` font_rid, :ref:`int<class_int>` size, :ref:`float<class_float>` scale **)**                                                                                                                                                                                                  |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`font_set_script_support_override<class_TextServer_method_font_set_script_support_override>` **(** :ref:`RID<class_RID>` font_rid, :ref:`String<class_String>` script, :ref:`bool<class_bool>` supported **)**                                                                                                                                                    |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`font_set_spacing<class_TextServer_method_font_set_spacing>` **(** :ref:`RID<class_RID>` font_rid, :ref:`int<class_int>` size, :ref:`SpacingType<enum_TextServer_SpacingType>` spacing, :ref:`int<class_int>` value **)**                                                                                                                                         |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`font_set_style<class_TextServer_method_font_set_style>` **(** :ref:`RID<class_RID>` font_rid, :ref:`int<class_int>` style **)**                                                                                                                                                                                                                                  |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`font_set_style_name<class_TextServer_method_font_set_style_name>` **(** :ref:`RID<class_RID>` font_rid, :ref:`String<class_String>` name **)**                                                                                                                                                                                                                   |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`font_set_texture_image<class_TextServer_method_font_set_texture_image>` **(** :ref:`RID<class_RID>` font_rid, :ref:`Vector2i<class_Vector2i>` size, :ref:`int<class_int>` texture_index, :ref:`Image<class_Image>` image **)**                                                                                                                                   |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`font_set_texture_offsets<class_TextServer_method_font_set_texture_offsets>` **(** :ref:`RID<class_RID>` font_rid, :ref:`Vector2i<class_Vector2i>` size, :ref:`int<class_int>` texture_index, :ref:`PackedInt32Array<class_PackedInt32Array>` offset **)**                                                                                                        |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`font_set_underline_position<class_TextServer_method_font_set_underline_position>` **(** :ref:`RID<class_RID>` font_rid, :ref:`int<class_int>` size, :ref:`float<class_float>` underline_position **)**                                                                                                                                                           |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`font_set_underline_thickness<class_TextServer_method_font_set_underline_thickness>` **(** :ref:`RID<class_RID>` font_rid, :ref:`int<class_int>` size, :ref:`float<class_float>` underline_thickness **)**                                                                                                                                                        |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`font_set_variation_coordinates<class_TextServer_method_font_set_variation_coordinates>` **(** :ref:`RID<class_RID>` font_rid, :ref:`Dictionary<class_Dictionary>` variation_coordinates **)**                                                                                                                                                                    |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Dictionary<class_Dictionary>`                 | :ref:`font_supported_feature_list<class_TextServer_method_font_supported_feature_list>` **(** :ref:`RID<class_RID>` font_rid **)** |const|                                                                                                                                                                                                                             |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Dictionary<class_Dictionary>`                 | :ref:`font_supported_variation_list<class_TextServer_method_font_supported_variation_list>` **(** :ref:`RID<class_RID>` font_rid **)** |const|                                                                                                                                                                                                                         |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_String>`                         | :ref:`format_number<class_TextServer_method_format_number>` **(** :ref:`String<class_String>` number, :ref:`String<class_String>` language="" **)** |const|                                                                                                                                                                                                            |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`free_rid<class_TextServer_method_free_rid>` **(** :ref:`RID<class_RID>` rid **)**                                                                                                                                                                                                                                                                                |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                               | :ref:`get_features<class_TextServer_method_get_features>` **(** **)** |const|                                                                                                                                                                                                                                                                                          |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Vector2<class_Vector2>`                       | :ref:`get_hex_code_box_size<class_TextServer_method_get_hex_code_box_size>` **(** :ref:`int<class_int>` size, :ref:`int<class_int>` index **)** |const|                                                                                                                                                                                                                |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_String>`                         | :ref:`get_name<class_TextServer_method_get_name>` **(** **)** |const|                                                                                                                                                                                                                                                                                                  |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_String>`                         | :ref:`get_support_data_filename<class_TextServer_method_get_support_data_filename>` **(** **)** |const|                                                                                                                                                                                                                                                                |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_String>`                         | :ref:`get_support_data_info<class_TextServer_method_get_support_data_info>` **(** **)** |const|                                                                                                                                                                                                                                                                        |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                             | :ref:`has<class_TextServer_method_has>` **(** :ref:`RID<class_RID>` rid **)**                                                                                                                                                                                                                                                                                          |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                             | :ref:`has_feature<class_TextServer_method_has_feature>` **(** :ref:`Feature<enum_TextServer_Feature>` feature **)** |const|                                                                                                                                                                                                                                            |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                             | :ref:`is_locale_right_to_left<class_TextServer_method_is_locale_right_to_left>` **(** :ref:`String<class_String>` locale **)** |const|                                                                                                                                                                                                                                 |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                             | :ref:`load_support_data<class_TextServer_method_load_support_data>` **(** :ref:`String<class_String>` filename **)**                                                                                                                                                                                                                                                   |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                               | :ref:`name_to_tag<class_TextServer_method_name_to_tag>` **(** :ref:`String<class_String>` name **)** |const|                                                                                                                                                                                                                                                           |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_String>`                         | :ref:`parse_number<class_TextServer_method_parse_number>` **(** :ref:`String<class_String>` number, :ref:`String<class_String>` language="" **)** |const|                                                                                                                                                                                                              |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_String>`                         | :ref:`percent_sign<class_TextServer_method_percent_sign>` **(** :ref:`String<class_String>` language="" **)** |const|                                                                                                                                                                                                                                                  |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                             | :ref:`save_support_data<class_TextServer_method_save_support_data>` **(** :ref:`String<class_String>` filename **)** |const|                                                                                                                                                                                                                                           |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                             | :ref:`shaped_text_add_object<class_TextServer_method_shaped_text_add_object>` **(** :ref:`RID<class_RID>` shaped, :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:`shaped_text_add_string<class_TextServer_method_shaped_text_add_string>` **(** :ref:`RID<class_RID>` shaped, :ref:`String<class_String>` text, :ref:`Array<class_Array>` fonts, :ref:`int<class_int>` size, :ref:`Dictionary<class_Dictionary>` opentype_features={}, :ref:`String<class_String>` language="" **)**                                               |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`shaped_text_clear<class_TextServer_method_shaped_text_clear>` **(** :ref:`RID<class_RID>` rid **)**                                                                                                                                                                                                                                                              |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`shaped_text_draw<class_TextServer_method_shaped_text_draw>` **(** :ref:`RID<class_RID>` shaped, :ref:`RID<class_RID>` canvas, :ref:`Vector2<class_Vector2>` pos, :ref:`float<class_float>` clip_l=-1, :ref:`float<class_float>` clip_r=-1, :ref:`Color<class_Color>` color=Color(1, 1, 1, 1) **)** |const|                                                       |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`shaped_text_draw_outline<class_TextServer_method_shaped_text_draw_outline>` **(** :ref:`RID<class_RID>` shaped, :ref:`RID<class_RID>` canvas, :ref:`Vector2<class_Vector2>` pos, :ref:`float<class_float>` clip_l=-1, :ref:`float<class_float>` clip_r=-1, :ref:`int<class_int>` outline_size=1, :ref:`Color<class_Color>` color=Color(1, 1, 1, 1) **)** |const| |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                           | :ref:`shaped_text_fit_to_width<class_TextServer_method_shaped_text_fit_to_width>` **(** :ref:`RID<class_RID>` shaped, :ref:`float<class_float>` width, :ref:`int<class_int>` jst_flags=3 **)**                                                                                                                                                                         |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                           | :ref:`shaped_text_get_ascent<class_TextServer_method_shaped_text_get_ascent>` **(** :ref:`RID<class_RID>` shaped **)** |const|                                                                                                                                                                                                                                         |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Dictionary<class_Dictionary>`                 | :ref:`shaped_text_get_carets<class_TextServer_method_shaped_text_get_carets>` **(** :ref:`RID<class_RID>` shaped, :ref:`int<class_int>` position **)** |const|                                                                                                                                                                                                         |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_String>`                         | :ref:`shaped_text_get_custom_punctuation<class_TextServer_method_shaped_text_get_custom_punctuation>` **(** :ref:`RID<class_RID>` shaped **)** |const|                                                                                                                                                                                                                 |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                           | :ref:`shaped_text_get_descent<class_TextServer_method_shaped_text_get_descent>` **(** :ref:`RID<class_RID>` shaped **)** |const|                                                                                                                                                                                                                                       |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Direction<enum_TextServer_Direction>`         | :ref:`shaped_text_get_direction<class_TextServer_method_shaped_text_get_direction>` **(** :ref:`RID<class_RID>` shaped **)** |const|                                                                                                                                                                                                                                   |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Direction<enum_TextServer_Direction>`         | :ref:`shaped_text_get_dominant_direction_in_range<class_TextServer_method_shaped_text_get_dominant_direction_in_range>` **(** :ref:`RID<class_RID>` shaped, :ref:`int<class_int>` start, :ref:`int<class_int>` end **)** |const|                                                                                                                                       |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                               | :ref:`shaped_text_get_ellipsis_glyph_count<class_TextServer_method_shaped_text_get_ellipsis_glyph_count>` **(** :ref:`RID<class_RID>` shaped **)** |const|                                                                                                                                                                                                             |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Array<class_Array>`                           | :ref:`shaped_text_get_ellipsis_glyphs<class_TextServer_method_shaped_text_get_ellipsis_glyphs>` **(** :ref:`RID<class_RID>` shaped **)** |const|                                                                                                                                                                                                                       |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                               | :ref:`shaped_text_get_ellipsis_pos<class_TextServer_method_shaped_text_get_ellipsis_pos>` **(** :ref:`RID<class_RID>` shaped **)** |const|                                                                                                                                                                                                                             |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                               | :ref:`shaped_text_get_glyph_count<class_TextServer_method_shaped_text_get_glyph_count>` **(** :ref:`RID<class_RID>` shaped **)** |const|                                                                                                                                                                                                                               |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Array<class_Array>`                           | :ref:`shaped_text_get_glyphs<class_TextServer_method_shaped_text_get_glyphs>` **(** :ref:`RID<class_RID>` shaped **)** |const|                                                                                                                                                                                                                                         |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Vector2<class_Vector2>`                       | :ref:`shaped_text_get_grapheme_bounds<class_TextServer_method_shaped_text_get_grapheme_bounds>` **(** :ref:`RID<class_RID>` shaped, :ref:`int<class_int>` pos **)** |const|                                                                                                                                                                                            |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Direction<enum_TextServer_Direction>`         | :ref:`shaped_text_get_inferred_direction<class_TextServer_method_shaped_text_get_inferred_direction>` **(** :ref:`RID<class_RID>` shaped **)** |const|                                                                                                                                                                                                                 |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`PackedInt32Array<class_PackedInt32Array>`     | :ref:`shaped_text_get_line_breaks<class_TextServer_method_shaped_text_get_line_breaks>` **(** :ref:`RID<class_RID>` shaped, :ref:`float<class_float>` width, :ref:`int<class_int>` start=0, :ref:`int<class_int>` break_flags=96 **)** |const|                                                                                                                         |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`PackedInt32Array<class_PackedInt32Array>`     | :ref:`shaped_text_get_line_breaks_adv<class_TextServer_method_shaped_text_get_line_breaks_adv>` **(** :ref:`RID<class_RID>` shaped, :ref:`PackedFloat32Array<class_PackedFloat32Array>` width, :ref:`int<class_int>` start=0, :ref:`bool<class_bool>` once=true, :ref:`int<class_int>` break_flags=96 **)** |const|                                                    |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Rect2<class_Rect2>`                           | :ref:`shaped_text_get_object_rect<class_TextServer_method_shaped_text_get_object_rect>` **(** :ref:`RID<class_RID>` shaped, :ref:`Variant<class_Variant>` key **)** |const|                                                                                                                                                                                            |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Array<class_Array>`                           | :ref:`shaped_text_get_objects<class_TextServer_method_shaped_text_get_objects>` **(** :ref:`RID<class_RID>` shaped **)** |const|                                                                                                                                                                                                                                       |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Orientation<enum_TextServer_Orientation>`     | :ref:`shaped_text_get_orientation<class_TextServer_method_shaped_text_get_orientation>` **(** :ref:`RID<class_RID>` shaped **)** |const|                                                                                                                                                                                                                               |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`RID<class_RID>`                               | :ref:`shaped_text_get_parent<class_TextServer_method_shaped_text_get_parent>` **(** :ref:`RID<class_RID>` shaped **)** |const|                                                                                                                                                                                                                                         |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                             | :ref:`shaped_text_get_preserve_control<class_TextServer_method_shaped_text_get_preserve_control>` **(** :ref:`RID<class_RID>` shaped **)** |const|                                                                                                                                                                                                                     |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                             | :ref:`shaped_text_get_preserve_invalid<class_TextServer_method_shaped_text_get_preserve_invalid>` **(** :ref:`RID<class_RID>` shaped **)** |const|                                                                                                                                                                                                                     |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Vector2i<class_Vector2i>`                     | :ref:`shaped_text_get_range<class_TextServer_method_shaped_text_get_range>` **(** :ref:`RID<class_RID>` shaped **)** |const|                                                                                                                                                                                                                                           |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`PackedVector2Array<class_PackedVector2Array>` | :ref:`shaped_text_get_selection<class_TextServer_method_shaped_text_get_selection>` **(** :ref:`RID<class_RID>` shaped, :ref:`int<class_int>` start, :ref:`int<class_int>` end **)** |const|                                                                                                                                                                           |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Vector2<class_Vector2>`                       | :ref:`shaped_text_get_size<class_TextServer_method_shaped_text_get_size>` **(** :ref:`RID<class_RID>` shaped **)** |const|                                                                                                                                                                                                                                             |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                               | :ref:`shaped_text_get_trim_pos<class_TextServer_method_shaped_text_get_trim_pos>` **(** :ref:`RID<class_RID>` shaped **)** |const|                                                                                                                                                                                                                                     |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                           | :ref:`shaped_text_get_underline_position<class_TextServer_method_shaped_text_get_underline_position>` **(** :ref:`RID<class_RID>` shaped **)** |const|                                                                                                                                                                                                                 |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                           | :ref:`shaped_text_get_underline_thickness<class_TextServer_method_shaped_text_get_underline_thickness>` **(** :ref:`RID<class_RID>` shaped **)** |const|                                                                                                                                                                                                               |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                           | :ref:`shaped_text_get_width<class_TextServer_method_shaped_text_get_width>` **(** :ref:`RID<class_RID>` shaped **)** |const|                                                                                                                                                                                                                                           |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`PackedInt32Array<class_PackedInt32Array>`     | :ref:`shaped_text_get_word_breaks<class_TextServer_method_shaped_text_get_word_breaks>` **(** :ref:`RID<class_RID>` shaped, :ref:`int<class_int>` grapheme_flags **)** |const|                                                                                                                                                                                         |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                               | :ref:`shaped_text_hit_test_grapheme<class_TextServer_method_shaped_text_hit_test_grapheme>` **(** :ref:`RID<class_RID>` shaped, :ref:`float<class_float>` coords **)** |const|                                                                                                                                                                                         |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                               | :ref:`shaped_text_hit_test_position<class_TextServer_method_shaped_text_hit_test_position>` **(** :ref:`RID<class_RID>` shaped, :ref:`float<class_float>` coords **)** |const|                                                                                                                                                                                         |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                             | :ref:`shaped_text_is_ready<class_TextServer_method_shaped_text_is_ready>` **(** :ref:`RID<class_RID>` shaped **)** |const|                                                                                                                                                                                                                                             |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                               | :ref:`shaped_text_next_grapheme_pos<class_TextServer_method_shaped_text_next_grapheme_pos>` **(** :ref:`RID<class_RID>` shaped, :ref:`int<class_int>` pos **)** |const|                                                                                                                                                                                                |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`shaped_text_overrun_trim_to_width<class_TextServer_method_shaped_text_overrun_trim_to_width>` **(** :ref:`RID<class_RID>` shaped, :ref:`float<class_float>` width=0, :ref:`int<class_int>` overrun_trim_flags=0 **)**                                                                                                                                            |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                               | :ref:`shaped_text_prev_grapheme_pos<class_TextServer_method_shaped_text_prev_grapheme_pos>` **(** :ref:`RID<class_RID>` shaped, :ref:`int<class_int>` pos **)** |const|                                                                                                                                                                                                |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                             | :ref:`shaped_text_resize_object<class_TextServer_method_shaped_text_resize_object>` **(** :ref:`RID<class_RID>` shaped, :ref:`Variant<class_Variant>` key, :ref:`Vector2<class_Vector2>` size, :ref:`InlineAlignment<enum_@GlobalScope_InlineAlignment>` inline_align=5 **)**                                                                                          |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`shaped_text_set_bidi_override<class_TextServer_method_shaped_text_set_bidi_override>` **(** :ref:`RID<class_RID>` shaped, :ref:`Array<class_Array>` override **)**                                                                                                                                                                                               |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`shaped_text_set_custom_punctuation<class_TextServer_method_shaped_text_set_custom_punctuation>` **(** :ref:`RID<class_RID>` shaped, :ref:`String<class_String>` punct **)**                                                                                                                                                                                      |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`shaped_text_set_direction<class_TextServer_method_shaped_text_set_direction>` **(** :ref:`RID<class_RID>` shaped, :ref:`Direction<enum_TextServer_Direction>` direction=0 **)**                                                                                                                                                                                  |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`shaped_text_set_orientation<class_TextServer_method_shaped_text_set_orientation>` **(** :ref:`RID<class_RID>` shaped, :ref:`Orientation<enum_TextServer_Orientation>` orientation=0 **)**                                                                                                                                                                        |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`shaped_text_set_preserve_control<class_TextServer_method_shaped_text_set_preserve_control>` **(** :ref:`RID<class_RID>` shaped, :ref:`bool<class_bool>` enabled **)**                                                                                                                                                                                            |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`shaped_text_set_preserve_invalid<class_TextServer_method_shaped_text_set_preserve_invalid>` **(** :ref:`RID<class_RID>` shaped, :ref:`bool<class_bool>` enabled **)**                                                                                                                                                                                            |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                             | :ref:`shaped_text_shape<class_TextServer_method_shaped_text_shape>` **(** :ref:`RID<class_RID>` shaped **)**                                                                                                                                                                                                                                                           |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Array<class_Array>`                           | :ref:`shaped_text_sort_logical<class_TextServer_method_shaped_text_sort_logical>` **(** :ref:`RID<class_RID>` shaped **)**                                                                                                                                                                                                                                             |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`RID<class_RID>`                               | :ref:`shaped_text_substr<class_TextServer_method_shaped_text_substr>` **(** :ref:`RID<class_RID>` shaped, :ref:`int<class_int>` start, :ref:`int<class_int>` length **)** |const|                                                                                                                                                                                      |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                           | :ref:`shaped_text_tab_align<class_TextServer_method_shaped_text_tab_align>` **(** :ref:`RID<class_RID>` shaped, :ref:`PackedFloat32Array<class_PackedFloat32Array>` tab_stops **)**                                                                                                                                                                                    |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_String>`                         | :ref:`string_to_lower<class_TextServer_method_string_to_lower>` **(** :ref:`String<class_String>` string, :ref:`String<class_String>` language="" **)** |const|                                                                                                                                                                                                        |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_String>`                         | :ref:`string_to_upper<class_TextServer_method_string_to_upper>` **(** :ref:`String<class_String>` string, :ref:`String<class_String>` language="" **)** |const|                                                                                                                                                                                                        |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_String>`                         | :ref:`strip_diacritics<class_TextServer_method_strip_diacritics>` **(** :ref:`String<class_String>` string **)** |const|                                                                                                                                                                                                                                               |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_String>`                         | :ref:`tag_to_name<class_TextServer_method_tag_to_name>` **(** :ref:`int<class_int>` tag **)** |const|                                                                                                                                                                                                                                                                  |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`RID<class_RID>`                                           | :ref:`create_font<class_TextServer_method_create_font>` **(** **)**                                                                                                                                                                                                                                                                                                    |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`RID<class_RID>`                                           | :ref:`create_shaped_text<class_TextServer_method_create_shaped_text>` **(** :ref:`Direction<enum_TextServer_Direction>` direction=0, :ref:`Orientation<enum_TextServer_Orientation>` orientation=0 **)**                                                                                                                                                               |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`draw_hex_code_box<class_TextServer_method_draw_hex_code_box>` **(** :ref:`RID<class_RID>` canvas, :ref:`int<class_int>` size, :ref:`Vector2<class_Vector2>` pos, :ref:`int<class_int>` index, :ref:`Color<class_Color>` color **)** |const|                                                                                                                      |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`font_clear_glyphs<class_TextServer_method_font_clear_glyphs>` **(** :ref:`RID<class_RID>` font_rid, :ref:`Vector2i<class_Vector2i>` size **)**                                                                                                                                                                                                                   |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`font_clear_kerning_map<class_TextServer_method_font_clear_kerning_map>` **(** :ref:`RID<class_RID>` font_rid, :ref:`int<class_int>` size **)**                                                                                                                                                                                                                   |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`font_clear_size_cache<class_TextServer_method_font_clear_size_cache>` **(** :ref:`RID<class_RID>` font_rid **)**                                                                                                                                                                                                                                                 |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`font_clear_textures<class_TextServer_method_font_clear_textures>` **(** :ref:`RID<class_RID>` font_rid, :ref:`Vector2i<class_Vector2i>` size **)**                                                                                                                                                                                                               |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`font_draw_glyph<class_TextServer_method_font_draw_glyph>` **(** :ref:`RID<class_RID>` font_rid, :ref:`RID<class_RID>` canvas, :ref:`int<class_int>` size, :ref:`Vector2<class_Vector2>` pos, :ref:`int<class_int>` index, :ref:`Color<class_Color>` color=Color(1, 1, 1, 1) **)** |const|                                                                        |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`font_draw_glyph_outline<class_TextServer_method_font_draw_glyph_outline>` **(** :ref:`RID<class_RID>` font_rid, :ref:`RID<class_RID>` canvas, :ref:`int<class_int>` size, :ref:`int<class_int>` outline_size, :ref:`Vector2<class_Vector2>` pos, :ref:`int<class_int>` index, :ref:`Color<class_Color>` color=Color(1, 1, 1, 1) **)** |const|                    |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                                       | :ref:`font_get_ascent<class_TextServer_method_font_get_ascent>` **(** :ref:`RID<class_RID>` font_rid, :ref:`int<class_int>` size **)** |const|                                                                                                                                                                                                                         |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                                       | :ref:`font_get_descent<class_TextServer_method_font_get_descent>` **(** :ref:`RID<class_RID>` font_rid, :ref:`int<class_int>` size **)** |const|                                                                                                                                                                                                                       |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                                           | :ref:`font_get_fixed_size<class_TextServer_method_font_get_fixed_size>` **(** :ref:`RID<class_RID>` font_rid **)** |const|                                                                                                                                                                                                                                             |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                                       | :ref:`font_get_global_oversampling<class_TextServer_method_font_get_global_oversampling>` **(** **)** |const|                                                                                                                                                                                                                                                          |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Vector2<class_Vector2>`                                   | :ref:`font_get_glyph_advance<class_TextServer_method_font_get_glyph_advance>` **(** :ref:`RID<class_RID>` font_rid, :ref:`int<class_int>` size, :ref:`int<class_int>` glyph **)** |const|                                                                                                                                                                              |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Dictionary<class_Dictionary>`                             | :ref:`font_get_glyph_contours<class_TextServer_method_font_get_glyph_contours>` **(** :ref:`RID<class_RID>` font, :ref:`int<class_int>` size, :ref:`int<class_int>` index **)** |const|                                                                                                                                                                                |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                                           | :ref:`font_get_glyph_index<class_TextServer_method_font_get_glyph_index>` **(** :ref:`RID<class_RID>` font_rid, :ref:`int<class_int>` size, :ref:`int<class_int>` char, :ref:`int<class_int>` variation_selector **)** |const|                                                                                                                                         |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Array<class_Array>`                                       | :ref:`font_get_glyph_list<class_TextServer_method_font_get_glyph_list>` **(** :ref:`RID<class_RID>` font_rid, :ref:`Vector2i<class_Vector2i>` size **)** |const|                                                                                                                                                                                                       |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Vector2<class_Vector2>`                                   | :ref:`font_get_glyph_offset<class_TextServer_method_font_get_glyph_offset>` **(** :ref:`RID<class_RID>` font_rid, :ref:`Vector2i<class_Vector2i>` size, :ref:`int<class_int>` glyph **)** |const|                                                                                                                                                                      |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Vector2<class_Vector2>`                                   | :ref:`font_get_glyph_size<class_TextServer_method_font_get_glyph_size>` **(** :ref:`RID<class_RID>` font_rid, :ref:`Vector2i<class_Vector2i>` size, :ref:`int<class_int>` glyph **)** |const|                                                                                                                                                                          |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                                           | :ref:`font_get_glyph_texture_idx<class_TextServer_method_font_get_glyph_texture_idx>` **(** :ref:`RID<class_RID>` font_rid, :ref:`Vector2i<class_Vector2i>` size, :ref:`int<class_int>` glyph **)** |const|                                                                                                                                                            |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Rect2<class_Rect2>`                                       | :ref:`font_get_glyph_uv_rect<class_TextServer_method_font_get_glyph_uv_rect>` **(** :ref:`RID<class_RID>` font_rid, :ref:`Vector2i<class_Vector2i>` size, :ref:`int<class_int>` glyph **)** |const|                                                                                                                                                                    |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Hinting<enum_TextServer_Hinting>`                         | :ref:`font_get_hinting<class_TextServer_method_font_get_hinting>` **(** :ref:`RID<class_RID>` font_rid **)** |const|                                                                                                                                                                                                                                                   |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Vector2<class_Vector2>`                                   | :ref:`font_get_kerning<class_TextServer_method_font_get_kerning>` **(** :ref:`RID<class_RID>` font_rid, :ref:`int<class_int>` size, :ref:`Vector2i<class_Vector2i>` glyph_pair **)** |const|                                                                                                                                                                           |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Array<class_Array>`                                       | :ref:`font_get_kerning_list<class_TextServer_method_font_get_kerning_list>` **(** :ref:`RID<class_RID>` font_rid, :ref:`int<class_int>` size **)** |const|                                                                                                                                                                                                             |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                                         | :ref:`font_get_language_support_override<class_TextServer_method_font_get_language_support_override>` **(** :ref:`RID<class_RID>` font_rid, :ref:`String<class_String>` language **)**                                                                                                                                                                                 |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`PackedStringArray<class_PackedStringArray>`               | :ref:`font_get_language_support_overrides<class_TextServer_method_font_get_language_support_overrides>` **(** :ref:`RID<class_RID>` font_rid **)**                                                                                                                                                                                                                     |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                                           | :ref:`font_get_msdf_pixel_range<class_TextServer_method_font_get_msdf_pixel_range>` **(** :ref:`RID<class_RID>` font_rid **)** |const|                                                                                                                                                                                                                                 |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                                           | :ref:`font_get_msdf_size<class_TextServer_method_font_get_msdf_size>` **(** :ref:`RID<class_RID>` font_rid **)** |const|                                                                                                                                                                                                                                               |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`                                     | :ref:`font_get_name<class_TextServer_method_font_get_name>` **(** :ref:`RID<class_RID>` font_rid **)** |const|                                                                                                                                                                                                                                                         |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Dictionary<class_Dictionary>`                             | :ref:`font_get_opentype_feature_overrides<class_TextServer_method_font_get_opentype_feature_overrides>` **(** :ref:`RID<class_RID>` font_rid **)** |const|                                                                                                                                                                                                             |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                                       | :ref:`font_get_oversampling<class_TextServer_method_font_get_oversampling>` **(** :ref:`RID<class_RID>` font_rid **)** |const|                                                                                                                                                                                                                                         |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                                       | :ref:`font_get_scale<class_TextServer_method_font_get_scale>` **(** :ref:`RID<class_RID>` font_rid, :ref:`int<class_int>` size **)** |const|                                                                                                                                                                                                                           |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                                         | :ref:`font_get_script_support_override<class_TextServer_method_font_get_script_support_override>` **(** :ref:`RID<class_RID>` font_rid, :ref:`String<class_String>` script **)**                                                                                                                                                                                       |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`PackedStringArray<class_PackedStringArray>`               | :ref:`font_get_script_support_overrides<class_TextServer_method_font_get_script_support_overrides>` **(** :ref:`RID<class_RID>` font_rid **)**                                                                                                                                                                                                                         |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Array<class_Array>`                                       | :ref:`font_get_size_cache_list<class_TextServer_method_font_get_size_cache_list>` **(** :ref:`RID<class_RID>` font_rid **)** |const|                                                                                                                                                                                                                                   |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                                           | :ref:`font_get_spacing<class_TextServer_method_font_get_spacing>` **(** :ref:`RID<class_RID>` font_rid, :ref:`int<class_int>` size, :ref:`SpacingType<enum_TextServer_SpacingType>` spacing **)** |const|                                                                                                                                                              |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                                           | :ref:`font_get_style<class_TextServer_method_font_get_style>` **(** :ref:`RID<class_RID>` font_rid **)** |const|                                                                                                                                                                                                                                                       |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`                                     | :ref:`font_get_style_name<class_TextServer_method_font_get_style_name>` **(** :ref:`RID<class_RID>` font_rid **)** |const|                                                                                                                                                                                                                                             |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`SubpixelPositioning<enum_TextServer_SubpixelPositioning>` | :ref:`font_get_subpixel_positioning<class_TextServer_method_font_get_subpixel_positioning>` **(** :ref:`RID<class_RID>` font_rid **)** |const|                                                                                                                                                                                                                         |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`                                     | :ref:`font_get_supported_chars<class_TextServer_method_font_get_supported_chars>` **(** :ref:`RID<class_RID>` font_rid **)** |const|                                                                                                                                                                                                                                   |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                                           | :ref:`font_get_texture_count<class_TextServer_method_font_get_texture_count>` **(** :ref:`RID<class_RID>` font_rid, :ref:`Vector2i<class_Vector2i>` size **)** |const|                                                                                                                                                                                                 |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Image<class_Image>`                                       | :ref:`font_get_texture_image<class_TextServer_method_font_get_texture_image>` **(** :ref:`RID<class_RID>` font_rid, :ref:`Vector2i<class_Vector2i>` size, :ref:`int<class_int>` texture_index **)** |const|                                                                                                                                                            |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`PackedInt32Array<class_PackedInt32Array>`                 | :ref:`font_get_texture_offsets<class_TextServer_method_font_get_texture_offsets>` **(** :ref:`RID<class_RID>` font_rid, :ref:`Vector2i<class_Vector2i>` size, :ref:`int<class_int>` texture_index **)** |const|                                                                                                                                                        |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                                       | :ref:`font_get_underline_position<class_TextServer_method_font_get_underline_position>` **(** :ref:`RID<class_RID>` font_rid, :ref:`int<class_int>` size **)** |const|                                                                                                                                                                                                 |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                                       | :ref:`font_get_underline_thickness<class_TextServer_method_font_get_underline_thickness>` **(** :ref:`RID<class_RID>` font_rid, :ref:`int<class_int>` size **)** |const|                                                                                                                                                                                               |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Dictionary<class_Dictionary>`                             | :ref:`font_get_variation_coordinates<class_TextServer_method_font_get_variation_coordinates>` **(** :ref:`RID<class_RID>` font_rid **)** |const|                                                                                                                                                                                                                       |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                                         | :ref:`font_has_char<class_TextServer_method_font_has_char>` **(** :ref:`RID<class_RID>` font_rid, :ref:`int<class_int>` char **)** |const|                                                                                                                                                                                                                             |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                                         | :ref:`font_is_antialiased<class_TextServer_method_font_is_antialiased>` **(** :ref:`RID<class_RID>` font_rid **)** |const|                                                                                                                                                                                                                                             |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                                         | :ref:`font_is_force_autohinter<class_TextServer_method_font_is_force_autohinter>` **(** :ref:`RID<class_RID>` font_rid **)** |const|                                                                                                                                                                                                                                   |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                                         | :ref:`font_is_language_supported<class_TextServer_method_font_is_language_supported>` **(** :ref:`RID<class_RID>` font_rid, :ref:`String<class_String>` language **)** |const|                                                                                                                                                                                         |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                                         | :ref:`font_is_multichannel_signed_distance_field<class_TextServer_method_font_is_multichannel_signed_distance_field>` **(** :ref:`RID<class_RID>` font_rid **)** |const|                                                                                                                                                                                               |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                                         | :ref:`font_is_script_supported<class_TextServer_method_font_is_script_supported>` **(** :ref:`RID<class_RID>` font_rid, :ref:`String<class_String>` script **)** |const|                                                                                                                                                                                               |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`font_remove_glyph<class_TextServer_method_font_remove_glyph>` **(** :ref:`RID<class_RID>` font_rid, :ref:`Vector2i<class_Vector2i>` size, :ref:`int<class_int>` glyph **)**                                                                                                                                                                                      |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`font_remove_kerning<class_TextServer_method_font_remove_kerning>` **(** :ref:`RID<class_RID>` font_rid, :ref:`int<class_int>` size, :ref:`Vector2i<class_Vector2i>` glyph_pair **)**                                                                                                                                                                             |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`font_remove_language_support_override<class_TextServer_method_font_remove_language_support_override>` **(** :ref:`RID<class_RID>` font_rid, :ref:`String<class_String>` language **)**                                                                                                                                                                           |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`font_remove_script_support_override<class_TextServer_method_font_remove_script_support_override>` **(** :ref:`RID<class_RID>` font_rid, :ref:`String<class_String>` script **)**                                                                                                                                                                                 |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`font_remove_size_cache<class_TextServer_method_font_remove_size_cache>` **(** :ref:`RID<class_RID>` font_rid, :ref:`Vector2i<class_Vector2i>` size **)**                                                                                                                                                                                                         |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`font_remove_texture<class_TextServer_method_font_remove_texture>` **(** :ref:`RID<class_RID>` font_rid, :ref:`Vector2i<class_Vector2i>` size, :ref:`int<class_int>` texture_index **)**                                                                                                                                                                          |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`font_render_glyph<class_TextServer_method_font_render_glyph>` **(** :ref:`RID<class_RID>` font_rid, :ref:`Vector2i<class_Vector2i>` size, :ref:`int<class_int>` index **)**                                                                                                                                                                                      |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`font_render_range<class_TextServer_method_font_render_range>` **(** :ref:`RID<class_RID>` font_rid, :ref:`Vector2i<class_Vector2i>` size, :ref:`int<class_int>` start, :ref:`int<class_int>` end **)**                                                                                                                                                           |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`font_set_antialiased<class_TextServer_method_font_set_antialiased>` **(** :ref:`RID<class_RID>` font_rid, :ref:`bool<class_bool>` antialiased **)**                                                                                                                                                                                                              |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`font_set_ascent<class_TextServer_method_font_set_ascent>` **(** :ref:`RID<class_RID>` font_rid, :ref:`int<class_int>` size, :ref:`float<class_float>` ascent **)**                                                                                                                                                                                               |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`font_set_data<class_TextServer_method_font_set_data>` **(** :ref:`RID<class_RID>` font_rid, :ref:`PackedByteArray<class_PackedByteArray>` data **)**                                                                                                                                                                                                             |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`font_set_descent<class_TextServer_method_font_set_descent>` **(** :ref:`RID<class_RID>` font_rid, :ref:`int<class_int>` size, :ref:`float<class_float>` descent **)**                                                                                                                                                                                            |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`font_set_fixed_size<class_TextServer_method_font_set_fixed_size>` **(** :ref:`RID<class_RID>` font_rid, :ref:`int<class_int>` fixed_size **)**                                                                                                                                                                                                                   |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`font_set_force_autohinter<class_TextServer_method_font_set_force_autohinter>` **(** :ref:`RID<class_RID>` font_rid, :ref:`bool<class_bool>` force_autohinter **)**                                                                                                                                                                                               |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`font_set_global_oversampling<class_TextServer_method_font_set_global_oversampling>` **(** :ref:`float<class_float>` oversampling **)**                                                                                                                                                                                                                           |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`font_set_glyph_advance<class_TextServer_method_font_set_glyph_advance>` **(** :ref:`RID<class_RID>` font_rid, :ref:`int<class_int>` size, :ref:`int<class_int>` glyph, :ref:`Vector2<class_Vector2>` advance **)**                                                                                                                                               |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`font_set_glyph_offset<class_TextServer_method_font_set_glyph_offset>` **(** :ref:`RID<class_RID>` font_rid, :ref:`Vector2i<class_Vector2i>` size, :ref:`int<class_int>` glyph, :ref:`Vector2<class_Vector2>` offset **)**                                                                                                                                        |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`font_set_glyph_size<class_TextServer_method_font_set_glyph_size>` **(** :ref:`RID<class_RID>` font_rid, :ref:`Vector2i<class_Vector2i>` size, :ref:`int<class_int>` glyph, :ref:`Vector2<class_Vector2>` gl_size **)**                                                                                                                                           |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`font_set_glyph_texture_idx<class_TextServer_method_font_set_glyph_texture_idx>` **(** :ref:`RID<class_RID>` font_rid, :ref:`Vector2i<class_Vector2i>` size, :ref:`int<class_int>` glyph, :ref:`int<class_int>` texture_idx **)**                                                                                                                                 |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`font_set_glyph_uv_rect<class_TextServer_method_font_set_glyph_uv_rect>` **(** :ref:`RID<class_RID>` font_rid, :ref:`Vector2i<class_Vector2i>` size, :ref:`int<class_int>` glyph, :ref:`Rect2<class_Rect2>` uv_rect **)**                                                                                                                                         |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`font_set_hinting<class_TextServer_method_font_set_hinting>` **(** :ref:`RID<class_RID>` font_rid, :ref:`Hinting<enum_TextServer_Hinting>` hinting **)**                                                                                                                                                                                                          |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`font_set_kerning<class_TextServer_method_font_set_kerning>` **(** :ref:`RID<class_RID>` font_rid, :ref:`int<class_int>` size, :ref:`Vector2i<class_Vector2i>` glyph_pair, :ref:`Vector2<class_Vector2>` kerning **)**                                                                                                                                            |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`font_set_language_support_override<class_TextServer_method_font_set_language_support_override>` **(** :ref:`RID<class_RID>` font_rid, :ref:`String<class_String>` language, :ref:`bool<class_bool>` supported **)**                                                                                                                                              |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`font_set_msdf_pixel_range<class_TextServer_method_font_set_msdf_pixel_range>` **(** :ref:`RID<class_RID>` font_rid, :ref:`int<class_int>` msdf_pixel_range **)**                                                                                                                                                                                                 |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`font_set_msdf_size<class_TextServer_method_font_set_msdf_size>` **(** :ref:`RID<class_RID>` font_rid, :ref:`int<class_int>` msdf_size **)**                                                                                                                                                                                                                      |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`font_set_multichannel_signed_distance_field<class_TextServer_method_font_set_multichannel_signed_distance_field>` **(** :ref:`RID<class_RID>` font_rid, :ref:`bool<class_bool>` msdf **)**                                                                                                                                                                       |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`font_set_name<class_TextServer_method_font_set_name>` **(** :ref:`RID<class_RID>` font_rid, :ref:`String<class_String>` name **)**                                                                                                                                                                                                                               |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`font_set_opentype_feature_overrides<class_TextServer_method_font_set_opentype_feature_overrides>` **(** :ref:`RID<class_RID>` font_rid, :ref:`Dictionary<class_Dictionary>` overrides **)**                                                                                                                                                                      |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`font_set_oversampling<class_TextServer_method_font_set_oversampling>` **(** :ref:`RID<class_RID>` font_rid, :ref:`float<class_float>` oversampling **)**                                                                                                                                                                                                         |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`font_set_scale<class_TextServer_method_font_set_scale>` **(** :ref:`RID<class_RID>` font_rid, :ref:`int<class_int>` size, :ref:`float<class_float>` scale **)**                                                                                                                                                                                                  |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`font_set_script_support_override<class_TextServer_method_font_set_script_support_override>` **(** :ref:`RID<class_RID>` font_rid, :ref:`String<class_String>` script, :ref:`bool<class_bool>` supported **)**                                                                                                                                                    |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`font_set_spacing<class_TextServer_method_font_set_spacing>` **(** :ref:`RID<class_RID>` font_rid, :ref:`int<class_int>` size, :ref:`SpacingType<enum_TextServer_SpacingType>` spacing, :ref:`int<class_int>` value **)**                                                                                                                                         |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`font_set_style<class_TextServer_method_font_set_style>` **(** :ref:`RID<class_RID>` font_rid, :ref:`int<class_int>` style **)**                                                                                                                                                                                                                                  |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`font_set_style_name<class_TextServer_method_font_set_style_name>` **(** :ref:`RID<class_RID>` font_rid, :ref:`String<class_String>` name **)**                                                                                                                                                                                                                   |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`font_set_subpixel_positioning<class_TextServer_method_font_set_subpixel_positioning>` **(** :ref:`RID<class_RID>` font_rid, :ref:`SubpixelPositioning<enum_TextServer_SubpixelPositioning>` subpixel_positioning **)**                                                                                                                                           |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`font_set_texture_image<class_TextServer_method_font_set_texture_image>` **(** :ref:`RID<class_RID>` font_rid, :ref:`Vector2i<class_Vector2i>` size, :ref:`int<class_int>` texture_index, :ref:`Image<class_Image>` image **)**                                                                                                                                   |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`font_set_texture_offsets<class_TextServer_method_font_set_texture_offsets>` **(** :ref:`RID<class_RID>` font_rid, :ref:`Vector2i<class_Vector2i>` size, :ref:`int<class_int>` texture_index, :ref:`PackedInt32Array<class_PackedInt32Array>` offset **)**                                                                                                        |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`font_set_underline_position<class_TextServer_method_font_set_underline_position>` **(** :ref:`RID<class_RID>` font_rid, :ref:`int<class_int>` size, :ref:`float<class_float>` underline_position **)**                                                                                                                                                           |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`font_set_underline_thickness<class_TextServer_method_font_set_underline_thickness>` **(** :ref:`RID<class_RID>` font_rid, :ref:`int<class_int>` size, :ref:`float<class_float>` underline_thickness **)**                                                                                                                                                        |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`font_set_variation_coordinates<class_TextServer_method_font_set_variation_coordinates>` **(** :ref:`RID<class_RID>` font_rid, :ref:`Dictionary<class_Dictionary>` variation_coordinates **)**                                                                                                                                                                    |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Dictionary<class_Dictionary>`                             | :ref:`font_supported_feature_list<class_TextServer_method_font_supported_feature_list>` **(** :ref:`RID<class_RID>` font_rid **)** |const|                                                                                                                                                                                                                             |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Dictionary<class_Dictionary>`                             | :ref:`font_supported_variation_list<class_TextServer_method_font_supported_variation_list>` **(** :ref:`RID<class_RID>` font_rid **)** |const|                                                                                                                                                                                                                         |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`                                     | :ref:`format_number<class_TextServer_method_format_number>` **(** :ref:`String<class_String>` number, :ref:`String<class_String>` language="" **)** |const|                                                                                                                                                                                                            |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`free_rid<class_TextServer_method_free_rid>` **(** :ref:`RID<class_RID>` rid **)**                                                                                                                                                                                                                                                                                |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                                           | :ref:`get_features<class_TextServer_method_get_features>` **(** **)** |const|                                                                                                                                                                                                                                                                                          |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Vector2<class_Vector2>`                                   | :ref:`get_hex_code_box_size<class_TextServer_method_get_hex_code_box_size>` **(** :ref:`int<class_int>` size, :ref:`int<class_int>` index **)** |const|                                                                                                                                                                                                                |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`                                     | :ref:`get_name<class_TextServer_method_get_name>` **(** **)** |const|                                                                                                                                                                                                                                                                                                  |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`                                     | :ref:`get_support_data_filename<class_TextServer_method_get_support_data_filename>` **(** **)** |const|                                                                                                                                                                                                                                                                |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`                                     | :ref:`get_support_data_info<class_TextServer_method_get_support_data_info>` **(** **)** |const|                                                                                                                                                                                                                                                                        |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                                         | :ref:`has<class_TextServer_method_has>` **(** :ref:`RID<class_RID>` rid **)**                                                                                                                                                                                                                                                                                          |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                                         | :ref:`has_feature<class_TextServer_method_has_feature>` **(** :ref:`Feature<enum_TextServer_Feature>` feature **)** |const|                                                                                                                                                                                                                                            |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                                         | :ref:`is_locale_right_to_left<class_TextServer_method_is_locale_right_to_left>` **(** :ref:`String<class_String>` locale **)** |const|                                                                                                                                                                                                                                 |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                                         | :ref:`load_support_data<class_TextServer_method_load_support_data>` **(** :ref:`String<class_String>` filename **)**                                                                                                                                                                                                                                                   |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                                           | :ref:`name_to_tag<class_TextServer_method_name_to_tag>` **(** :ref:`String<class_String>` name **)** |const|                                                                                                                                                                                                                                                           |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`                                     | :ref:`parse_number<class_TextServer_method_parse_number>` **(** :ref:`String<class_String>` number, :ref:`String<class_String>` language="" **)** |const|                                                                                                                                                                                                              |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`                                     | :ref:`percent_sign<class_TextServer_method_percent_sign>` **(** :ref:`String<class_String>` language="" **)** |const|                                                                                                                                                                                                                                                  |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                                         | :ref:`save_support_data<class_TextServer_method_save_support_data>` **(** :ref:`String<class_String>` filename **)** |const|                                                                                                                                                                                                                                           |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                                           | :ref:`shaped_get_span_count<class_TextServer_method_shaped_get_span_count>` **(** :ref:`RID<class_RID>` shaped **)** |const|                                                                                                                                                                                                                                           |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Variant<class_Variant>`                                   | :ref:`shaped_get_span_meta<class_TextServer_method_shaped_get_span_meta>` **(** :ref:`RID<class_RID>` shaped, :ref:`int<class_int>` index **)** |const|                                                                                                                                                                                                                |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`shaped_set_span_update_font<class_TextServer_method_shaped_set_span_update_font>` **(** :ref:`RID<class_RID>` shaped, :ref:`int<class_int>` index, :ref:`Array<class_Array>` fonts, :ref:`int<class_int>` size, :ref:`Dictionary<class_Dictionary>` opentype_features={} **)**                                                                                   |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                                         | :ref:`shaped_text_add_object<class_TextServer_method_shaped_text_add_object>` **(** :ref:`RID<class_RID>` shaped, :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:`shaped_text_add_string<class_TextServer_method_shaped_text_add_string>` **(** :ref:`RID<class_RID>` shaped, :ref:`String<class_String>` text, :ref:`Array<class_Array>` 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:`shaped_text_clear<class_TextServer_method_shaped_text_clear>` **(** :ref:`RID<class_RID>` rid **)**                                                                                                                                                                                                                                                              |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`shaped_text_draw<class_TextServer_method_shaped_text_draw>` **(** :ref:`RID<class_RID>` shaped, :ref:`RID<class_RID>` canvas, :ref:`Vector2<class_Vector2>` pos, :ref:`float<class_float>` clip_l=-1, :ref:`float<class_float>` clip_r=-1, :ref:`Color<class_Color>` color=Color(1, 1, 1, 1) **)** |const|                                                       |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`shaped_text_draw_outline<class_TextServer_method_shaped_text_draw_outline>` **(** :ref:`RID<class_RID>` shaped, :ref:`RID<class_RID>` canvas, :ref:`Vector2<class_Vector2>` pos, :ref:`float<class_float>` clip_l=-1, :ref:`float<class_float>` clip_r=-1, :ref:`int<class_int>` outline_size=1, :ref:`Color<class_Color>` color=Color(1, 1, 1, 1) **)** |const| |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                                       | :ref:`shaped_text_fit_to_width<class_TextServer_method_shaped_text_fit_to_width>` **(** :ref:`RID<class_RID>` shaped, :ref:`float<class_float>` width, :ref:`int<class_int>` jst_flags=3 **)**                                                                                                                                                                         |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                                       | :ref:`shaped_text_get_ascent<class_TextServer_method_shaped_text_get_ascent>` **(** :ref:`RID<class_RID>` shaped **)** |const|                                                                                                                                                                                                                                         |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Dictionary<class_Dictionary>`                             | :ref:`shaped_text_get_carets<class_TextServer_method_shaped_text_get_carets>` **(** :ref:`RID<class_RID>` shaped, :ref:`int<class_int>` position **)** |const|                                                                                                                                                                                                         |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`                                     | :ref:`shaped_text_get_custom_punctuation<class_TextServer_method_shaped_text_get_custom_punctuation>` **(** :ref:`RID<class_RID>` shaped **)** |const|                                                                                                                                                                                                                 |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                                       | :ref:`shaped_text_get_descent<class_TextServer_method_shaped_text_get_descent>` **(** :ref:`RID<class_RID>` shaped **)** |const|                                                                                                                                                                                                                                       |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Direction<enum_TextServer_Direction>`                     | :ref:`shaped_text_get_direction<class_TextServer_method_shaped_text_get_direction>` **(** :ref:`RID<class_RID>` shaped **)** |const|                                                                                                                                                                                                                                   |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Direction<enum_TextServer_Direction>`                     | :ref:`shaped_text_get_dominant_direction_in_range<class_TextServer_method_shaped_text_get_dominant_direction_in_range>` **(** :ref:`RID<class_RID>` shaped, :ref:`int<class_int>` start, :ref:`int<class_int>` end **)** |const|                                                                                                                                       |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                                           | :ref:`shaped_text_get_ellipsis_glyph_count<class_TextServer_method_shaped_text_get_ellipsis_glyph_count>` **(** :ref:`RID<class_RID>` shaped **)** |const|                                                                                                                                                                                                             |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Array<class_Array>`                                       | :ref:`shaped_text_get_ellipsis_glyphs<class_TextServer_method_shaped_text_get_ellipsis_glyphs>` **(** :ref:`RID<class_RID>` shaped **)** |const|                                                                                                                                                                                                                       |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                                           | :ref:`shaped_text_get_ellipsis_pos<class_TextServer_method_shaped_text_get_ellipsis_pos>` **(** :ref:`RID<class_RID>` shaped **)** |const|                                                                                                                                                                                                                             |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                                           | :ref:`shaped_text_get_glyph_count<class_TextServer_method_shaped_text_get_glyph_count>` **(** :ref:`RID<class_RID>` shaped **)** |const|                                                                                                                                                                                                                               |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Array<class_Array>`                                       | :ref:`shaped_text_get_glyphs<class_TextServer_method_shaped_text_get_glyphs>` **(** :ref:`RID<class_RID>` shaped **)** |const|                                                                                                                                                                                                                                         |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Vector2<class_Vector2>`                                   | :ref:`shaped_text_get_grapheme_bounds<class_TextServer_method_shaped_text_get_grapheme_bounds>` **(** :ref:`RID<class_RID>` shaped, :ref:`int<class_int>` pos **)** |const|                                                                                                                                                                                            |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Direction<enum_TextServer_Direction>`                     | :ref:`shaped_text_get_inferred_direction<class_TextServer_method_shaped_text_get_inferred_direction>` **(** :ref:`RID<class_RID>` shaped **)** |const|                                                                                                                                                                                                                 |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`PackedInt32Array<class_PackedInt32Array>`                 | :ref:`shaped_text_get_line_breaks<class_TextServer_method_shaped_text_get_line_breaks>` **(** :ref:`RID<class_RID>` shaped, :ref:`float<class_float>` width, :ref:`int<class_int>` start=0, :ref:`int<class_int>` break_flags=96 **)** |const|                                                                                                                         |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`PackedInt32Array<class_PackedInt32Array>`                 | :ref:`shaped_text_get_line_breaks_adv<class_TextServer_method_shaped_text_get_line_breaks_adv>` **(** :ref:`RID<class_RID>` shaped, :ref:`PackedFloat32Array<class_PackedFloat32Array>` width, :ref:`int<class_int>` start=0, :ref:`bool<class_bool>` once=true, :ref:`int<class_int>` break_flags=96 **)** |const|                                                    |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Rect2<class_Rect2>`                                       | :ref:`shaped_text_get_object_rect<class_TextServer_method_shaped_text_get_object_rect>` **(** :ref:`RID<class_RID>` shaped, :ref:`Variant<class_Variant>` key **)** |const|                                                                                                                                                                                            |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Array<class_Array>`                                       | :ref:`shaped_text_get_objects<class_TextServer_method_shaped_text_get_objects>` **(** :ref:`RID<class_RID>` shaped **)** |const|                                                                                                                                                                                                                                       |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Orientation<enum_TextServer_Orientation>`                 | :ref:`shaped_text_get_orientation<class_TextServer_method_shaped_text_get_orientation>` **(** :ref:`RID<class_RID>` shaped **)** |const|                                                                                                                                                                                                                               |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`RID<class_RID>`                                           | :ref:`shaped_text_get_parent<class_TextServer_method_shaped_text_get_parent>` **(** :ref:`RID<class_RID>` shaped **)** |const|                                                                                                                                                                                                                                         |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                                         | :ref:`shaped_text_get_preserve_control<class_TextServer_method_shaped_text_get_preserve_control>` **(** :ref:`RID<class_RID>` shaped **)** |const|                                                                                                                                                                                                                     |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                                         | :ref:`shaped_text_get_preserve_invalid<class_TextServer_method_shaped_text_get_preserve_invalid>` **(** :ref:`RID<class_RID>` shaped **)** |const|                                                                                                                                                                                                                     |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Vector2i<class_Vector2i>`                                 | :ref:`shaped_text_get_range<class_TextServer_method_shaped_text_get_range>` **(** :ref:`RID<class_RID>` shaped **)** |const|                                                                                                                                                                                                                                           |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`PackedVector2Array<class_PackedVector2Array>`             | :ref:`shaped_text_get_selection<class_TextServer_method_shaped_text_get_selection>` **(** :ref:`RID<class_RID>` shaped, :ref:`int<class_int>` start, :ref:`int<class_int>` end **)** |const|                                                                                                                                                                           |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Vector2<class_Vector2>`                                   | :ref:`shaped_text_get_size<class_TextServer_method_shaped_text_get_size>` **(** :ref:`RID<class_RID>` shaped **)** |const|                                                                                                                                                                                                                                             |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                                           | :ref:`shaped_text_get_trim_pos<class_TextServer_method_shaped_text_get_trim_pos>` **(** :ref:`RID<class_RID>` shaped **)** |const|                                                                                                                                                                                                                                     |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                                       | :ref:`shaped_text_get_underline_position<class_TextServer_method_shaped_text_get_underline_position>` **(** :ref:`RID<class_RID>` shaped **)** |const|                                                                                                                                                                                                                 |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                                       | :ref:`shaped_text_get_underline_thickness<class_TextServer_method_shaped_text_get_underline_thickness>` **(** :ref:`RID<class_RID>` shaped **)** |const|                                                                                                                                                                                                               |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                                       | :ref:`shaped_text_get_width<class_TextServer_method_shaped_text_get_width>` **(** :ref:`RID<class_RID>` shaped **)** |const|                                                                                                                                                                                                                                           |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`PackedInt32Array<class_PackedInt32Array>`                 | :ref:`shaped_text_get_word_breaks<class_TextServer_method_shaped_text_get_word_breaks>` **(** :ref:`RID<class_RID>` shaped, :ref:`int<class_int>` grapheme_flags **)** |const|                                                                                                                                                                                         |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                                           | :ref:`shaped_text_hit_test_grapheme<class_TextServer_method_shaped_text_hit_test_grapheme>` **(** :ref:`RID<class_RID>` shaped, :ref:`float<class_float>` coords **)** |const|                                                                                                                                                                                         |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                                           | :ref:`shaped_text_hit_test_position<class_TextServer_method_shaped_text_hit_test_position>` **(** :ref:`RID<class_RID>` shaped, :ref:`float<class_float>` coords **)** |const|                                                                                                                                                                                         |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                                         | :ref:`shaped_text_is_ready<class_TextServer_method_shaped_text_is_ready>` **(** :ref:`RID<class_RID>` shaped **)** |const|                                                                                                                                                                                                                                             |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                                           | :ref:`shaped_text_next_grapheme_pos<class_TextServer_method_shaped_text_next_grapheme_pos>` **(** :ref:`RID<class_RID>` shaped, :ref:`int<class_int>` pos **)** |const|                                                                                                                                                                                                |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`shaped_text_overrun_trim_to_width<class_TextServer_method_shaped_text_overrun_trim_to_width>` **(** :ref:`RID<class_RID>` shaped, :ref:`float<class_float>` width=0, :ref:`int<class_int>` overrun_trim_flags=0 **)**                                                                                                                                            |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                                           | :ref:`shaped_text_prev_grapheme_pos<class_TextServer_method_shaped_text_prev_grapheme_pos>` **(** :ref:`RID<class_RID>` shaped, :ref:`int<class_int>` pos **)** |const|                                                                                                                                                                                                |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                                         | :ref:`shaped_text_resize_object<class_TextServer_method_shaped_text_resize_object>` **(** :ref:`RID<class_RID>` shaped, :ref:`Variant<class_Variant>` key, :ref:`Vector2<class_Vector2>` size, :ref:`InlineAlignment<enum_@GlobalScope_InlineAlignment>` inline_align=5 **)**                                                                                          |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`shaped_text_set_bidi_override<class_TextServer_method_shaped_text_set_bidi_override>` **(** :ref:`RID<class_RID>` shaped, :ref:`Array<class_Array>` override **)**                                                                                                                                                                                               |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`shaped_text_set_custom_punctuation<class_TextServer_method_shaped_text_set_custom_punctuation>` **(** :ref:`RID<class_RID>` shaped, :ref:`String<class_String>` punct **)**                                                                                                                                                                                      |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`shaped_text_set_direction<class_TextServer_method_shaped_text_set_direction>` **(** :ref:`RID<class_RID>` shaped, :ref:`Direction<enum_TextServer_Direction>` direction=0 **)**                                                                                                                                                                                  |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`shaped_text_set_orientation<class_TextServer_method_shaped_text_set_orientation>` **(** :ref:`RID<class_RID>` shaped, :ref:`Orientation<enum_TextServer_Orientation>` orientation=0 **)**                                                                                                                                                                        |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`shaped_text_set_preserve_control<class_TextServer_method_shaped_text_set_preserve_control>` **(** :ref:`RID<class_RID>` shaped, :ref:`bool<class_bool>` enabled **)**                                                                                                                                                                                            |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`shaped_text_set_preserve_invalid<class_TextServer_method_shaped_text_set_preserve_invalid>` **(** :ref:`RID<class_RID>` shaped, :ref:`bool<class_bool>` enabled **)**                                                                                                                                                                                            |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                                         | :ref:`shaped_text_shape<class_TextServer_method_shaped_text_shape>` **(** :ref:`RID<class_RID>` shaped **)**                                                                                                                                                                                                                                                           |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Array<class_Array>`                                       | :ref:`shaped_text_sort_logical<class_TextServer_method_shaped_text_sort_logical>` **(** :ref:`RID<class_RID>` shaped **)**                                                                                                                                                                                                                                             |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`RID<class_RID>`                                           | :ref:`shaped_text_substr<class_TextServer_method_shaped_text_substr>` **(** :ref:`RID<class_RID>` shaped, :ref:`int<class_int>` start, :ref:`int<class_int>` length **)** |const|                                                                                                                                                                                      |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                                       | :ref:`shaped_text_tab_align<class_TextServer_method_shaped_text_tab_align>` **(** :ref:`RID<class_RID>` shaped, :ref:`PackedFloat32Array<class_PackedFloat32Array>` tab_stops **)**                                                                                                                                                                                    |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`                                     | :ref:`string_to_lower<class_TextServer_method_string_to_lower>` **(** :ref:`String<class_String>` string, :ref:`String<class_String>` language="" **)** |const|                                                                                                                                                                                                        |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`                                     | :ref:`string_to_upper<class_TextServer_method_string_to_upper>` **(** :ref:`String<class_String>` string, :ref:`String<class_String>` language="" **)** |const|                                                                                                                                                                                                        |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`                                     | :ref:`strip_diacritics<class_TextServer_method_strip_diacritics>` **(** :ref:`String<class_String>` string **)** |const|                                                                                                                                                                                                                                               |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`                                     | :ref:`tag_to_name<class_TextServer_method_tag_to_name>` **(** :ref:`int<class_int>` tag **)** |const|                                                                                                                                                                                                                                                                  |
++-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 
 Enumerations
 ------------
@@ -542,6 +552,34 @@ enum **Hinting**:
 
 ----
 
+.. _enum_TextServer_SubpixelPositioning:
+
+.. _class_TextServer_constant_SUBPIXEL_POSITIONING_DISABLED:
+
+.. _class_TextServer_constant_SUBPIXEL_POSITIONING_AUTO:
+
+.. _class_TextServer_constant_SUBPIXEL_POSITIONING_ONE_HALF:
+
+.. _class_TextServer_constant_SUBPIXEL_POSITIONING_ONE_QUARTER:
+
+enum **SubpixelPositioning**:
+
+- **SUBPIXEL_POSITIONING_DISABLED** = **0** --- Glyph horizontal position is rounded to the whole pixel size, each glyph is rasterized once.
+
+- **SUBPIXEL_POSITIONING_AUTO** = **1** --- Glyph horizontal position is rounded based on font size.
+
+- To one quarter of the pixel size if font size is smaller or equal to ``16``.
+
+- To one half of the pixel size if font size is smaller or equal to ``20``.
+
+- To the whole pixel size for larger fonts.
+
+- **SUBPIXEL_POSITIONING_ONE_HALF** = **2** --- Glyph horizontal position is rounded to one half of the pixel size, each glyph is rasterized up to two times.
+
+- **SUBPIXEL_POSITIONING_ONE_QUARTER** = **3** --- Glyph horizontal position is rounded to one quarter of the pixel size, each glyph is rasterized up to four times.
+
+----
+
 .. _enum_TextServer_Feature:
 
 .. _class_TextServer_constant_FEATURE_BIDI_LAYOUT:
@@ -967,6 +1005,14 @@ Returns font style name.
 
 ----
 
+.. _class_TextServer_method_font_get_subpixel_positioning:
+
+- :ref:`SubpixelPositioning<enum_TextServer_SubpixelPositioning>` **font_get_subpixel_positioning** **(** :ref:`RID<class_RID>` font_rid **)** |const|
+
+Returns font sub-pixel glyph positioning mode.
+
+----
+
 .. _class_TextServer_method_font_get_supported_chars:
 
 - :ref:`String<class_String>` **font_get_supported_chars** **(** :ref:`RID<class_RID>` font_rid **)** |const|
@@ -1241,7 +1287,7 @@ Sets rectangle in the cache texture containing the glyph.
 
 .. _class_TextServer_method_font_set_hinting:
 
-- void **font_set_hinting** **(** :ref:`RID<class_RID>` font_rid, :ref:`Hinting<enum_TextServer_Hinting>` _hinting **)**
+- void **font_set_hinting** **(** :ref:`RID<class_RID>` font_rid, :ref:`Hinting<enum_TextServer_Hinting>` hinting **)**
 
 Sets font hinting mode. Used by dynamic fonts only.
 
@@ -1349,7 +1395,15 @@ Sets the font style flags, see :ref:`FontStyle<enum_TextServer_FontStyle>`.
 
 - void **font_set_style_name** **(** :ref:`RID<class_RID>` font_rid, :ref:`String<class_String>` name **)**
 
-Set the font style name.
+Sets the font style name.
+
+----
+
+.. _class_TextServer_method_font_set_subpixel_positioning:
+
+- void **font_set_subpixel_positioning** **(** :ref:`RID<class_RID>` font_rid, :ref:`SubpixelPositioning<enum_TextServer_SubpixelPositioning>` subpixel_positioning **)**
+
+Sets font sub-pixel glyph positioning mode.
 
 ----
 
@@ -1533,6 +1587,30 @@ Saves optional TextServer database (e.g. ICU break iterators and dictionaries) t
 
 ----
 
+.. _class_TextServer_method_shaped_get_span_count:
+
+- :ref:`int<class_int>` **shaped_get_span_count** **(** :ref:`RID<class_RID>` shaped **)** |const|
+
+Returns number of text spans added using :ref:`shaped_text_add_string<class_TextServer_method_shaped_text_add_string>` or :ref:`shaped_text_add_object<class_TextServer_method_shaped_text_add_object>`.
+
+----
+
+.. _class_TextServer_method_shaped_get_span_meta:
+
+- :ref:`Variant<class_Variant>` **shaped_get_span_meta** **(** :ref:`RID<class_RID>` shaped, :ref:`int<class_int>` index **)** |const|
+
+Returns text span metadata.
+
+----
+
+.. _class_TextServer_method_shaped_set_span_update_font:
+
+- void **shaped_set_span_update_font** **(** :ref:`RID<class_RID>` shaped, :ref:`int<class_int>` index, :ref:`Array<class_Array>` fonts, :ref:`int<class_int>` size, :ref:`Dictionary<class_Dictionary>` opentype_features={} **)**
+
+Changes text span font, font size and OpenType features, without changing the text.
+
+----
+
 .. _class_TextServer_method_shaped_text_add_object:
 
 - :ref:`bool<class_bool>` **shaped_text_add_object** **(** :ref:`RID<class_RID>` shaped, :ref:`Variant<class_Variant>` key, :ref:`Vector2<class_Vector2>` size, :ref:`InlineAlignment<enum_@GlobalScope_InlineAlignment>` inline_align=5, :ref:`int<class_int>` length=1 **)**
@@ -1543,7 +1621,7 @@ Adds inline object to the text buffer, ``key`` must be unique. In the text, obje
 
 .. _class_TextServer_method_shaped_text_add_string:
 
-- :ref:`bool<class_bool>` **shaped_text_add_string** **(** :ref:`RID<class_RID>` shaped, :ref:`String<class_String>` text, :ref:`Array<class_Array>` fonts, :ref:`int<class_int>` size, :ref:`Dictionary<class_Dictionary>` opentype_features={}, :ref:`String<class_String>` language="" **)**
+- :ref:`bool<class_bool>` **shaped_text_add_string** **(** :ref:`RID<class_RID>` shaped, :ref:`String<class_String>` text, :ref:`Array<class_Array>` fonts, :ref:`int<class_int>` size, :ref:`Dictionary<class_Dictionary>` opentype_features={}, :ref:`String<class_String>` language="", :ref:`Variant<class_Variant>` meta=null **)**
 
 Adds text span and font to draw it to the text buffer.
 

+ 390 - 340
classes/class_textserverextension.rst

@@ -21,337 +21,347 @@ External TextServer implementations should inherit from this class.
 Methods
 -------
 
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`RID<class_RID>`                               | :ref:`_create_font<class_TextServerExtension_method__create_font>` **(** **)** |virtual|                                                                                                                                                                                                                                                                          |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`RID<class_RID>`                               | :ref:`_create_shaped_text<class_TextServerExtension_method__create_shaped_text>` **(** :ref:`Direction<enum_TextServer_Direction>` direction, :ref:`Orientation<enum_TextServer_Orientation>` orientation **)** |virtual|                                                                                                                                         |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`_draw_hex_code_box<class_TextServerExtension_method__draw_hex_code_box>` **(** :ref:`RID<class_RID>` canvas, :ref:`int<class_int>` size, :ref:`Vector2<class_Vector2>` pos, :ref:`int<class_int>` index, :ref:`Color<class_Color>` color **)** |virtual| |const|                                                                                            |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`_font_clear_glyphs<class_TextServerExtension_method__font_clear_glyphs>` **(** :ref:`RID<class_RID>` font_rid, :ref:`Vector2i<class_Vector2i>` size **)** |virtual|                                                                                                                                                                                         |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`_font_clear_kerning_map<class_TextServerExtension_method__font_clear_kerning_map>` **(** :ref:`RID<class_RID>` font_rid, :ref:`int<class_int>` size **)** |virtual|                                                                                                                                                                                         |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`_font_clear_size_cache<class_TextServerExtension_method__font_clear_size_cache>` **(** :ref:`RID<class_RID>` font_rid **)** |virtual|                                                                                                                                                                                                                       |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`_font_clear_textures<class_TextServerExtension_method__font_clear_textures>` **(** :ref:`RID<class_RID>` font_rid, :ref:`Vector2i<class_Vector2i>` size **)** |virtual|                                                                                                                                                                                     |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`_font_draw_glyph<class_TextServerExtension_method__font_draw_glyph>` **(** :ref:`RID<class_RID>` font_rid, :ref:`RID<class_RID>` canvas, :ref:`int<class_int>` size, :ref:`Vector2<class_Vector2>` pos, :ref:`int<class_int>` index, :ref:`Color<class_Color>` color **)** |virtual| |const|                                                                |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`_font_draw_glyph_outline<class_TextServerExtension_method__font_draw_glyph_outline>` **(** :ref:`RID<class_RID>` font_rid, :ref:`RID<class_RID>` canvas, :ref:`int<class_int>` size, :ref:`int<class_int>` outline_size, :ref:`Vector2<class_Vector2>` pos, :ref:`int<class_int>` index, :ref:`Color<class_Color>` color **)** |virtual| |const|            |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                           | :ref:`_font_get_ascent<class_TextServerExtension_method__font_get_ascent>` **(** :ref:`RID<class_RID>` font_rid, :ref:`int<class_int>` size **)** |virtual| |const|                                                                                                                                                                                               |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                           | :ref:`_font_get_descent<class_TextServerExtension_method__font_get_descent>` **(** :ref:`RID<class_RID>` font_rid, :ref:`int<class_int>` size **)** |virtual| |const|                                                                                                                                                                                             |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                               | :ref:`_font_get_fixed_size<class_TextServerExtension_method__font_get_fixed_size>` **(** :ref:`RID<class_RID>` font_rid **)** |virtual| |const|                                                                                                                                                                                                                   |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                           | :ref:`_font_get_global_oversampling<class_TextServerExtension_method__font_get_global_oversampling>` **(** **)** |virtual| |const|                                                                                                                                                                                                                                |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Vector2<class_Vector2>`                       | :ref:`_font_get_glyph_advance<class_TextServerExtension_method__font_get_glyph_advance>` **(** :ref:`RID<class_RID>` font_rid, :ref:`int<class_int>` size, :ref:`int<class_int>` glyph **)** |virtual| |const|                                                                                                                                                    |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Dictionary<class_Dictionary>`                 | :ref:`_font_get_glyph_contours<class_TextServerExtension_method__font_get_glyph_contours>` **(** :ref:`RID<class_RID>` font_rid, :ref:`int<class_int>` size, :ref:`int<class_int>` index **)** |virtual| |const|                                                                                                                                                  |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                               | :ref:`_font_get_glyph_index<class_TextServerExtension_method__font_get_glyph_index>` **(** :ref:`RID<class_RID>` font_rid, :ref:`int<class_int>` size, :ref:`int<class_int>` char, :ref:`int<class_int>` variation_selector **)** |virtual| |const|                                                                                                               |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Array<class_Array>`                           | :ref:`_font_get_glyph_list<class_TextServerExtension_method__font_get_glyph_list>` **(** :ref:`RID<class_RID>` font_rid, :ref:`Vector2i<class_Vector2i>` size **)** |virtual| |const|                                                                                                                                                                             |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Vector2<class_Vector2>`                       | :ref:`_font_get_glyph_offset<class_TextServerExtension_method__font_get_glyph_offset>` **(** :ref:`RID<class_RID>` font_rid, :ref:`Vector2i<class_Vector2i>` size, :ref:`int<class_int>` glyph **)** |virtual| |const|                                                                                                                                            |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Vector2<class_Vector2>`                       | :ref:`_font_get_glyph_size<class_TextServerExtension_method__font_get_glyph_size>` **(** :ref:`RID<class_RID>` font_rid, :ref:`Vector2i<class_Vector2i>` size, :ref:`int<class_int>` glyph **)** |virtual| |const|                                                                                                                                                |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                               | :ref:`_font_get_glyph_texture_idx<class_TextServerExtension_method__font_get_glyph_texture_idx>` **(** :ref:`RID<class_RID>` font_rid, :ref:`Vector2i<class_Vector2i>` size, :ref:`int<class_int>` glyph **)** |virtual| |const|                                                                                                                                  |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Rect2<class_Rect2>`                           | :ref:`_font_get_glyph_uv_rect<class_TextServerExtension_method__font_get_glyph_uv_rect>` **(** :ref:`RID<class_RID>` font_rid, :ref:`Vector2i<class_Vector2i>` size, :ref:`int<class_int>` glyph **)** |virtual| |const|                                                                                                                                          |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                               | :ref:`_font_get_hinting<class_TextServerExtension_method__font_get_hinting>` **(** :ref:`RID<class_RID>` font_rid **)** |virtual| |const|                                                                                                                                                                                                                         |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Vector2<class_Vector2>`                       | :ref:`_font_get_kerning<class_TextServerExtension_method__font_get_kerning>` **(** :ref:`RID<class_RID>` font_rid, :ref:`int<class_int>` size, :ref:`Vector2i<class_Vector2i>` glyph_pair **)** |virtual| |const|                                                                                                                                                 |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Array<class_Array>`                           | :ref:`_font_get_kerning_list<class_TextServerExtension_method__font_get_kerning_list>` **(** :ref:`RID<class_RID>` font_rid, :ref:`int<class_int>` size **)** |virtual| |const|                                                                                                                                                                                   |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                             | :ref:`_font_get_language_support_override<class_TextServerExtension_method__font_get_language_support_override>` **(** :ref:`RID<class_RID>` font_rid, :ref:`String<class_String>` language **)** |virtual|                                                                                                                                                       |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`PackedStringArray<class_PackedStringArray>`   | :ref:`_font_get_language_support_overrides<class_TextServerExtension_method__font_get_language_support_overrides>` **(** :ref:`RID<class_RID>` font_rid **)** |virtual|                                                                                                                                                                                           |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                               | :ref:`_font_get_msdf_pixel_range<class_TextServerExtension_method__font_get_msdf_pixel_range>` **(** :ref:`RID<class_RID>` font_rid **)** |virtual| |const|                                                                                                                                                                                                       |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                               | :ref:`_font_get_msdf_size<class_TextServerExtension_method__font_get_msdf_size>` **(** :ref:`RID<class_RID>` font_rid **)** |virtual| |const|                                                                                                                                                                                                                     |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_String>`                         | :ref:`_font_get_name<class_TextServerExtension_method__font_get_name>` **(** :ref:`RID<class_RID>` font_rid **)** |virtual| |const|                                                                                                                                                                                                                               |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Dictionary<class_Dictionary>`                 | :ref:`_font_get_opentype_feature_overrides<class_TextServerExtension_method__font_get_opentype_feature_overrides>` **(** :ref:`RID<class_RID>` font_rid **)** |virtual| |const|                                                                                                                                                                                   |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                           | :ref:`_font_get_oversampling<class_TextServerExtension_method__font_get_oversampling>` **(** :ref:`RID<class_RID>` font_rid **)** |virtual| |const|                                                                                                                                                                                                               |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                           | :ref:`_font_get_scale<class_TextServerExtension_method__font_get_scale>` **(** :ref:`RID<class_RID>` font_rid, :ref:`int<class_int>` size **)** |virtual| |const|                                                                                                                                                                                                 |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                             | :ref:`_font_get_script_support_override<class_TextServerExtension_method__font_get_script_support_override>` **(** :ref:`RID<class_RID>` font_rid, :ref:`String<class_String>` script **)** |virtual|                                                                                                                                                             |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`PackedStringArray<class_PackedStringArray>`   | :ref:`_font_get_script_support_overrides<class_TextServerExtension_method__font_get_script_support_overrides>` **(** :ref:`RID<class_RID>` font_rid **)** |virtual|                                                                                                                                                                                               |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Array<class_Array>`                           | :ref:`_font_get_size_cache_list<class_TextServerExtension_method__font_get_size_cache_list>` **(** :ref:`RID<class_RID>` font_rid **)** |virtual| |const|                                                                                                                                                                                                         |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                               | :ref:`_font_get_spacing<class_TextServerExtension_method__font_get_spacing>` **(** :ref:`RID<class_RID>` font_rid, :ref:`int<class_int>` size, :ref:`SpacingType<enum_TextServer_SpacingType>` spacing **)** |virtual| |const|                                                                                                                                    |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                               | :ref:`_font_get_style<class_TextServerExtension_method__font_get_style>` **(** :ref:`RID<class_RID>` font_rid **)** |virtual| |const|                                                                                                                                                                                                                             |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_String>`                         | :ref:`_font_get_style_name<class_TextServerExtension_method__font_get_style_name>` **(** :ref:`RID<class_RID>` font_rid **)** |virtual| |const|                                                                                                                                                                                                                   |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_String>`                         | :ref:`_font_get_supported_chars<class_TextServerExtension_method__font_get_supported_chars>` **(** :ref:`RID<class_RID>` font_rid **)** |virtual| |const|                                                                                                                                                                                                         |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                               | :ref:`_font_get_texture_count<class_TextServerExtension_method__font_get_texture_count>` **(** :ref:`RID<class_RID>` font_rid, :ref:`Vector2i<class_Vector2i>` size **)** |virtual| |const|                                                                                                                                                                       |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Image<class_Image>`                           | :ref:`_font_get_texture_image<class_TextServerExtension_method__font_get_texture_image>` **(** :ref:`RID<class_RID>` font_rid, :ref:`Vector2i<class_Vector2i>` size, :ref:`int<class_int>` texture_index **)** |virtual| |const|                                                                                                                                  |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`PackedInt32Array<class_PackedInt32Array>`     | :ref:`_font_get_texture_offsets<class_TextServerExtension_method__font_get_texture_offsets>` **(** :ref:`RID<class_RID>` font_rid, :ref:`Vector2i<class_Vector2i>` size, :ref:`int<class_int>` texture_index **)** |virtual| |const|                                                                                                                              |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                           | :ref:`_font_get_underline_position<class_TextServerExtension_method__font_get_underline_position>` **(** :ref:`RID<class_RID>` font_rid, :ref:`int<class_int>` size **)** |virtual| |const|                                                                                                                                                                       |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                           | :ref:`_font_get_underline_thickness<class_TextServerExtension_method__font_get_underline_thickness>` **(** :ref:`RID<class_RID>` font_rid, :ref:`int<class_int>` size **)** |virtual| |const|                                                                                                                                                                     |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Dictionary<class_Dictionary>`                 | :ref:`_font_get_variation_coordinates<class_TextServerExtension_method__font_get_variation_coordinates>` **(** :ref:`RID<class_RID>` font_rid **)** |virtual| |const|                                                                                                                                                                                             |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                             | :ref:`_font_has_char<class_TextServerExtension_method__font_has_char>` **(** :ref:`RID<class_RID>` font_rid, :ref:`int<class_int>` char **)** |virtual| |const|                                                                                                                                                                                                   |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                             | :ref:`_font_is_antialiased<class_TextServerExtension_method__font_is_antialiased>` **(** :ref:`RID<class_RID>` font_rid **)** |virtual| |const|                                                                                                                                                                                                                   |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                             | :ref:`_font_is_force_autohinter<class_TextServerExtension_method__font_is_force_autohinter>` **(** :ref:`RID<class_RID>` font_rid **)** |virtual| |const|                                                                                                                                                                                                         |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                             | :ref:`_font_is_language_supported<class_TextServerExtension_method__font_is_language_supported>` **(** :ref:`RID<class_RID>` font_rid, :ref:`String<class_String>` language **)** |virtual| |const|                                                                                                                                                               |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                             | :ref:`_font_is_multichannel_signed_distance_field<class_TextServerExtension_method__font_is_multichannel_signed_distance_field>` **(** :ref:`RID<class_RID>` font_rid **)** |virtual| |const|                                                                                                                                                                     |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                             | :ref:`_font_is_script_supported<class_TextServerExtension_method__font_is_script_supported>` **(** :ref:`RID<class_RID>` font_rid, :ref:`String<class_String>` script **)** |virtual| |const|                                                                                                                                                                     |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`_font_remove_glyph<class_TextServerExtension_method__font_remove_glyph>` **(** :ref:`RID<class_RID>` font_rid, :ref:`Vector2i<class_Vector2i>` size, :ref:`int<class_int>` glyph **)** |virtual|                                                                                                                                                            |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`_font_remove_kerning<class_TextServerExtension_method__font_remove_kerning>` **(** :ref:`RID<class_RID>` font_rid, :ref:`int<class_int>` size, :ref:`Vector2i<class_Vector2i>` glyph_pair **)** |virtual|                                                                                                                                                   |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`_font_remove_language_support_override<class_TextServerExtension_method__font_remove_language_support_override>` **(** :ref:`RID<class_RID>` font_rid, :ref:`String<class_String>` language **)** |virtual|                                                                                                                                                 |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`_font_remove_script_support_override<class_TextServerExtension_method__font_remove_script_support_override>` **(** :ref:`RID<class_RID>` font_rid, :ref:`String<class_String>` script **)** |virtual|                                                                                                                                                       |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`_font_remove_size_cache<class_TextServerExtension_method__font_remove_size_cache>` **(** :ref:`RID<class_RID>` font_rid, :ref:`Vector2i<class_Vector2i>` size **)** |virtual|                                                                                                                                                                               |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`_font_remove_texture<class_TextServerExtension_method__font_remove_texture>` **(** :ref:`RID<class_RID>` font_rid, :ref:`Vector2i<class_Vector2i>` size, :ref:`int<class_int>` texture_index **)** |virtual|                                                                                                                                                |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`_font_render_glyph<class_TextServerExtension_method__font_render_glyph>` **(** :ref:`RID<class_RID>` font_rid, :ref:`Vector2i<class_Vector2i>` size, :ref:`int<class_int>` index **)** |virtual|                                                                                                                                                            |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`_font_render_range<class_TextServerExtension_method__font_render_range>` **(** :ref:`RID<class_RID>` font_rid, :ref:`Vector2i<class_Vector2i>` size, :ref:`int<class_int>` start, :ref:`int<class_int>` end **)** |virtual|                                                                                                                                 |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`_font_set_antialiased<class_TextServerExtension_method__font_set_antialiased>` **(** :ref:`RID<class_RID>` font_rid, :ref:`bool<class_bool>` antialiased **)** |virtual|                                                                                                                                                                                    |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`_font_set_ascent<class_TextServerExtension_method__font_set_ascent>` **(** :ref:`RID<class_RID>` font_rid, :ref:`int<class_int>` size, :ref:`float<class_float>` ascent **)** |virtual|                                                                                                                                                                     |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`_font_set_data<class_TextServerExtension_method__font_set_data>` **(** :ref:`RID<class_RID>` font_rid, :ref:`PackedByteArray<class_PackedByteArray>` data **)** |virtual|                                                                                                                                                                                   |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`_font_set_data_ptr<class_TextServerExtension_method__font_set_data_ptr>` **(** :ref:`RID<class_RID>` font_rid, const uint8_t* data_ptr, :ref:`int<class_int>` data_size **)** |virtual|                                                                                                                                                                     |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`_font_set_descent<class_TextServerExtension_method__font_set_descent>` **(** :ref:`RID<class_RID>` font_rid, :ref:`int<class_int>` size, :ref:`float<class_float>` descent **)** |virtual|                                                                                                                                                                  |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`_font_set_fixed_size<class_TextServerExtension_method__font_set_fixed_size>` **(** :ref:`RID<class_RID>` font_rid, :ref:`int<class_int>` fixed_size **)** |virtual|                                                                                                                                                                                         |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`_font_set_force_autohinter<class_TextServerExtension_method__font_set_force_autohinter>` **(** :ref:`RID<class_RID>` font_rid, :ref:`bool<class_bool>` force_autohinter **)** |virtual|                                                                                                                                                                     |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`_font_set_global_oversampling<class_TextServerExtension_method__font_set_global_oversampling>` **(** :ref:`float<class_float>` oversampling **)** |virtual|                                                                                                                                                                                                 |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`_font_set_glyph_advance<class_TextServerExtension_method__font_set_glyph_advance>` **(** :ref:`RID<class_RID>` font_rid, :ref:`int<class_int>` size, :ref:`int<class_int>` glyph, :ref:`Vector2<class_Vector2>` advance **)** |virtual|                                                                                                                     |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`_font_set_glyph_offset<class_TextServerExtension_method__font_set_glyph_offset>` **(** :ref:`RID<class_RID>` font_rid, :ref:`Vector2i<class_Vector2i>` size, :ref:`int<class_int>` glyph, :ref:`Vector2<class_Vector2>` offset **)** |virtual|                                                                                                              |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`_font_set_glyph_size<class_TextServerExtension_method__font_set_glyph_size>` **(** :ref:`RID<class_RID>` font_rid, :ref:`Vector2i<class_Vector2i>` size, :ref:`int<class_int>` glyph, :ref:`Vector2<class_Vector2>` gl_size **)** |virtual|                                                                                                                 |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`_font_set_glyph_texture_idx<class_TextServerExtension_method__font_set_glyph_texture_idx>` **(** :ref:`RID<class_RID>` font_rid, :ref:`Vector2i<class_Vector2i>` size, :ref:`int<class_int>` glyph, :ref:`int<class_int>` texture_idx **)** |virtual|                                                                                                       |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`_font_set_glyph_uv_rect<class_TextServerExtension_method__font_set_glyph_uv_rect>` **(** :ref:`RID<class_RID>` font_rid, :ref:`Vector2i<class_Vector2i>` size, :ref:`int<class_int>` glyph, :ref:`Rect2<class_Rect2>` uv_rect **)** |virtual|                                                                                                               |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`_font_set_hinting<class_TextServerExtension_method__font_set_hinting>` **(** :ref:`RID<class_RID>` font_rid, :ref:`Hinting<enum_TextServer_Hinting>` hinting **)** |virtual|                                                                                                                                                                                |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`_font_set_kerning<class_TextServerExtension_method__font_set_kerning>` **(** :ref:`RID<class_RID>` font_rid, :ref:`int<class_int>` size, :ref:`Vector2i<class_Vector2i>` glyph_pair, :ref:`Vector2<class_Vector2>` kerning **)** |virtual|                                                                                                                  |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`_font_set_language_support_override<class_TextServerExtension_method__font_set_language_support_override>` **(** :ref:`RID<class_RID>` font_rid, :ref:`String<class_String>` language, :ref:`bool<class_bool>` supported **)** |virtual|                                                                                                                    |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`_font_set_msdf_pixel_range<class_TextServerExtension_method__font_set_msdf_pixel_range>` **(** :ref:`RID<class_RID>` font_rid, :ref:`int<class_int>` msdf_pixel_range **)** |virtual|                                                                                                                                                                       |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`_font_set_msdf_size<class_TextServerExtension_method__font_set_msdf_size>` **(** :ref:`RID<class_RID>` font_rid, :ref:`int<class_int>` msdf_size **)** |virtual|                                                                                                                                                                                            |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`_font_set_multichannel_signed_distance_field<class_TextServerExtension_method__font_set_multichannel_signed_distance_field>` **(** :ref:`RID<class_RID>` font_rid, :ref:`bool<class_bool>` msdf **)** |virtual|                                                                                                                                             |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`_font_set_name<class_TextServerExtension_method__font_set_name>` **(** :ref:`RID<class_RID>` font_rid, :ref:`String<class_String>` name **)** |virtual|                                                                                                                                                                                                     |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`_font_set_opentype_feature_overrides<class_TextServerExtension_method__font_set_opentype_feature_overrides>` **(** :ref:`RID<class_RID>` font_rid, :ref:`Dictionary<class_Dictionary>` overrides **)** |virtual|                                                                                                                                            |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`_font_set_oversampling<class_TextServerExtension_method__font_set_oversampling>` **(** :ref:`RID<class_RID>` font_rid, :ref:`float<class_float>` oversampling **)** |virtual|                                                                                                                                                                               |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`_font_set_scale<class_TextServerExtension_method__font_set_scale>` **(** :ref:`RID<class_RID>` font_rid, :ref:`int<class_int>` size, :ref:`float<class_float>` scale **)** |virtual|                                                                                                                                                                        |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`_font_set_script_support_override<class_TextServerExtension_method__font_set_script_support_override>` **(** :ref:`RID<class_RID>` font_rid, :ref:`String<class_String>` script, :ref:`bool<class_bool>` supported **)** |virtual|                                                                                                                          |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`_font_set_spacing<class_TextServerExtension_method__font_set_spacing>` **(** :ref:`RID<class_RID>` font_rid, :ref:`int<class_int>` size, :ref:`SpacingType<enum_TextServer_SpacingType>` spacing, :ref:`int<class_int>` value **)** |virtual|                                                                                                               |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`_font_set_style<class_TextServerExtension_method__font_set_style>` **(** :ref:`RID<class_RID>` font_rid, :ref:`int<class_int>` style **)** |virtual|                                                                                                                                                                                                        |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`_font_set_style_name<class_TextServerExtension_method__font_set_style_name>` **(** :ref:`RID<class_RID>` font_rid, :ref:`String<class_String>` name_style **)** |virtual|                                                                                                                                                                                   |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`_font_set_texture_image<class_TextServerExtension_method__font_set_texture_image>` **(** :ref:`RID<class_RID>` font_rid, :ref:`Vector2i<class_Vector2i>` size, :ref:`int<class_int>` texture_index, :ref:`Image<class_Image>` image **)** |virtual|                                                                                                         |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`_font_set_texture_offsets<class_TextServerExtension_method__font_set_texture_offsets>` **(** :ref:`RID<class_RID>` font_rid, :ref:`Vector2i<class_Vector2i>` size, :ref:`int<class_int>` texture_index, :ref:`PackedInt32Array<class_PackedInt32Array>` offset **)** |virtual|                                                                              |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`_font_set_underline_position<class_TextServerExtension_method__font_set_underline_position>` **(** :ref:`RID<class_RID>` font_rid, :ref:`int<class_int>` size, :ref:`float<class_float>` underline_position **)** |virtual|                                                                                                                                 |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`_font_set_underline_thickness<class_TextServerExtension_method__font_set_underline_thickness>` **(** :ref:`RID<class_RID>` font_rid, :ref:`int<class_int>` size, :ref:`float<class_float>` underline_thickness **)** |virtual|                                                                                                                              |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`_font_set_variation_coordinates<class_TextServerExtension_method__font_set_variation_coordinates>` **(** :ref:`RID<class_RID>` font_rid, :ref:`Dictionary<class_Dictionary>` variation_coordinates **)** |virtual|                                                                                                                                          |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Dictionary<class_Dictionary>`                 | :ref:`_font_supported_feature_list<class_TextServerExtension_method__font_supported_feature_list>` **(** :ref:`RID<class_RID>` font_rid **)** |virtual| |const|                                                                                                                                                                                                   |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Dictionary<class_Dictionary>`                 | :ref:`_font_supported_variation_list<class_TextServerExtension_method__font_supported_variation_list>` **(** :ref:`RID<class_RID>` font_rid **)** |virtual| |const|                                                                                                                                                                                               |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_String>`                         | :ref:`_format_number<class_TextServerExtension_method__format_number>` **(** :ref:`String<class_String>` string, :ref:`String<class_String>` language **)** |virtual| |const|                                                                                                                                                                                     |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`_free<class_TextServerExtension_method__free>` **(** :ref:`RID<class_RID>` rid **)** |virtual|                                                                                                                                                                                                                                                              |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                               | :ref:`_get_features<class_TextServerExtension_method__get_features>` **(** **)** |virtual| |const|                                                                                                                                                                                                                                                                |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Vector2<class_Vector2>`                       | :ref:`_get_hex_code_box_size<class_TextServerExtension_method__get_hex_code_box_size>` **(** :ref:`int<class_int>` size, :ref:`int<class_int>` index **)** |virtual| |const|                                                                                                                                                                                      |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_String>`                         | :ref:`_get_name<class_TextServerExtension_method__get_name>` **(** **)** |virtual| |const|                                                                                                                                                                                                                                                                        |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_String>`                         | :ref:`_get_support_data_filename<class_TextServerExtension_method__get_support_data_filename>` **(** **)** |virtual| |const|                                                                                                                                                                                                                                      |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_String>`                         | :ref:`_get_support_data_info<class_TextServerExtension_method__get_support_data_info>` **(** **)** |virtual| |const|                                                                                                                                                                                                                                              |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                             | :ref:`_has<class_TextServerExtension_method__has>` **(** :ref:`RID<class_RID>` rid **)** |virtual|                                                                                                                                                                                                                                                                |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                             | :ref:`_has_feature<class_TextServerExtension_method__has_feature>` **(** :ref:`Feature<enum_TextServer_Feature>` feature **)** |virtual| |const|                                                                                                                                                                                                                  |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                             | :ref:`_is_locale_right_to_left<class_TextServerExtension_method__is_locale_right_to_left>` **(** :ref:`String<class_String>` locale **)** |virtual| |const|                                                                                                                                                                                                       |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                             | :ref:`_load_support_data<class_TextServerExtension_method__load_support_data>` **(** :ref:`String<class_String>` filename **)** |virtual|                                                                                                                                                                                                                         |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                               | :ref:`_name_to_tag<class_TextServerExtension_method__name_to_tag>` **(** :ref:`String<class_String>` name **)** |virtual| |const|                                                                                                                                                                                                                                 |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_String>`                         | :ref:`_parse_number<class_TextServerExtension_method__parse_number>` **(** :ref:`String<class_String>` string, :ref:`String<class_String>` language **)** |virtual| |const|                                                                                                                                                                                       |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_String>`                         | :ref:`_percent_sign<class_TextServerExtension_method__percent_sign>` **(** :ref:`String<class_String>` language **)** |virtual| |const|                                                                                                                                                                                                                           |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                             | :ref:`_save_support_data<class_TextServerExtension_method__save_support_data>` **(** :ref:`String<class_String>` filename **)** |virtual| |const|                                                                                                                                                                                                                 |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                             | :ref:`_shaped_text_add_object<class_TextServerExtension_method__shaped_text_add_object>` **(** :ref:`RID<class_RID>` shaped, :ref:`Variant<class_Variant>` key, :ref:`Vector2<class_Vector2>` size, :ref:`InlineAlignment<enum_@GlobalScope_InlineAlignment>` inline_align, :ref:`int<class_int>` length **)** |virtual|                                          |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                             | :ref:`_shaped_text_add_string<class_TextServerExtension_method__shaped_text_add_string>` **(** :ref:`RID<class_RID>` shaped, :ref:`String<class_String>` text, :ref:`Array<class_Array>` fonts, :ref:`int<class_int>` size, :ref:`Dictionary<class_Dictionary>` opentype_features, :ref:`String<class_String>` language **)** |virtual|                           |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`_shaped_text_clear<class_TextServerExtension_method__shaped_text_clear>` **(** :ref:`RID<class_RID>` shaped **)** |virtual|                                                                                                                                                                                                                                 |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`_shaped_text_draw<class_TextServerExtension_method__shaped_text_draw>` **(** :ref:`RID<class_RID>` shaped, :ref:`RID<class_RID>` canvas, :ref:`Vector2<class_Vector2>` pos, :ref:`float<class_float>` clip_l, :ref:`float<class_float>` clip_r, :ref:`Color<class_Color>` color **)** |virtual| |const|                                                     |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`_shaped_text_draw_outline<class_TextServerExtension_method__shaped_text_draw_outline>` **(** :ref:`RID<class_RID>` shaped, :ref:`RID<class_RID>` canvas, :ref:`Vector2<class_Vector2>` pos, :ref:`float<class_float>` clip_l, :ref:`float<class_float>` clip_r, :ref:`int<class_int>` outline_size, :ref:`Color<class_Color>` color **)** |virtual| |const| |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                           | :ref:`_shaped_text_fit_to_width<class_TextServerExtension_method__shaped_text_fit_to_width>` **(** :ref:`RID<class_RID>` shaped, :ref:`float<class_float>` width, :ref:`int<class_int>` jst_flags **)** |virtual|                                                                                                                                                 |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                           | :ref:`_shaped_text_get_ascent<class_TextServerExtension_method__shaped_text_get_ascent>` **(** :ref:`RID<class_RID>` shaped **)** |virtual| |const|                                                                                                                                                                                                               |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`_shaped_text_get_carets<class_TextServerExtension_method__shaped_text_get_carets>` **(** :ref:`RID<class_RID>` shaped, :ref:`int<class_int>` position, CaretInfo* caret **)** |virtual| |const|                                                                                                                                                             |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_String>`                         | :ref:`_shaped_text_get_custom_punctuation<class_TextServerExtension_method__shaped_text_get_custom_punctuation>` **(** :ref:`RID<class_RID>` shaped **)** |virtual| |const|                                                                                                                                                                                       |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                           | :ref:`_shaped_text_get_descent<class_TextServerExtension_method__shaped_text_get_descent>` **(** :ref:`RID<class_RID>` shaped **)** |virtual| |const|                                                                                                                                                                                                             |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                               | :ref:`_shaped_text_get_direction<class_TextServerExtension_method__shaped_text_get_direction>` **(** :ref:`RID<class_RID>` shaped **)** |virtual| |const|                                                                                                                                                                                                         |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                               | :ref:`_shaped_text_get_dominant_direction_in_range<class_TextServerExtension_method__shaped_text_get_dominant_direction_in_range>` **(** :ref:`RID<class_RID>` shaped, :ref:`int<class_int>` start, :ref:`int<class_int>` end **)** |virtual| |const|                                                                                                             |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                               | :ref:`_shaped_text_get_ellipsis_glyph_count<class_TextServerExtension_method__shaped_text_get_ellipsis_glyph_count>` **(** :ref:`RID<class_RID>` shaped **)** |virtual| |const|                                                                                                                                                                                   |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`_shaped_text_get_ellipsis_glyphs<class_TextServerExtension_method__shaped_text_get_ellipsis_glyphs>` **(** :ref:`RID<class_RID>` shaped, void* r_glyphs **)** |virtual| |const|                                                                                                                                                                             |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                               | :ref:`_shaped_text_get_ellipsis_pos<class_TextServerExtension_method__shaped_text_get_ellipsis_pos>` **(** :ref:`RID<class_RID>` shaped **)** |virtual| |const|                                                                                                                                                                                                   |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                               | :ref:`_shaped_text_get_glyph_count<class_TextServerExtension_method__shaped_text_get_glyph_count>` **(** :ref:`RID<class_RID>` shaped **)** |virtual| |const|                                                                                                                                                                                                     |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`_shaped_text_get_glyphs<class_TextServerExtension_method__shaped_text_get_glyphs>` **(** :ref:`RID<class_RID>` shaped, void* r_glyphs **)** |virtual| |const|                                                                                                                                                                                               |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Vector2<class_Vector2>`                       | :ref:`_shaped_text_get_grapheme_bounds<class_TextServerExtension_method__shaped_text_get_grapheme_bounds>` **(** :ref:`RID<class_RID>` shaped, :ref:`int<class_int>` pos **)** |virtual| |const|                                                                                                                                                                  |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                               | :ref:`_shaped_text_get_inferred_direction<class_TextServerExtension_method__shaped_text_get_inferred_direction>` **(** :ref:`RID<class_RID>` shaped **)** |virtual| |const|                                                                                                                                                                                       |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`PackedInt32Array<class_PackedInt32Array>`     | :ref:`_shaped_text_get_line_breaks<class_TextServerExtension_method__shaped_text_get_line_breaks>` **(** :ref:`RID<class_RID>` shaped, :ref:`float<class_float>` width, :ref:`int<class_int>` start, :ref:`int<class_int>` break_flags **)** |virtual| |const|                                                                                                    |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`PackedInt32Array<class_PackedInt32Array>`     | :ref:`_shaped_text_get_line_breaks_adv<class_TextServerExtension_method__shaped_text_get_line_breaks_adv>` **(** :ref:`RID<class_RID>` shaped, :ref:`PackedFloat32Array<class_PackedFloat32Array>` width, :ref:`int<class_int>` start, :ref:`bool<class_bool>` once, :ref:`int<class_int>` break_flags **)** |virtual| |const|                                    |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Rect2<class_Rect2>`                           | :ref:`_shaped_text_get_object_rect<class_TextServerExtension_method__shaped_text_get_object_rect>` **(** :ref:`RID<class_RID>` shaped, :ref:`Variant<class_Variant>` key **)** |virtual| |const|                                                                                                                                                                  |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Array<class_Array>`                           | :ref:`_shaped_text_get_objects<class_TextServerExtension_method__shaped_text_get_objects>` **(** :ref:`RID<class_RID>` shaped **)** |virtual| |const|                                                                                                                                                                                                             |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                               | :ref:`_shaped_text_get_orientation<class_TextServerExtension_method__shaped_text_get_orientation>` **(** :ref:`RID<class_RID>` shaped **)** |virtual| |const|                                                                                                                                                                                                     |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`RID<class_RID>`                               | :ref:`_shaped_text_get_parent<class_TextServerExtension_method__shaped_text_get_parent>` **(** :ref:`RID<class_RID>` shaped **)** |virtual| |const|                                                                                                                                                                                                               |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                             | :ref:`_shaped_text_get_preserve_control<class_TextServerExtension_method__shaped_text_get_preserve_control>` **(** :ref:`RID<class_RID>` shaped **)** |virtual| |const|                                                                                                                                                                                           |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                             | :ref:`_shaped_text_get_preserve_invalid<class_TextServerExtension_method__shaped_text_get_preserve_invalid>` **(** :ref:`RID<class_RID>` shaped **)** |virtual| |const|                                                                                                                                                                                           |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Vector2i<class_Vector2i>`                     | :ref:`_shaped_text_get_range<class_TextServerExtension_method__shaped_text_get_range>` **(** :ref:`RID<class_RID>` shaped **)** |virtual| |const|                                                                                                                                                                                                                 |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`PackedVector2Array<class_PackedVector2Array>` | :ref:`_shaped_text_get_selection<class_TextServerExtension_method__shaped_text_get_selection>` **(** :ref:`RID<class_RID>` shaped, :ref:`int<class_int>` start, :ref:`int<class_int>` end **)** |virtual| |const|                                                                                                                                                 |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Vector2<class_Vector2>`                       | :ref:`_shaped_text_get_size<class_TextServerExtension_method__shaped_text_get_size>` **(** :ref:`RID<class_RID>` shaped **)** |virtual| |const|                                                                                                                                                                                                                   |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                               | :ref:`_shaped_text_get_trim_pos<class_TextServerExtension_method__shaped_text_get_trim_pos>` **(** :ref:`RID<class_RID>` shaped **)** |virtual| |const|                                                                                                                                                                                                           |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                           | :ref:`_shaped_text_get_underline_position<class_TextServerExtension_method__shaped_text_get_underline_position>` **(** :ref:`RID<class_RID>` shaped **)** |virtual| |const|                                                                                                                                                                                       |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                           | :ref:`_shaped_text_get_underline_thickness<class_TextServerExtension_method__shaped_text_get_underline_thickness>` **(** :ref:`RID<class_RID>` shaped **)** |virtual| |const|                                                                                                                                                                                     |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                           | :ref:`_shaped_text_get_width<class_TextServerExtension_method__shaped_text_get_width>` **(** :ref:`RID<class_RID>` shaped **)** |virtual| |const|                                                                                                                                                                                                                 |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`PackedInt32Array<class_PackedInt32Array>`     | :ref:`_shaped_text_get_word_breaks<class_TextServerExtension_method__shaped_text_get_word_breaks>` **(** :ref:`RID<class_RID>` shaped, :ref:`int<class_int>` grapheme_flags **)** |virtual| |const|                                                                                                                                                               |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                               | :ref:`_shaped_text_hit_test_grapheme<class_TextServerExtension_method__shaped_text_hit_test_grapheme>` **(** :ref:`RID<class_RID>` shaped, :ref:`float<class_float>` coord **)** |virtual| |const|                                                                                                                                                                |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                               | :ref:`_shaped_text_hit_test_position<class_TextServerExtension_method__shaped_text_hit_test_position>` **(** :ref:`RID<class_RID>` shaped, :ref:`float<class_float>` coord **)** |virtual| |const|                                                                                                                                                                |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                             | :ref:`_shaped_text_is_ready<class_TextServerExtension_method__shaped_text_is_ready>` **(** :ref:`RID<class_RID>` shaped **)** |virtual| |const|                                                                                                                                                                                                                   |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                               | :ref:`_shaped_text_next_grapheme_pos<class_TextServerExtension_method__shaped_text_next_grapheme_pos>` **(** :ref:`RID<class_RID>` shaped, :ref:`int<class_int>` pos **)** |virtual| |const|                                                                                                                                                                      |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`_shaped_text_overrun_trim_to_width<class_TextServerExtension_method__shaped_text_overrun_trim_to_width>` **(** :ref:`RID<class_RID>` shaped, :ref:`float<class_float>` width, :ref:`int<class_int>` trim_flags **)** |virtual|                                                                                                                              |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                               | :ref:`_shaped_text_prev_grapheme_pos<class_TextServerExtension_method__shaped_text_prev_grapheme_pos>` **(** :ref:`RID<class_RID>` shaped, :ref:`int<class_int>` pos **)** |virtual| |const|                                                                                                                                                                      |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                             | :ref:`_shaped_text_resize_object<class_TextServerExtension_method__shaped_text_resize_object>` **(** :ref:`RID<class_RID>` shaped, :ref:`Variant<class_Variant>` key, :ref:`Vector2<class_Vector2>` size, :ref:`InlineAlignment<enum_@GlobalScope_InlineAlignment>` inline_align **)** |virtual|                                                                  |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`_shaped_text_set_bidi_override<class_TextServerExtension_method__shaped_text_set_bidi_override>` **(** :ref:`RID<class_RID>` shaped, :ref:`Array<class_Array>` override **)** |virtual|                                                                                                                                                                     |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`_shaped_text_set_custom_punctuation<class_TextServerExtension_method__shaped_text_set_custom_punctuation>` **(** :ref:`RID<class_RID>` shaped, :ref:`String<class_String>` punct **)** |virtual|                                                                                                                                                            |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`_shaped_text_set_direction<class_TextServerExtension_method__shaped_text_set_direction>` **(** :ref:`RID<class_RID>` shaped, :ref:`Direction<enum_TextServer_Direction>` direction **)** |virtual|                                                                                                                                                          |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`_shaped_text_set_orientation<class_TextServerExtension_method__shaped_text_set_orientation>` **(** :ref:`RID<class_RID>` shaped, :ref:`Orientation<enum_TextServer_Orientation>` orientation **)** |virtual|                                                                                                                                                |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`_shaped_text_set_preserve_control<class_TextServerExtension_method__shaped_text_set_preserve_control>` **(** :ref:`RID<class_RID>` shaped, :ref:`bool<class_bool>` enabled **)** |virtual|                                                                                                                                                                  |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`_shaped_text_set_preserve_invalid<class_TextServerExtension_method__shaped_text_set_preserve_invalid>` **(** :ref:`RID<class_RID>` shaped, :ref:`bool<class_bool>` enabled **)** |virtual|                                                                                                                                                                  |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                             | :ref:`_shaped_text_shape<class_TextServerExtension_method__shaped_text_shape>` **(** :ref:`RID<class_RID>` shaped **)** |virtual|                                                                                                                                                                                                                                 |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`_shaped_text_sort_logical<class_TextServerExtension_method__shaped_text_sort_logical>` **(** :ref:`RID<class_RID>` shaped, void* r_glyphs **)** |virtual|                                                                                                                                                                                                   |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`RID<class_RID>`                               | :ref:`_shaped_text_substr<class_TextServerExtension_method__shaped_text_substr>` **(** :ref:`RID<class_RID>` shaped, :ref:`int<class_int>` start, :ref:`int<class_int>` length **)** |virtual| |const|                                                                                                                                                            |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                           | :ref:`_shaped_text_tab_align<class_TextServerExtension_method__shaped_text_tab_align>` **(** :ref:`RID<class_RID>` shaped, :ref:`PackedFloat32Array<class_PackedFloat32Array>` tab_stops **)** |virtual|                                                                                                                                                          |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                             | :ref:`_shaped_text_update_breaks<class_TextServerExtension_method__shaped_text_update_breaks>` **(** :ref:`RID<class_RID>` shaped **)** |virtual|                                                                                                                                                                                                                 |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                             | :ref:`_shaped_text_update_justification_ops<class_TextServerExtension_method__shaped_text_update_justification_ops>` **(** :ref:`RID<class_RID>` shaped **)** |virtual|                                                                                                                                                                                           |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_String>`                         | :ref:`_string_to_lower<class_TextServerExtension_method__string_to_lower>` **(** :ref:`String<class_String>` string, :ref:`String<class_String>` language **)** |virtual| |const|                                                                                                                                                                                 |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_String>`                         | :ref:`_string_to_upper<class_TextServerExtension_method__string_to_upper>` **(** :ref:`String<class_String>` string, :ref:`String<class_String>` language **)** |virtual| |const|                                                                                                                                                                                 |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_String>`                         | :ref:`_tag_to_name<class_TextServerExtension_method__tag_to_name>` **(** :ref:`int<class_int>` tag **)** |virtual| |const|                                                                                                                                                                                                                                        |
-+-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`RID<class_RID>`                                           | :ref:`_create_font<class_TextServerExtension_method__create_font>` **(** **)** |virtual|                                                                                                                                                                                                                                                                                    |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`RID<class_RID>`                                           | :ref:`_create_shaped_text<class_TextServerExtension_method__create_shaped_text>` **(** :ref:`Direction<enum_TextServer_Direction>` direction, :ref:`Orientation<enum_TextServer_Orientation>` orientation **)** |virtual|                                                                                                                                                   |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`_draw_hex_code_box<class_TextServerExtension_method__draw_hex_code_box>` **(** :ref:`RID<class_RID>` canvas, :ref:`int<class_int>` size, :ref:`Vector2<class_Vector2>` pos, :ref:`int<class_int>` index, :ref:`Color<class_Color>` color **)** |virtual| |const|                                                                                                      |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`_font_clear_glyphs<class_TextServerExtension_method__font_clear_glyphs>` **(** :ref:`RID<class_RID>` font_rid, :ref:`Vector2i<class_Vector2i>` size **)** |virtual|                                                                                                                                                                                                   |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`_font_clear_kerning_map<class_TextServerExtension_method__font_clear_kerning_map>` **(** :ref:`RID<class_RID>` font_rid, :ref:`int<class_int>` size **)** |virtual|                                                                                                                                                                                                   |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`_font_clear_size_cache<class_TextServerExtension_method__font_clear_size_cache>` **(** :ref:`RID<class_RID>` font_rid **)** |virtual|                                                                                                                                                                                                                                 |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`_font_clear_textures<class_TextServerExtension_method__font_clear_textures>` **(** :ref:`RID<class_RID>` font_rid, :ref:`Vector2i<class_Vector2i>` size **)** |virtual|                                                                                                                                                                                               |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`_font_draw_glyph<class_TextServerExtension_method__font_draw_glyph>` **(** :ref:`RID<class_RID>` font_rid, :ref:`RID<class_RID>` canvas, :ref:`int<class_int>` size, :ref:`Vector2<class_Vector2>` pos, :ref:`int<class_int>` index, :ref:`Color<class_Color>` color **)** |virtual| |const|                                                                          |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`_font_draw_glyph_outline<class_TextServerExtension_method__font_draw_glyph_outline>` **(** :ref:`RID<class_RID>` font_rid, :ref:`RID<class_RID>` canvas, :ref:`int<class_int>` size, :ref:`int<class_int>` outline_size, :ref:`Vector2<class_Vector2>` pos, :ref:`int<class_int>` index, :ref:`Color<class_Color>` color **)** |virtual| |const|                      |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                                       | :ref:`_font_get_ascent<class_TextServerExtension_method__font_get_ascent>` **(** :ref:`RID<class_RID>` font_rid, :ref:`int<class_int>` size **)** |virtual| |const|                                                                                                                                                                                                         |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                                       | :ref:`_font_get_descent<class_TextServerExtension_method__font_get_descent>` **(** :ref:`RID<class_RID>` font_rid, :ref:`int<class_int>` size **)** |virtual| |const|                                                                                                                                                                                                       |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                                           | :ref:`_font_get_fixed_size<class_TextServerExtension_method__font_get_fixed_size>` **(** :ref:`RID<class_RID>` font_rid **)** |virtual| |const|                                                                                                                                                                                                                             |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                                       | :ref:`_font_get_global_oversampling<class_TextServerExtension_method__font_get_global_oversampling>` **(** **)** |virtual| |const|                                                                                                                                                                                                                                          |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Vector2<class_Vector2>`                                   | :ref:`_font_get_glyph_advance<class_TextServerExtension_method__font_get_glyph_advance>` **(** :ref:`RID<class_RID>` font_rid, :ref:`int<class_int>` size, :ref:`int<class_int>` glyph **)** |virtual| |const|                                                                                                                                                              |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Dictionary<class_Dictionary>`                             | :ref:`_font_get_glyph_contours<class_TextServerExtension_method__font_get_glyph_contours>` **(** :ref:`RID<class_RID>` font_rid, :ref:`int<class_int>` size, :ref:`int<class_int>` index **)** |virtual| |const|                                                                                                                                                            |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                                           | :ref:`_font_get_glyph_index<class_TextServerExtension_method__font_get_glyph_index>` **(** :ref:`RID<class_RID>` font_rid, :ref:`int<class_int>` size, :ref:`int<class_int>` char, :ref:`int<class_int>` variation_selector **)** |virtual| |const|                                                                                                                         |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Array<class_Array>`                                       | :ref:`_font_get_glyph_list<class_TextServerExtension_method__font_get_glyph_list>` **(** :ref:`RID<class_RID>` font_rid, :ref:`Vector2i<class_Vector2i>` size **)** |virtual| |const|                                                                                                                                                                                       |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Vector2<class_Vector2>`                                   | :ref:`_font_get_glyph_offset<class_TextServerExtension_method__font_get_glyph_offset>` **(** :ref:`RID<class_RID>` font_rid, :ref:`Vector2i<class_Vector2i>` size, :ref:`int<class_int>` glyph **)** |virtual| |const|                                                                                                                                                      |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Vector2<class_Vector2>`                                   | :ref:`_font_get_glyph_size<class_TextServerExtension_method__font_get_glyph_size>` **(** :ref:`RID<class_RID>` font_rid, :ref:`Vector2i<class_Vector2i>` size, :ref:`int<class_int>` glyph **)** |virtual| |const|                                                                                                                                                          |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                                           | :ref:`_font_get_glyph_texture_idx<class_TextServerExtension_method__font_get_glyph_texture_idx>` **(** :ref:`RID<class_RID>` font_rid, :ref:`Vector2i<class_Vector2i>` size, :ref:`int<class_int>` glyph **)** |virtual| |const|                                                                                                                                            |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Rect2<class_Rect2>`                                       | :ref:`_font_get_glyph_uv_rect<class_TextServerExtension_method__font_get_glyph_uv_rect>` **(** :ref:`RID<class_RID>` font_rid, :ref:`Vector2i<class_Vector2i>` size, :ref:`int<class_int>` glyph **)** |virtual| |const|                                                                                                                                                    |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Hinting<enum_TextServer_Hinting>`                         | :ref:`_font_get_hinting<class_TextServerExtension_method__font_get_hinting>` **(** :ref:`RID<class_RID>` font_rid **)** |virtual| |const|                                                                                                                                                                                                                                   |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Vector2<class_Vector2>`                                   | :ref:`_font_get_kerning<class_TextServerExtension_method__font_get_kerning>` **(** :ref:`RID<class_RID>` font_rid, :ref:`int<class_int>` size, :ref:`Vector2i<class_Vector2i>` glyph_pair **)** |virtual| |const|                                                                                                                                                           |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Array<class_Array>`                                       | :ref:`_font_get_kerning_list<class_TextServerExtension_method__font_get_kerning_list>` **(** :ref:`RID<class_RID>` font_rid, :ref:`int<class_int>` size **)** |virtual| |const|                                                                                                                                                                                             |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                                         | :ref:`_font_get_language_support_override<class_TextServerExtension_method__font_get_language_support_override>` **(** :ref:`RID<class_RID>` font_rid, :ref:`String<class_String>` language **)** |virtual|                                                                                                                                                                 |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`PackedStringArray<class_PackedStringArray>`               | :ref:`_font_get_language_support_overrides<class_TextServerExtension_method__font_get_language_support_overrides>` **(** :ref:`RID<class_RID>` font_rid **)** |virtual|                                                                                                                                                                                                     |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                                           | :ref:`_font_get_msdf_pixel_range<class_TextServerExtension_method__font_get_msdf_pixel_range>` **(** :ref:`RID<class_RID>` font_rid **)** |virtual| |const|                                                                                                                                                                                                                 |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                                           | :ref:`_font_get_msdf_size<class_TextServerExtension_method__font_get_msdf_size>` **(** :ref:`RID<class_RID>` font_rid **)** |virtual| |const|                                                                                                                                                                                                                               |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`                                     | :ref:`_font_get_name<class_TextServerExtension_method__font_get_name>` **(** :ref:`RID<class_RID>` font_rid **)** |virtual| |const|                                                                                                                                                                                                                                         |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Dictionary<class_Dictionary>`                             | :ref:`_font_get_opentype_feature_overrides<class_TextServerExtension_method__font_get_opentype_feature_overrides>` **(** :ref:`RID<class_RID>` font_rid **)** |virtual| |const|                                                                                                                                                                                             |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                                       | :ref:`_font_get_oversampling<class_TextServerExtension_method__font_get_oversampling>` **(** :ref:`RID<class_RID>` font_rid **)** |virtual| |const|                                                                                                                                                                                                                         |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                                       | :ref:`_font_get_scale<class_TextServerExtension_method__font_get_scale>` **(** :ref:`RID<class_RID>` font_rid, :ref:`int<class_int>` size **)** |virtual| |const|                                                                                                                                                                                                           |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                                         | :ref:`_font_get_script_support_override<class_TextServerExtension_method__font_get_script_support_override>` **(** :ref:`RID<class_RID>` font_rid, :ref:`String<class_String>` script **)** |virtual|                                                                                                                                                                       |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`PackedStringArray<class_PackedStringArray>`               | :ref:`_font_get_script_support_overrides<class_TextServerExtension_method__font_get_script_support_overrides>` **(** :ref:`RID<class_RID>` font_rid **)** |virtual|                                                                                                                                                                                                         |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Array<class_Array>`                                       | :ref:`_font_get_size_cache_list<class_TextServerExtension_method__font_get_size_cache_list>` **(** :ref:`RID<class_RID>` font_rid **)** |virtual| |const|                                                                                                                                                                                                                   |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                                           | :ref:`_font_get_spacing<class_TextServerExtension_method__font_get_spacing>` **(** :ref:`RID<class_RID>` font_rid, :ref:`int<class_int>` size, :ref:`SpacingType<enum_TextServer_SpacingType>` spacing **)** |virtual| |const|                                                                                                                                              |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                                           | :ref:`_font_get_style<class_TextServerExtension_method__font_get_style>` **(** :ref:`RID<class_RID>` font_rid **)** |virtual| |const|                                                                                                                                                                                                                                       |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`                                     | :ref:`_font_get_style_name<class_TextServerExtension_method__font_get_style_name>` **(** :ref:`RID<class_RID>` font_rid **)** |virtual| |const|                                                                                                                                                                                                                             |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`SubpixelPositioning<enum_TextServer_SubpixelPositioning>` | :ref:`_font_get_subpixel_positioning<class_TextServerExtension_method__font_get_subpixel_positioning>` **(** :ref:`RID<class_RID>` font_rid **)** |virtual| |const|                                                                                                                                                                                                         |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`                                     | :ref:`_font_get_supported_chars<class_TextServerExtension_method__font_get_supported_chars>` **(** :ref:`RID<class_RID>` font_rid **)** |virtual| |const|                                                                                                                                                                                                                   |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                                           | :ref:`_font_get_texture_count<class_TextServerExtension_method__font_get_texture_count>` **(** :ref:`RID<class_RID>` font_rid, :ref:`Vector2i<class_Vector2i>` size **)** |virtual| |const|                                                                                                                                                                                 |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Image<class_Image>`                                       | :ref:`_font_get_texture_image<class_TextServerExtension_method__font_get_texture_image>` **(** :ref:`RID<class_RID>` font_rid, :ref:`Vector2i<class_Vector2i>` size, :ref:`int<class_int>` texture_index **)** |virtual| |const|                                                                                                                                            |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`PackedInt32Array<class_PackedInt32Array>`                 | :ref:`_font_get_texture_offsets<class_TextServerExtension_method__font_get_texture_offsets>` **(** :ref:`RID<class_RID>` font_rid, :ref:`Vector2i<class_Vector2i>` size, :ref:`int<class_int>` texture_index **)** |virtual| |const|                                                                                                                                        |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                                       | :ref:`_font_get_underline_position<class_TextServerExtension_method__font_get_underline_position>` **(** :ref:`RID<class_RID>` font_rid, :ref:`int<class_int>` size **)** |virtual| |const|                                                                                                                                                                                 |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                                       | :ref:`_font_get_underline_thickness<class_TextServerExtension_method__font_get_underline_thickness>` **(** :ref:`RID<class_RID>` font_rid, :ref:`int<class_int>` size **)** |virtual| |const|                                                                                                                                                                               |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Dictionary<class_Dictionary>`                             | :ref:`_font_get_variation_coordinates<class_TextServerExtension_method__font_get_variation_coordinates>` **(** :ref:`RID<class_RID>` font_rid **)** |virtual| |const|                                                                                                                                                                                                       |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                                         | :ref:`_font_has_char<class_TextServerExtension_method__font_has_char>` **(** :ref:`RID<class_RID>` font_rid, :ref:`int<class_int>` char **)** |virtual| |const|                                                                                                                                                                                                             |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                                         | :ref:`_font_is_antialiased<class_TextServerExtension_method__font_is_antialiased>` **(** :ref:`RID<class_RID>` font_rid **)** |virtual| |const|                                                                                                                                                                                                                             |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                                         | :ref:`_font_is_force_autohinter<class_TextServerExtension_method__font_is_force_autohinter>` **(** :ref:`RID<class_RID>` font_rid **)** |virtual| |const|                                                                                                                                                                                                                   |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                                         | :ref:`_font_is_language_supported<class_TextServerExtension_method__font_is_language_supported>` **(** :ref:`RID<class_RID>` font_rid, :ref:`String<class_String>` language **)** |virtual| |const|                                                                                                                                                                         |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                                         | :ref:`_font_is_multichannel_signed_distance_field<class_TextServerExtension_method__font_is_multichannel_signed_distance_field>` **(** :ref:`RID<class_RID>` font_rid **)** |virtual| |const|                                                                                                                                                                               |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                                         | :ref:`_font_is_script_supported<class_TextServerExtension_method__font_is_script_supported>` **(** :ref:`RID<class_RID>` font_rid, :ref:`String<class_String>` script **)** |virtual| |const|                                                                                                                                                                               |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`_font_remove_glyph<class_TextServerExtension_method__font_remove_glyph>` **(** :ref:`RID<class_RID>` font_rid, :ref:`Vector2i<class_Vector2i>` size, :ref:`int<class_int>` glyph **)** |virtual|                                                                                                                                                                      |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`_font_remove_kerning<class_TextServerExtension_method__font_remove_kerning>` **(** :ref:`RID<class_RID>` font_rid, :ref:`int<class_int>` size, :ref:`Vector2i<class_Vector2i>` glyph_pair **)** |virtual|                                                                                                                                                             |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`_font_remove_language_support_override<class_TextServerExtension_method__font_remove_language_support_override>` **(** :ref:`RID<class_RID>` font_rid, :ref:`String<class_String>` language **)** |virtual|                                                                                                                                                           |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`_font_remove_script_support_override<class_TextServerExtension_method__font_remove_script_support_override>` **(** :ref:`RID<class_RID>` font_rid, :ref:`String<class_String>` script **)** |virtual|                                                                                                                                                                 |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`_font_remove_size_cache<class_TextServerExtension_method__font_remove_size_cache>` **(** :ref:`RID<class_RID>` font_rid, :ref:`Vector2i<class_Vector2i>` size **)** |virtual|                                                                                                                                                                                         |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`_font_remove_texture<class_TextServerExtension_method__font_remove_texture>` **(** :ref:`RID<class_RID>` font_rid, :ref:`Vector2i<class_Vector2i>` size, :ref:`int<class_int>` texture_index **)** |virtual|                                                                                                                                                          |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`_font_render_glyph<class_TextServerExtension_method__font_render_glyph>` **(** :ref:`RID<class_RID>` font_rid, :ref:`Vector2i<class_Vector2i>` size, :ref:`int<class_int>` index **)** |virtual|                                                                                                                                                                      |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`_font_render_range<class_TextServerExtension_method__font_render_range>` **(** :ref:`RID<class_RID>` font_rid, :ref:`Vector2i<class_Vector2i>` size, :ref:`int<class_int>` start, :ref:`int<class_int>` end **)** |virtual|                                                                                                                                           |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`_font_set_antialiased<class_TextServerExtension_method__font_set_antialiased>` **(** :ref:`RID<class_RID>` font_rid, :ref:`bool<class_bool>` antialiased **)** |virtual|                                                                                                                                                                                              |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`_font_set_ascent<class_TextServerExtension_method__font_set_ascent>` **(** :ref:`RID<class_RID>` font_rid, :ref:`int<class_int>` size, :ref:`float<class_float>` ascent **)** |virtual|                                                                                                                                                                               |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`_font_set_data<class_TextServerExtension_method__font_set_data>` **(** :ref:`RID<class_RID>` font_rid, :ref:`PackedByteArray<class_PackedByteArray>` data **)** |virtual|                                                                                                                                                                                             |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`_font_set_data_ptr<class_TextServerExtension_method__font_set_data_ptr>` **(** :ref:`RID<class_RID>` font_rid, const uint8_t* data_ptr, :ref:`int<class_int>` data_size **)** |virtual|                                                                                                                                                                               |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`_font_set_descent<class_TextServerExtension_method__font_set_descent>` **(** :ref:`RID<class_RID>` font_rid, :ref:`int<class_int>` size, :ref:`float<class_float>` descent **)** |virtual|                                                                                                                                                                            |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`_font_set_fixed_size<class_TextServerExtension_method__font_set_fixed_size>` **(** :ref:`RID<class_RID>` font_rid, :ref:`int<class_int>` fixed_size **)** |virtual|                                                                                                                                                                                                   |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`_font_set_force_autohinter<class_TextServerExtension_method__font_set_force_autohinter>` **(** :ref:`RID<class_RID>` font_rid, :ref:`bool<class_bool>` force_autohinter **)** |virtual|                                                                                                                                                                               |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`_font_set_global_oversampling<class_TextServerExtension_method__font_set_global_oversampling>` **(** :ref:`float<class_float>` oversampling **)** |virtual|                                                                                                                                                                                                           |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`_font_set_glyph_advance<class_TextServerExtension_method__font_set_glyph_advance>` **(** :ref:`RID<class_RID>` font_rid, :ref:`int<class_int>` size, :ref:`int<class_int>` glyph, :ref:`Vector2<class_Vector2>` advance **)** |virtual|                                                                                                                               |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`_font_set_glyph_offset<class_TextServerExtension_method__font_set_glyph_offset>` **(** :ref:`RID<class_RID>` font_rid, :ref:`Vector2i<class_Vector2i>` size, :ref:`int<class_int>` glyph, :ref:`Vector2<class_Vector2>` offset **)** |virtual|                                                                                                                        |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`_font_set_glyph_size<class_TextServerExtension_method__font_set_glyph_size>` **(** :ref:`RID<class_RID>` font_rid, :ref:`Vector2i<class_Vector2i>` size, :ref:`int<class_int>` glyph, :ref:`Vector2<class_Vector2>` gl_size **)** |virtual|                                                                                                                           |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`_font_set_glyph_texture_idx<class_TextServerExtension_method__font_set_glyph_texture_idx>` **(** :ref:`RID<class_RID>` font_rid, :ref:`Vector2i<class_Vector2i>` size, :ref:`int<class_int>` glyph, :ref:`int<class_int>` texture_idx **)** |virtual|                                                                                                                 |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`_font_set_glyph_uv_rect<class_TextServerExtension_method__font_set_glyph_uv_rect>` **(** :ref:`RID<class_RID>` font_rid, :ref:`Vector2i<class_Vector2i>` size, :ref:`int<class_int>` glyph, :ref:`Rect2<class_Rect2>` uv_rect **)** |virtual|                                                                                                                         |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`_font_set_hinting<class_TextServerExtension_method__font_set_hinting>` **(** :ref:`RID<class_RID>` font_rid, :ref:`Hinting<enum_TextServer_Hinting>` hinting **)** |virtual|                                                                                                                                                                                          |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`_font_set_kerning<class_TextServerExtension_method__font_set_kerning>` **(** :ref:`RID<class_RID>` font_rid, :ref:`int<class_int>` size, :ref:`Vector2i<class_Vector2i>` glyph_pair, :ref:`Vector2<class_Vector2>` kerning **)** |virtual|                                                                                                                            |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`_font_set_language_support_override<class_TextServerExtension_method__font_set_language_support_override>` **(** :ref:`RID<class_RID>` font_rid, :ref:`String<class_String>` language, :ref:`bool<class_bool>` supported **)** |virtual|                                                                                                                              |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`_font_set_msdf_pixel_range<class_TextServerExtension_method__font_set_msdf_pixel_range>` **(** :ref:`RID<class_RID>` font_rid, :ref:`int<class_int>` msdf_pixel_range **)** |virtual|                                                                                                                                                                                 |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`_font_set_msdf_size<class_TextServerExtension_method__font_set_msdf_size>` **(** :ref:`RID<class_RID>` font_rid, :ref:`int<class_int>` msdf_size **)** |virtual|                                                                                                                                                                                                      |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`_font_set_multichannel_signed_distance_field<class_TextServerExtension_method__font_set_multichannel_signed_distance_field>` **(** :ref:`RID<class_RID>` font_rid, :ref:`bool<class_bool>` msdf **)** |virtual|                                                                                                                                                       |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`_font_set_name<class_TextServerExtension_method__font_set_name>` **(** :ref:`RID<class_RID>` font_rid, :ref:`String<class_String>` name **)** |virtual|                                                                                                                                                                                                               |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`_font_set_opentype_feature_overrides<class_TextServerExtension_method__font_set_opentype_feature_overrides>` **(** :ref:`RID<class_RID>` font_rid, :ref:`Dictionary<class_Dictionary>` overrides **)** |virtual|                                                                                                                                                      |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`_font_set_oversampling<class_TextServerExtension_method__font_set_oversampling>` **(** :ref:`RID<class_RID>` font_rid, :ref:`float<class_float>` oversampling **)** |virtual|                                                                                                                                                                                         |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`_font_set_scale<class_TextServerExtension_method__font_set_scale>` **(** :ref:`RID<class_RID>` font_rid, :ref:`int<class_int>` size, :ref:`float<class_float>` scale **)** |virtual|                                                                                                                                                                                  |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`_font_set_script_support_override<class_TextServerExtension_method__font_set_script_support_override>` **(** :ref:`RID<class_RID>` font_rid, :ref:`String<class_String>` script, :ref:`bool<class_bool>` supported **)** |virtual|                                                                                                                                    |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`_font_set_spacing<class_TextServerExtension_method__font_set_spacing>` **(** :ref:`RID<class_RID>` font_rid, :ref:`int<class_int>` size, :ref:`SpacingType<enum_TextServer_SpacingType>` spacing, :ref:`int<class_int>` value **)** |virtual|                                                                                                                         |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`_font_set_style<class_TextServerExtension_method__font_set_style>` **(** :ref:`RID<class_RID>` font_rid, :ref:`int<class_int>` style **)** |virtual|                                                                                                                                                                                                                  |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`_font_set_style_name<class_TextServerExtension_method__font_set_style_name>` **(** :ref:`RID<class_RID>` font_rid, :ref:`String<class_String>` name_style **)** |virtual|                                                                                                                                                                                             |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`_font_set_subpixel_positioning<class_TextServerExtension_method__font_set_subpixel_positioning>` **(** :ref:`RID<class_RID>` font_rid, :ref:`SubpixelPositioning<enum_TextServer_SubpixelPositioning>` subpixel_positioning **)** |virtual|                                                                                                                           |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`_font_set_texture_image<class_TextServerExtension_method__font_set_texture_image>` **(** :ref:`RID<class_RID>` font_rid, :ref:`Vector2i<class_Vector2i>` size, :ref:`int<class_int>` texture_index, :ref:`Image<class_Image>` image **)** |virtual|                                                                                                                   |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`_font_set_texture_offsets<class_TextServerExtension_method__font_set_texture_offsets>` **(** :ref:`RID<class_RID>` font_rid, :ref:`Vector2i<class_Vector2i>` size, :ref:`int<class_int>` texture_index, :ref:`PackedInt32Array<class_PackedInt32Array>` offset **)** |virtual|                                                                                        |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`_font_set_underline_position<class_TextServerExtension_method__font_set_underline_position>` **(** :ref:`RID<class_RID>` font_rid, :ref:`int<class_int>` size, :ref:`float<class_float>` underline_position **)** |virtual|                                                                                                                                           |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`_font_set_underline_thickness<class_TextServerExtension_method__font_set_underline_thickness>` **(** :ref:`RID<class_RID>` font_rid, :ref:`int<class_int>` size, :ref:`float<class_float>` underline_thickness **)** |virtual|                                                                                                                                        |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`_font_set_variation_coordinates<class_TextServerExtension_method__font_set_variation_coordinates>` **(** :ref:`RID<class_RID>` font_rid, :ref:`Dictionary<class_Dictionary>` variation_coordinates **)** |virtual|                                                                                                                                                    |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Dictionary<class_Dictionary>`                             | :ref:`_font_supported_feature_list<class_TextServerExtension_method__font_supported_feature_list>` **(** :ref:`RID<class_RID>` font_rid **)** |virtual| |const|                                                                                                                                                                                                             |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Dictionary<class_Dictionary>`                             | :ref:`_font_supported_variation_list<class_TextServerExtension_method__font_supported_variation_list>` **(** :ref:`RID<class_RID>` font_rid **)** |virtual| |const|                                                                                                                                                                                                         |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`                                     | :ref:`_format_number<class_TextServerExtension_method__format_number>` **(** :ref:`String<class_String>` string, :ref:`String<class_String>` language **)** |virtual| |const|                                                                                                                                                                                               |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`_free<class_TextServerExtension_method__free>` **(** :ref:`RID<class_RID>` rid **)** |virtual|                                                                                                                                                                                                                                                                        |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                                           | :ref:`_get_features<class_TextServerExtension_method__get_features>` **(** **)** |virtual| |const|                                                                                                                                                                                                                                                                          |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Vector2<class_Vector2>`                                   | :ref:`_get_hex_code_box_size<class_TextServerExtension_method__get_hex_code_box_size>` **(** :ref:`int<class_int>` size, :ref:`int<class_int>` index **)** |virtual| |const|                                                                                                                                                                                                |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`                                     | :ref:`_get_name<class_TextServerExtension_method__get_name>` **(** **)** |virtual| |const|                                                                                                                                                                                                                                                                                  |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`                                     | :ref:`_get_support_data_filename<class_TextServerExtension_method__get_support_data_filename>` **(** **)** |virtual| |const|                                                                                                                                                                                                                                                |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`                                     | :ref:`_get_support_data_info<class_TextServerExtension_method__get_support_data_info>` **(** **)** |virtual| |const|                                                                                                                                                                                                                                                        |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                                         | :ref:`_has<class_TextServerExtension_method__has>` **(** :ref:`RID<class_RID>` rid **)** |virtual|                                                                                                                                                                                                                                                                          |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                                         | :ref:`_has_feature<class_TextServerExtension_method__has_feature>` **(** :ref:`Feature<enum_TextServer_Feature>` feature **)** |virtual| |const|                                                                                                                                                                                                                            |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                                         | :ref:`_is_locale_right_to_left<class_TextServerExtension_method__is_locale_right_to_left>` **(** :ref:`String<class_String>` locale **)** |virtual| |const|                                                                                                                                                                                                                 |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                                         | :ref:`_load_support_data<class_TextServerExtension_method__load_support_data>` **(** :ref:`String<class_String>` filename **)** |virtual|                                                                                                                                                                                                                                   |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                                           | :ref:`_name_to_tag<class_TextServerExtension_method__name_to_tag>` **(** :ref:`String<class_String>` name **)** |virtual| |const|                                                                                                                                                                                                                                           |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`                                     | :ref:`_parse_number<class_TextServerExtension_method__parse_number>` **(** :ref:`String<class_String>` string, :ref:`String<class_String>` language **)** |virtual| |const|                                                                                                                                                                                                 |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`                                     | :ref:`_percent_sign<class_TextServerExtension_method__percent_sign>` **(** :ref:`String<class_String>` language **)** |virtual| |const|                                                                                                                                                                                                                                     |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                                         | :ref:`_save_support_data<class_TextServerExtension_method__save_support_data>` **(** :ref:`String<class_String>` filename **)** |virtual| |const|                                                                                                                                                                                                                           |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                                           | :ref:`_shaped_get_span_count<class_TextServerExtension_method__shaped_get_span_count>` **(** :ref:`RID<class_RID>` shaped **)** |virtual| |const|                                                                                                                                                                                                                           |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Variant<class_Variant>`                                   | :ref:`_shaped_get_span_meta<class_TextServerExtension_method__shaped_get_span_meta>` **(** :ref:`RID<class_RID>` shaped, :ref:`int<class_int>` index **)** |virtual| |const|                                                                                                                                                                                                |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`_shaped_set_span_update_font<class_TextServerExtension_method__shaped_set_span_update_font>` **(** :ref:`RID<class_RID>` shaped, :ref:`int<class_int>` index, :ref:`Array<class_Array>` fonts, :ref:`int<class_int>` size, :ref:`Dictionary<class_Dictionary>` opentype_features **)** |virtual|                                                                      |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                                         | :ref:`_shaped_text_add_object<class_TextServerExtension_method__shaped_text_add_object>` **(** :ref:`RID<class_RID>` shaped, :ref:`Variant<class_Variant>` key, :ref:`Vector2<class_Vector2>` size, :ref:`InlineAlignment<enum_@GlobalScope_InlineAlignment>` inline_align, :ref:`int<class_int>` length **)** |virtual|                                                    |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                                         | :ref:`_shaped_text_add_string<class_TextServerExtension_method__shaped_text_add_string>` **(** :ref:`RID<class_RID>` shaped, :ref:`String<class_String>` text, :ref:`Array<class_Array>` fonts, :ref:`int<class_int>` size, :ref:`Dictionary<class_Dictionary>` opentype_features, :ref:`String<class_String>` language, :ref:`Variant<class_Variant>` meta **)** |virtual| |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`_shaped_text_clear<class_TextServerExtension_method__shaped_text_clear>` **(** :ref:`RID<class_RID>` shaped **)** |virtual|                                                                                                                                                                                                                                           |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`_shaped_text_draw<class_TextServerExtension_method__shaped_text_draw>` **(** :ref:`RID<class_RID>` shaped, :ref:`RID<class_RID>` canvas, :ref:`Vector2<class_Vector2>` pos, :ref:`float<class_float>` clip_l, :ref:`float<class_float>` clip_r, :ref:`Color<class_Color>` color **)** |virtual| |const|                                                               |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`_shaped_text_draw_outline<class_TextServerExtension_method__shaped_text_draw_outline>` **(** :ref:`RID<class_RID>` shaped, :ref:`RID<class_RID>` canvas, :ref:`Vector2<class_Vector2>` pos, :ref:`float<class_float>` clip_l, :ref:`float<class_float>` clip_r, :ref:`int<class_int>` outline_size, :ref:`Color<class_Color>` color **)** |virtual| |const|           |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                                       | :ref:`_shaped_text_fit_to_width<class_TextServerExtension_method__shaped_text_fit_to_width>` **(** :ref:`RID<class_RID>` shaped, :ref:`float<class_float>` width, :ref:`int<class_int>` jst_flags **)** |virtual|                                                                                                                                                           |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                                       | :ref:`_shaped_text_get_ascent<class_TextServerExtension_method__shaped_text_get_ascent>` **(** :ref:`RID<class_RID>` shaped **)** |virtual| |const|                                                                                                                                                                                                                         |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`_shaped_text_get_carets<class_TextServerExtension_method__shaped_text_get_carets>` **(** :ref:`RID<class_RID>` shaped, :ref:`int<class_int>` position, CaretInfo* caret **)** |virtual| |const|                                                                                                                                                                       |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`                                     | :ref:`_shaped_text_get_custom_punctuation<class_TextServerExtension_method__shaped_text_get_custom_punctuation>` **(** :ref:`RID<class_RID>` shaped **)** |virtual| |const|                                                                                                                                                                                                 |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                                       | :ref:`_shaped_text_get_descent<class_TextServerExtension_method__shaped_text_get_descent>` **(** :ref:`RID<class_RID>` shaped **)** |virtual| |const|                                                                                                                                                                                                                       |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Direction<enum_TextServer_Direction>`                     | :ref:`_shaped_text_get_direction<class_TextServerExtension_method__shaped_text_get_direction>` **(** :ref:`RID<class_RID>` shaped **)** |virtual| |const|                                                                                                                                                                                                                   |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                                           | :ref:`_shaped_text_get_dominant_direction_in_range<class_TextServerExtension_method__shaped_text_get_dominant_direction_in_range>` **(** :ref:`RID<class_RID>` shaped, :ref:`int<class_int>` start, :ref:`int<class_int>` end **)** |virtual| |const|                                                                                                                       |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                                           | :ref:`_shaped_text_get_ellipsis_glyph_count<class_TextServerExtension_method__shaped_text_get_ellipsis_glyph_count>` **(** :ref:`RID<class_RID>` shaped **)** |virtual| |const|                                                                                                                                                                                             |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| Glyph*                                                          | :ref:`_shaped_text_get_ellipsis_glyphs<class_TextServerExtension_method__shaped_text_get_ellipsis_glyphs>` **(** :ref:`RID<class_RID>` shaped **)** |virtual| |const|                                                                                                                                                                                                       |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                                           | :ref:`_shaped_text_get_ellipsis_pos<class_TextServerExtension_method__shaped_text_get_ellipsis_pos>` **(** :ref:`RID<class_RID>` shaped **)** |virtual| |const|                                                                                                                                                                                                             |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                                           | :ref:`_shaped_text_get_glyph_count<class_TextServerExtension_method__shaped_text_get_glyph_count>` **(** :ref:`RID<class_RID>` shaped **)** |virtual| |const|                                                                                                                                                                                                               |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| Glyph*                                                          | :ref:`_shaped_text_get_glyphs<class_TextServerExtension_method__shaped_text_get_glyphs>` **(** :ref:`RID<class_RID>` shaped **)** |virtual| |const|                                                                                                                                                                                                                         |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Vector2<class_Vector2>`                                   | :ref:`_shaped_text_get_grapheme_bounds<class_TextServerExtension_method__shaped_text_get_grapheme_bounds>` **(** :ref:`RID<class_RID>` shaped, :ref:`int<class_int>` pos **)** |virtual| |const|                                                                                                                                                                            |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Direction<enum_TextServer_Direction>`                     | :ref:`_shaped_text_get_inferred_direction<class_TextServerExtension_method__shaped_text_get_inferred_direction>` **(** :ref:`RID<class_RID>` shaped **)** |virtual| |const|                                                                                                                                                                                                 |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`PackedInt32Array<class_PackedInt32Array>`                 | :ref:`_shaped_text_get_line_breaks<class_TextServerExtension_method__shaped_text_get_line_breaks>` **(** :ref:`RID<class_RID>` shaped, :ref:`float<class_float>` width, :ref:`int<class_int>` start, :ref:`int<class_int>` break_flags **)** |virtual| |const|                                                                                                              |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`PackedInt32Array<class_PackedInt32Array>`                 | :ref:`_shaped_text_get_line_breaks_adv<class_TextServerExtension_method__shaped_text_get_line_breaks_adv>` **(** :ref:`RID<class_RID>` shaped, :ref:`PackedFloat32Array<class_PackedFloat32Array>` width, :ref:`int<class_int>` start, :ref:`bool<class_bool>` once, :ref:`int<class_int>` break_flags **)** |virtual| |const|                                              |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Rect2<class_Rect2>`                                       | :ref:`_shaped_text_get_object_rect<class_TextServerExtension_method__shaped_text_get_object_rect>` **(** :ref:`RID<class_RID>` shaped, :ref:`Variant<class_Variant>` key **)** |virtual| |const|                                                                                                                                                                            |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Array<class_Array>`                                       | :ref:`_shaped_text_get_objects<class_TextServerExtension_method__shaped_text_get_objects>` **(** :ref:`RID<class_RID>` shaped **)** |virtual| |const|                                                                                                                                                                                                                       |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Orientation<enum_TextServer_Orientation>`                 | :ref:`_shaped_text_get_orientation<class_TextServerExtension_method__shaped_text_get_orientation>` **(** :ref:`RID<class_RID>` shaped **)** |virtual| |const|                                                                                                                                                                                                               |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`RID<class_RID>`                                           | :ref:`_shaped_text_get_parent<class_TextServerExtension_method__shaped_text_get_parent>` **(** :ref:`RID<class_RID>` shaped **)** |virtual| |const|                                                                                                                                                                                                                         |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                                         | :ref:`_shaped_text_get_preserve_control<class_TextServerExtension_method__shaped_text_get_preserve_control>` **(** :ref:`RID<class_RID>` shaped **)** |virtual| |const|                                                                                                                                                                                                     |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                                         | :ref:`_shaped_text_get_preserve_invalid<class_TextServerExtension_method__shaped_text_get_preserve_invalid>` **(** :ref:`RID<class_RID>` shaped **)** |virtual| |const|                                                                                                                                                                                                     |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Vector2i<class_Vector2i>`                                 | :ref:`_shaped_text_get_range<class_TextServerExtension_method__shaped_text_get_range>` **(** :ref:`RID<class_RID>` shaped **)** |virtual| |const|                                                                                                                                                                                                                           |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`PackedVector2Array<class_PackedVector2Array>`             | :ref:`_shaped_text_get_selection<class_TextServerExtension_method__shaped_text_get_selection>` **(** :ref:`RID<class_RID>` shaped, :ref:`int<class_int>` start, :ref:`int<class_int>` end **)** |virtual| |const|                                                                                                                                                           |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Vector2<class_Vector2>`                                   | :ref:`_shaped_text_get_size<class_TextServerExtension_method__shaped_text_get_size>` **(** :ref:`RID<class_RID>` shaped **)** |virtual| |const|                                                                                                                                                                                                                             |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                                           | :ref:`_shaped_text_get_trim_pos<class_TextServerExtension_method__shaped_text_get_trim_pos>` **(** :ref:`RID<class_RID>` shaped **)** |virtual| |const|                                                                                                                                                                                                                     |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                                       | :ref:`_shaped_text_get_underline_position<class_TextServerExtension_method__shaped_text_get_underline_position>` **(** :ref:`RID<class_RID>` shaped **)** |virtual| |const|                                                                                                                                                                                                 |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                                       | :ref:`_shaped_text_get_underline_thickness<class_TextServerExtension_method__shaped_text_get_underline_thickness>` **(** :ref:`RID<class_RID>` shaped **)** |virtual| |const|                                                                                                                                                                                               |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                                       | :ref:`_shaped_text_get_width<class_TextServerExtension_method__shaped_text_get_width>` **(** :ref:`RID<class_RID>` shaped **)** |virtual| |const|                                                                                                                                                                                                                           |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`PackedInt32Array<class_PackedInt32Array>`                 | :ref:`_shaped_text_get_word_breaks<class_TextServerExtension_method__shaped_text_get_word_breaks>` **(** :ref:`RID<class_RID>` shaped, :ref:`int<class_int>` grapheme_flags **)** |virtual| |const|                                                                                                                                                                         |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                                           | :ref:`_shaped_text_hit_test_grapheme<class_TextServerExtension_method__shaped_text_hit_test_grapheme>` **(** :ref:`RID<class_RID>` shaped, :ref:`float<class_float>` coord **)** |virtual| |const|                                                                                                                                                                          |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                                           | :ref:`_shaped_text_hit_test_position<class_TextServerExtension_method__shaped_text_hit_test_position>` **(** :ref:`RID<class_RID>` shaped, :ref:`float<class_float>` coord **)** |virtual| |const|                                                                                                                                                                          |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                                         | :ref:`_shaped_text_is_ready<class_TextServerExtension_method__shaped_text_is_ready>` **(** :ref:`RID<class_RID>` shaped **)** |virtual| |const|                                                                                                                                                                                                                             |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                                           | :ref:`_shaped_text_next_grapheme_pos<class_TextServerExtension_method__shaped_text_next_grapheme_pos>` **(** :ref:`RID<class_RID>` shaped, :ref:`int<class_int>` pos **)** |virtual| |const|                                                                                                                                                                                |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`_shaped_text_overrun_trim_to_width<class_TextServerExtension_method__shaped_text_overrun_trim_to_width>` **(** :ref:`RID<class_RID>` shaped, :ref:`float<class_float>` width, :ref:`int<class_int>` trim_flags **)** |virtual|                                                                                                                                        |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                                           | :ref:`_shaped_text_prev_grapheme_pos<class_TextServerExtension_method__shaped_text_prev_grapheme_pos>` **(** :ref:`RID<class_RID>` shaped, :ref:`int<class_int>` pos **)** |virtual| |const|                                                                                                                                                                                |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                                         | :ref:`_shaped_text_resize_object<class_TextServerExtension_method__shaped_text_resize_object>` **(** :ref:`RID<class_RID>` shaped, :ref:`Variant<class_Variant>` key, :ref:`Vector2<class_Vector2>` size, :ref:`InlineAlignment<enum_@GlobalScope_InlineAlignment>` inline_align **)** |virtual|                                                                            |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`_shaped_text_set_bidi_override<class_TextServerExtension_method__shaped_text_set_bidi_override>` **(** :ref:`RID<class_RID>` shaped, :ref:`Array<class_Array>` override **)** |virtual|                                                                                                                                                                               |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`_shaped_text_set_custom_punctuation<class_TextServerExtension_method__shaped_text_set_custom_punctuation>` **(** :ref:`RID<class_RID>` shaped, :ref:`String<class_String>` punct **)** |virtual|                                                                                                                                                                      |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`_shaped_text_set_direction<class_TextServerExtension_method__shaped_text_set_direction>` **(** :ref:`RID<class_RID>` shaped, :ref:`Direction<enum_TextServer_Direction>` direction **)** |virtual|                                                                                                                                                                    |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`_shaped_text_set_orientation<class_TextServerExtension_method__shaped_text_set_orientation>` **(** :ref:`RID<class_RID>` shaped, :ref:`Orientation<enum_TextServer_Orientation>` orientation **)** |virtual|                                                                                                                                                          |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`_shaped_text_set_preserve_control<class_TextServerExtension_method__shaped_text_set_preserve_control>` **(** :ref:`RID<class_RID>` shaped, :ref:`bool<class_bool>` enabled **)** |virtual|                                                                                                                                                                            |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                            | :ref:`_shaped_text_set_preserve_invalid<class_TextServerExtension_method__shaped_text_set_preserve_invalid>` **(** :ref:`RID<class_RID>` shaped, :ref:`bool<class_bool>` enabled **)** |virtual|                                                                                                                                                                            |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                                         | :ref:`_shaped_text_shape<class_TextServerExtension_method__shaped_text_shape>` **(** :ref:`RID<class_RID>` shaped **)** |virtual|                                                                                                                                                                                                                                           |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| Glyph*                                                          | :ref:`_shaped_text_sort_logical<class_TextServerExtension_method__shaped_text_sort_logical>` **(** :ref:`RID<class_RID>` shaped **)** |virtual|                                                                                                                                                                                                                             |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`RID<class_RID>`                                           | :ref:`_shaped_text_substr<class_TextServerExtension_method__shaped_text_substr>` **(** :ref:`RID<class_RID>` shaped, :ref:`int<class_int>` start, :ref:`int<class_int>` length **)** |virtual| |const|                                                                                                                                                                      |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                                       | :ref:`_shaped_text_tab_align<class_TextServerExtension_method__shaped_text_tab_align>` **(** :ref:`RID<class_RID>` shaped, :ref:`PackedFloat32Array<class_PackedFloat32Array>` tab_stops **)** |virtual|                                                                                                                                                                    |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                                         | :ref:`_shaped_text_update_breaks<class_TextServerExtension_method__shaped_text_update_breaks>` **(** :ref:`RID<class_RID>` shaped **)** |virtual|                                                                                                                                                                                                                           |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                                         | :ref:`_shaped_text_update_justification_ops<class_TextServerExtension_method__shaped_text_update_justification_ops>` **(** :ref:`RID<class_RID>` shaped **)** |virtual|                                                                                                                                                                                                     |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`                                     | :ref:`_string_to_lower<class_TextServerExtension_method__string_to_lower>` **(** :ref:`String<class_String>` string, :ref:`String<class_String>` language **)** |virtual| |const|                                                                                                                                                                                           |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`                                     | :ref:`_string_to_upper<class_TextServerExtension_method__string_to_upper>` **(** :ref:`String<class_String>` string, :ref:`String<class_String>` language **)** |virtual| |const|                                                                                                                                                                                           |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`                                     | :ref:`_tag_to_name<class_TextServerExtension_method__tag_to_name>` **(** :ref:`int<class_int>` tag **)** |virtual| |const|                                                                                                                                                                                                                                                  |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 
 Method Descriptions
 -------------------
@@ -546,7 +556,7 @@ Returns rectangle in the cache texture containing the glyph.
 
 .. _class_TextServerExtension_method__font_get_hinting:
 
-- :ref:`int<class_int>` **_font_get_hinting** **(** :ref:`RID<class_RID>` font_rid **)** |virtual| |const|
+- :ref:`Hinting<enum_TextServer_Hinting>` **_font_get_hinting** **(** :ref:`RID<class_RID>` font_rid **)** |virtual| |const|
 
 Returns the font hinting mode. Used by dynamic fonts only.
 
@@ -680,6 +690,14 @@ Returns font style name.
 
 ----
 
+.. _class_TextServerExtension_method__font_get_subpixel_positioning:
+
+- :ref:`SubpixelPositioning<enum_TextServer_SubpixelPositioning>` **_font_get_subpixel_positioning** **(** :ref:`RID<class_RID>` font_rid **)** |virtual| |const|
+
+Returns font sub-pixel glyph positioning mode.
+
+----
+
 .. _class_TextServerExtension_method__font_get_supported_chars:
 
 - :ref:`String<class_String>` **_font_get_supported_chars** **(** :ref:`RID<class_RID>` font_rid **)** |virtual| |const|
@@ -904,7 +922,7 @@ If set to ``true`` auto-hinting is preferred over font built-in hinting.
 
 - void **_font_set_force_autohinter** **(** :ref:`RID<class_RID>` font_rid, :ref:`bool<class_bool>` force_autohinter **)** |virtual|
 
-If set to ``true`` auto-hinting is preffered over font built-in hinting.
+If set to ``true`` auto-hinting is preferred over font built-in hinting.
 
 ----
 
@@ -1072,6 +1090,14 @@ Sets the font style name.
 
 ----
 
+.. _class_TextServerExtension_method__font_set_subpixel_positioning:
+
+- void **_font_set_subpixel_positioning** **(** :ref:`RID<class_RID>` font_rid, :ref:`SubpixelPositioning<enum_TextServer_SubpixelPositioning>` subpixel_positioning **)** |virtual|
+
+Sets font sub-pixel glyph positioning mode.
+
+----
+
 .. _class_TextServerExtension_method__font_set_texture_image:
 
 - void **_font_set_texture_image** **(** :ref:`RID<class_RID>` font_rid, :ref:`Vector2i<class_Vector2i>` size, :ref:`int<class_int>` texture_index, :ref:`Image<class_Image>` image **)** |virtual|
@@ -1252,6 +1278,30 @@ Saves optional TextServer database (e.g. ICU break iterators and dictionaries) t
 
 ----
 
+.. _class_TextServerExtension_method__shaped_get_span_count:
+
+- :ref:`int<class_int>` **_shaped_get_span_count** **(** :ref:`RID<class_RID>` shaped **)** |virtual| |const|
+
+Returns number of text spans added using :ref:`_shaped_text_add_string<class_TextServerExtension_method__shaped_text_add_string>` or :ref:`_shaped_text_add_object<class_TextServerExtension_method__shaped_text_add_object>`.
+
+----
+
+.. _class_TextServerExtension_method__shaped_get_span_meta:
+
+- :ref:`Variant<class_Variant>` **_shaped_get_span_meta** **(** :ref:`RID<class_RID>` shaped, :ref:`int<class_int>` index **)** |virtual| |const|
+
+Returns text span metadata.
+
+----
+
+.. _class_TextServerExtension_method__shaped_set_span_update_font:
+
+- void **_shaped_set_span_update_font** **(** :ref:`RID<class_RID>` shaped, :ref:`int<class_int>` index, :ref:`Array<class_Array>` fonts, :ref:`int<class_int>` size, :ref:`Dictionary<class_Dictionary>` opentype_features **)** |virtual|
+
+Changes text span font, font size and OpenType features, without changing the text.
+
+----
+
 .. _class_TextServerExtension_method__shaped_text_add_object:
 
 - :ref:`bool<class_bool>` **_shaped_text_add_object** **(** :ref:`RID<class_RID>` shaped, :ref:`Variant<class_Variant>` key, :ref:`Vector2<class_Vector2>` size, :ref:`InlineAlignment<enum_@GlobalScope_InlineAlignment>` inline_align, :ref:`int<class_int>` length **)** |virtual|
@@ -1262,7 +1312,7 @@ Adds inline object to the text buffer, ``key`` must be unique. In the text, obje
 
 .. _class_TextServerExtension_method__shaped_text_add_string:
 
-- :ref:`bool<class_bool>` **_shaped_text_add_string** **(** :ref:`RID<class_RID>` shaped, :ref:`String<class_String>` text, :ref:`Array<class_Array>` fonts, :ref:`int<class_int>` size, :ref:`Dictionary<class_Dictionary>` opentype_features, :ref:`String<class_String>` language **)** |virtual|
+- :ref:`bool<class_bool>` **_shaped_text_add_string** **(** :ref:`RID<class_RID>` shaped, :ref:`String<class_String>` text, :ref:`Array<class_Array>` fonts, :ref:`int<class_int>` size, :ref:`Dictionary<class_Dictionary>` opentype_features, :ref:`String<class_String>` language, :ref:`Variant<class_Variant>` meta **)** |virtual|
 
 Adds text span and font to draw it to the text buffer.
 
@@ -1338,7 +1388,7 @@ Returns the text descent (number of pixels below the baseline for horizontal lay
 
 .. _class_TextServerExtension_method__shaped_text_get_direction:
 
-- :ref:`int<class_int>` **_shaped_text_get_direction** **(** :ref:`RID<class_RID>` shaped **)** |virtual| |const|
+- :ref:`Direction<enum_TextServer_Direction>` **_shaped_text_get_direction** **(** :ref:`RID<class_RID>` shaped **)** |virtual| |const|
 
 Returns direction of the text.
 
@@ -1362,7 +1412,7 @@ Returns number of glyphs in the ellipsis.
 
 .. _class_TextServerExtension_method__shaped_text_get_ellipsis_glyphs:
 
-- void **_shaped_text_get_ellipsis_glyphs** **(** :ref:`RID<class_RID>` shaped, void* r_glyphs **)** |virtual| |const|
+- Glyph* **_shaped_text_get_ellipsis_glyphs** **(** :ref:`RID<class_RID>` shaped **)** |virtual| |const|
 
 Returns array of the glyphs in the ellipsis.
 
@@ -1386,7 +1436,7 @@ Returns text glyphs count.
 
 .. _class_TextServerExtension_method__shaped_text_get_glyphs:
 
-- void **_shaped_text_get_glyphs** **(** :ref:`RID<class_RID>` shaped, void* r_glyphs **)** |virtual| |const|
+- Glyph* **_shaped_text_get_glyphs** **(** :ref:`RID<class_RID>` shaped **)** |virtual| |const|
 
 Copies text glyphs in the visual order, into preallocated array of the size returned by :ref:`_shaped_text_get_glyph_count<class_TextServerExtension_method__shaped_text_get_glyph_count>`.
 
@@ -1402,7 +1452,7 @@ Returns composite character's bounds as offsets from the start of the line.
 
 .. _class_TextServerExtension_method__shaped_text_get_inferred_direction:
 
-- :ref:`int<class_int>` **_shaped_text_get_inferred_direction** **(** :ref:`RID<class_RID>` shaped **)** |virtual| |const|
+- :ref:`Direction<enum_TextServer_Direction>` **_shaped_text_get_inferred_direction** **(** :ref:`RID<class_RID>` shaped **)** |virtual| |const|
 
 Returns direction of the text, inferred by the BiDi algorithm.
 
@@ -1442,7 +1492,7 @@ Returns array of inline objects.
 
 .. _class_TextServerExtension_method__shaped_text_get_orientation:
 
-- :ref:`int<class_int>` **_shaped_text_get_orientation** **(** :ref:`RID<class_RID>` shaped **)** |virtual| |const|
+- :ref:`Orientation<enum_TextServer_Orientation>` **_shaped_text_get_orientation** **(** :ref:`RID<class_RID>` shaped **)** |virtual| |const|
 
 Returns text orientation.
 
@@ -1660,7 +1710,7 @@ Shapes buffer if it's not shaped. Returns ``true`` if the string is shaped succe
 
 .. _class_TextServerExtension_method__shaped_text_sort_logical:
 
-- void **_shaped_text_sort_logical** **(** :ref:`RID<class_RID>` shaped, void* r_glyphs **)** |virtual|
+- Glyph* **_shaped_text_sort_logical** **(** :ref:`RID<class_RID>` shaped **)** |virtual|
 
 Copies text glyphs in the logical order, into preallocated array of the size returned by :ref:`_shaped_text_get_glyph_count<class_TextServerExtension_method__shaped_text_get_glyph_count>`.
 

+ 39 - 39
classes/class_texturebutton.rst

@@ -30,27 +30,27 @@ Tutorials
 Properties
 ----------
 
-+----------------------------------------------------+----------------------------------------------------------------------------+-----------+
-| :ref:`bool<class_bool>`                            | :ref:`expand<class_TextureButton_property_expand>`                         | ``false`` |
-+----------------------------------------------------+----------------------------------------------------------------------------+-----------+
-| :ref:`bool<class_bool>`                            | :ref:`flip_h<class_TextureButton_property_flip_h>`                         | ``false`` |
-+----------------------------------------------------+----------------------------------------------------------------------------+-----------+
-| :ref:`bool<class_bool>`                            | :ref:`flip_v<class_TextureButton_property_flip_v>`                         | ``false`` |
-+----------------------------------------------------+----------------------------------------------------------------------------+-----------+
-| :ref:`StretchMode<enum_TextureButton_StretchMode>` | :ref:`stretch_mode<class_TextureButton_property_stretch_mode>`             | ``0``     |
-+----------------------------------------------------+----------------------------------------------------------------------------+-----------+
-| :ref:`BitMap<class_BitMap>`                        | :ref:`texture_click_mask<class_TextureButton_property_texture_click_mask>` |           |
-+----------------------------------------------------+----------------------------------------------------------------------------+-----------+
-| :ref:`Texture2D<class_Texture2D>`                  | :ref:`texture_disabled<class_TextureButton_property_texture_disabled>`     |           |
-+----------------------------------------------------+----------------------------------------------------------------------------+-----------+
-| :ref:`Texture2D<class_Texture2D>`                  | :ref:`texture_focused<class_TextureButton_property_texture_focused>`       |           |
-+----------------------------------------------------+----------------------------------------------------------------------------+-----------+
-| :ref:`Texture2D<class_Texture2D>`                  | :ref:`texture_hover<class_TextureButton_property_texture_hover>`           |           |
-+----------------------------------------------------+----------------------------------------------------------------------------+-----------+
-| :ref:`Texture2D<class_Texture2D>`                  | :ref:`texture_normal<class_TextureButton_property_texture_normal>`         |           |
-+----------------------------------------------------+----------------------------------------------------------------------------+-----------+
-| :ref:`Texture2D<class_Texture2D>`                  | :ref:`texture_pressed<class_TextureButton_property_texture_pressed>`       |           |
-+----------------------------------------------------+----------------------------------------------------------------------------+-----------+
++----------------------------------------------------+------------------------------------------------------------------------------+-----------+
+| :ref:`bool<class_bool>`                            | :ref:`flip_h<class_TextureButton_property_flip_h>`                           | ``false`` |
++----------------------------------------------------+------------------------------------------------------------------------------+-----------+
+| :ref:`bool<class_bool>`                            | :ref:`flip_v<class_TextureButton_property_flip_v>`                           | ``false`` |
++----------------------------------------------------+------------------------------------------------------------------------------+-----------+
+| :ref:`bool<class_bool>`                            | :ref:`ignore_texture_size<class_TextureButton_property_ignore_texture_size>` | ``false`` |
++----------------------------------------------------+------------------------------------------------------------------------------+-----------+
+| :ref:`StretchMode<enum_TextureButton_StretchMode>` | :ref:`stretch_mode<class_TextureButton_property_stretch_mode>`               | ``2``     |
++----------------------------------------------------+------------------------------------------------------------------------------+-----------+
+| :ref:`BitMap<class_BitMap>`                        | :ref:`texture_click_mask<class_TextureButton_property_texture_click_mask>`   |           |
++----------------------------------------------------+------------------------------------------------------------------------------+-----------+
+| :ref:`Texture2D<class_Texture2D>`                  | :ref:`texture_disabled<class_TextureButton_property_texture_disabled>`       |           |
++----------------------------------------------------+------------------------------------------------------------------------------+-----------+
+| :ref:`Texture2D<class_Texture2D>`                  | :ref:`texture_focused<class_TextureButton_property_texture_focused>`         |           |
++----------------------------------------------------+------------------------------------------------------------------------------+-----------+
+| :ref:`Texture2D<class_Texture2D>`                  | :ref:`texture_hover<class_TextureButton_property_texture_hover>`             |           |
++----------------------------------------------------+------------------------------------------------------------------------------+-----------+
+| :ref:`Texture2D<class_Texture2D>`                  | :ref:`texture_normal<class_TextureButton_property_texture_normal>`           |           |
++----------------------------------------------------+------------------------------------------------------------------------------+-----------+
+| :ref:`Texture2D<class_Texture2D>`                  | :ref:`texture_pressed<class_TextureButton_property_texture_pressed>`         |           |
++----------------------------------------------------+------------------------------------------------------------------------------+-----------+
 
 Enumerations
 ------------
@@ -90,22 +90,6 @@ enum **StretchMode**:
 Property Descriptions
 ---------------------
 
-.. _class_TextureButton_property_expand:
-
-- :ref:`bool<class_bool>` **expand**
-
-+-----------+-------------------+
-| *Default* | ``false``         |
-+-----------+-------------------+
-| *Setter*  | set_expand(value) |
-+-----------+-------------------+
-| *Getter*  | get_expand()      |
-+-----------+-------------------+
-
-If ``true``, the texture stretches to the edges of the node's bounding rectangle using the :ref:`stretch_mode<class_TextureButton_property_stretch_mode>`. If ``false``, the texture will not scale with the node.
-
-----
-
 .. _class_TextureButton_property_flip_h:
 
 - :ref:`bool<class_bool>` **flip_h**
@@ -138,19 +122,35 @@ If ``true``, texture is flipped vertically.
 
 ----
 
+.. _class_TextureButton_property_ignore_texture_size:
+
+- :ref:`bool<class_bool>` **ignore_texture_size**
+
++-----------+--------------------------------+
+| *Default* | ``false``                      |
++-----------+--------------------------------+
+| *Setter*  | set_ignore_texture_size(value) |
++-----------+--------------------------------+
+| *Getter*  | get_ignore_texture_size()      |
++-----------+--------------------------------+
+
+If ``true``, the size of the texture won't be considered for minimum size calculation, so the ``TextureButton`` can be shrunk down past the texture size.
+
+----
+
 .. _class_TextureButton_property_stretch_mode:
 
 - :ref:`StretchMode<enum_TextureButton_StretchMode>` **stretch_mode**
 
 +-----------+-------------------------+
-| *Default* | ``0``                   |
+| *Default* | ``2``                   |
 +-----------+-------------------------+
 | *Setter*  | set_stretch_mode(value) |
 +-----------+-------------------------+
 | *Getter*  | get_stretch_mode()      |
 +-----------+-------------------------+
 
-Controls the texture's behavior when you resize the node's bounding rectangle, **only if** :ref:`expand<class_TextureButton_property_expand>` is ``true``. Set it to one of the :ref:`StretchMode<enum_TextureButton_StretchMode>` constants. See the constants to learn more.
+Controls the texture's behavior when you resize the node's bounding rectangle. See the :ref:`StretchMode<enum_TextureButton_StretchMode>` constants for available options.
 
 ----
 

+ 165 - 95
classes/class_theme.rst

@@ -11,20 +11,24 @@ Theme
 
 **Inherits:** :ref:`Resource<class_Resource>` **<** :ref:`RefCounted<class_RefCounted>` **<** :ref:`Object<class_Object>`
 
-Theme for controls.
+Theme resource for styling/skinning :ref:`Control<class_Control>`\ s and :ref:`Window<class_Window>`\ s.
 
 Description
 -----------
 
-A theme for skinning controls. Controls can be skinned individually, but for complex applications, it's more practical to just create a global theme that defines everything. This theme can be applied to any :ref:`Control<class_Control>`; the Control and its children will automatically use it.
+A theme resource is used for styling/skinning :ref:`Control<class_Control>` and :ref:`Window<class_Window>` nodes. While individual controls can be styled using their local theme overrides (see :ref:`Control.add_theme_color_override<class_Control_method_add_theme_color_override>`), theme resources allow you to store and apply the same settings between all controls sharing the same type (e.g. style all :ref:`Button<class_Button>`\ s the same). One theme resource can be used for the entire project, but you can also set a separate theme resource to a branch of control nodes. A theme resources assigned to a control node applies to the control itself, as well as all of its direct and indirect children (as long as a chain of controls is uninterrupted).
 
-Theme resources can alternatively be loaded by writing them in a ``.theme`` file, see the documentation for more information.
+Use :ref:`ProjectSettings.gui/theme/custom<class_ProjectSettings_property_gui/theme/custom>` to set up a project-scope theme that will be available to every control in your project.
+
+Use :ref:`Control.theme<class_Control_property_theme>` of any control node to set up a theme that will be available to that control and all of its direct and indirect children.
 
 Tutorials
 ---------
 
 - :doc:`GUI skinning <../tutorials/ui/gui_skinning>`
 
+- :doc:`Using the theme editor <../tutorials/ui/gui_using_theme_editor>`
+
 Properties
 ----------
 
@@ -39,6 +43,8 @@ Properties
 Methods
 -------
 
++---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                              | :ref:`add_type<class_Theme_method_add_type>` **(** :ref:`StringName<class_StringName>` theme_type **)**                                                                                                                                                           |
 +---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                                              | :ref:`clear<class_Theme_method_clear>` **(** **)**                                                                                                                                                                                                                |
 +---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
@@ -130,6 +136,8 @@ Methods
 +---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                                              | :ref:`merge_with<class_Theme_method_merge_with>` **(** :ref:`Theme<class_Theme>` other **)**                                                                                                                                                                      |
 +---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                              | :ref:`remove_type<class_Theme_method_remove_type>` **(** :ref:`StringName<class_StringName>` theme_type **)**                                                                                                                                                     |
++---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                                              | :ref:`rename_color<class_Theme_method_rename_color>` **(** :ref:`StringName<class_StringName>` old_name, :ref:`StringName<class_StringName>` name, :ref:`StringName<class_StringName>` theme_type **)**                                                           |
 +---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                                              | :ref:`rename_constant<class_Theme_method_rename_constant>` **(** :ref:`StringName<class_StringName>` old_name, :ref:`StringName<class_StringName>` name, :ref:`StringName<class_StringName>` theme_type **)**                                                     |
@@ -211,7 +219,7 @@ Property Descriptions
 | *Getter*  | get_default_base_scale()      |
 +-----------+-------------------------------+
 
-The default base scale factor of this ``Theme`` resource. Used by some controls to scale their visual properties based on a global scale factor. If this value is set to ``0.0``, the global scale factor is used.
+The default base scale factor of this theme resource. Used by some controls to scale their visual properties based on the global scale factor. If this value is set to ``0.0``, the global scale factor is used.
 
 Use :ref:`has_default_base_scale<class_Theme_method_has_default_base_scale>` to check if this value is valid.
 
@@ -227,7 +235,7 @@ Use :ref:`has_default_base_scale<class_Theme_method_has_default_base_scale>` to
 | *Getter* | get_default_font()      |
 +----------+-------------------------+
 
-The default font of this ``Theme`` resource. Used as a fallback value for font items defined in this theme, but having invalid values. If this value is also invalid, the global default value is used.
+The default font of this theme resource. Used as the default value when trying to fetch a font resource that doesn't exist in this theme or is in invalid state. If the default font is also missing or invalid, the engine fallback value is used.
 
 Use :ref:`has_default_font<class_Theme_method_has_default_font>` to check if this value is valid.
 
@@ -245,18 +253,28 @@ Use :ref:`has_default_font<class_Theme_method_has_default_font>` to check if thi
 | *Getter*  | get_default_font_size()      |
 +-----------+------------------------------+
 
-The default font size of this ``Theme`` resource. Used as a fallback value for font size items defined in this theme, but having invalid values. If this value is set to ``-1``, the global default value is used.
+The default font size of this theme resource. Used as the default value when trying to fetch a font size value that doesn't exist in this theme or is in invalid state. If the default font size is also missing or invalid, the engine fallback value is used.
 
-Use :ref:`has_default_font_size<class_Theme_method_has_default_font_size>` to check if this value is valid.
+Values below ``0`` are invalid and can be used to unset the property. Use :ref:`has_default_font_size<class_Theme_method_has_default_font_size>` to check if this value is valid.
 
 Method Descriptions
 -------------------
 
+.. _class_Theme_method_add_type:
+
+- void **add_type** **(** :ref:`StringName<class_StringName>` theme_type **)**
+
+Adds an empty theme type for every valid data type.
+
+\ **Note:** Empty types are not saved with the theme. This method only exists to perform in-memory changes to the resource. Use available ``set_*`` methods to add theme items.
+
+----
+
 .. _class_Theme_method_clear:
 
 - void **clear** **(** **)**
 
-Clears all values on the theme.
+Removes all the theme properties defined on the theme resource.
 
 ----
 
@@ -264,7 +282,9 @@ Clears all values on the theme.
 
 - void **clear_color** **(** :ref:`StringName<class_StringName>` name, :ref:`StringName<class_StringName>` theme_type **)**
 
-Clears the :ref:`Color<class_Color>` at ``name`` if the theme has ``theme_type``.
+Removes the :ref:`Color<class_Color>` property defined by ``name`` and ``theme_type``, if it exists.
+
+Fails if it doesn't exist. Use :ref:`has_color<class_Theme_method_has_color>` to check for existence.
 
 ----
 
@@ -272,7 +292,9 @@ Clears the :ref:`Color<class_Color>` at ``name`` if the theme has ``theme_type``
 
 - void **clear_constant** **(** :ref:`StringName<class_StringName>` name, :ref:`StringName<class_StringName>` theme_type **)**
 
-Clears the constant at ``name`` if the theme has ``theme_type``.
+Removes the constant property defined by ``name`` and ``theme_type``, if it exists.
+
+Fails if it doesn't exist. Use :ref:`has_constant<class_Theme_method_has_constant>` to check for existence.
 
 ----
 
@@ -280,7 +302,9 @@ Clears the constant at ``name`` if the theme has ``theme_type``.
 
 - void **clear_font** **(** :ref:`StringName<class_StringName>` name, :ref:`StringName<class_StringName>` theme_type **)**
 
-Clears the :ref:`Font<class_Font>` at ``name`` if the theme has ``theme_type``.
+Removes the :ref:`Font<class_Font>` property defined by ``name`` and ``theme_type``, if it exists.
+
+Fails if it doesn't exist. Use :ref:`has_font<class_Theme_method_has_font>` to check for existence.
 
 ----
 
@@ -288,7 +312,9 @@ Clears the :ref:`Font<class_Font>` at ``name`` if the theme has ``theme_type``.
 
 - void **clear_font_size** **(** :ref:`StringName<class_StringName>` name, :ref:`StringName<class_StringName>` theme_type **)**
 
-Clears the font size ``name`` if the theme has ``theme_type``.
+Removes the font size property defined by ``name`` and ``theme_type``, if it exists.
+
+Fails if it doesn't exist. Use :ref:`has_font_size<class_Theme_method_has_font_size>` to check for existence.
 
 ----
 
@@ -296,7 +322,9 @@ Clears the font size ``name`` if the theme has ``theme_type``.
 
 - void **clear_icon** **(** :ref:`StringName<class_StringName>` name, :ref:`StringName<class_StringName>` theme_type **)**
 
-Clears the icon at ``name`` if the theme has ``theme_type``.
+Removes the icon property defined by ``name`` and ``theme_type``, if it exists.
+
+Fails if it doesn't exist. Use :ref:`has_icon<class_Theme_method_has_icon>` to check for existence.
 
 ----
 
@@ -304,7 +332,9 @@ Clears the icon at ``name`` if the theme has ``theme_type``.
 
 - void **clear_stylebox** **(** :ref:`StringName<class_StringName>` name, :ref:`StringName<class_StringName>` theme_type **)**
 
-Clears :ref:`StyleBox<class_StyleBox>` at ``name`` if the theme has ``theme_type``.
+Removes the :ref:`StyleBox<class_StyleBox>` property defined by ``name`` and ``theme_type``, if it exists.
+
+Fails if it doesn't exist. Use :ref:`has_stylebox<class_Theme_method_has_stylebox>` to check for existence.
 
 ----
 
@@ -312,7 +342,11 @@ Clears :ref:`StyleBox<class_StyleBox>` at ``name`` if the theme has ``theme_type
 
 - void **clear_theme_item** **(** :ref:`DataType<enum_Theme_DataType>` data_type, :ref:`StringName<class_StringName>` name, :ref:`StringName<class_StringName>` theme_type **)**
 
-Clears the theme item of ``data_type`` at ``name`` if the theme has ``theme_type``.
+Removes the theme property of ``data_type`` defined by ``name`` and ``theme_type``, if it exists.
+
+Fails if it doesn't exist. Use :ref:`has_theme_item<class_Theme_method_has_theme_item>` to check for existence.
+
+\ **Note:** This method is analogous to calling the corresponding data type specific method, but can be used for more generalized logic.
 
 ----
 
@@ -320,7 +354,7 @@ Clears the theme item of ``data_type`` at ``name`` if the theme has ``theme_type
 
 - void **clear_type_variation** **(** :ref:`StringName<class_StringName>` theme_type **)**
 
-Unmarks ``theme_type`` as being a variation of any other type.
+Unmarks ``theme_type`` as being a variation of another theme type. See :ref:`set_type_variation<class_Theme_method_set_type_variation>`.
 
 ----
 
@@ -328,7 +362,9 @@ Unmarks ``theme_type`` as being a variation of any other type.
 
 - :ref:`Color<class_Color>` **get_color** **(** :ref:`StringName<class_StringName>` name, :ref:`StringName<class_StringName>` theme_type **)** |const|
 
-Returns the :ref:`Color<class_Color>` at ``name`` if the theme has ``theme_type``.
+Returns the :ref:`Color<class_Color>` property defined by ``name`` and ``theme_type``, if it exists.
+
+Returns the default color value if the property doesn't exist. Use :ref:`has_color<class_Theme_method_has_color>` to check for existence.
 
 ----
 
@@ -336,7 +372,7 @@ Returns the :ref:`Color<class_Color>` at ``name`` if the theme has ``theme_type`
 
 - :ref:`PackedStringArray<class_PackedStringArray>` **get_color_list** **(** :ref:`String<class_String>` theme_type **)** |const|
 
-Returns all the :ref:`Color<class_Color>`\ s as a :ref:`PackedStringArray<class_PackedStringArray>` filled with each :ref:`Color<class_Color>`'s name, for use in :ref:`get_color<class_Theme_method_get_color>`, if the theme has ``theme_type``.
+Returns a list of names for :ref:`Color<class_Color>` properties defined with ``theme_type``. Use :ref:`get_color_type_list<class_Theme_method_get_color_type_list>` to get a list of possible theme type names.
 
 ----
 
@@ -344,7 +380,7 @@ Returns all the :ref:`Color<class_Color>`\ s as a :ref:`PackedStringArray<class_
 
 - :ref:`PackedStringArray<class_PackedStringArray>` **get_color_type_list** **(** **)** |const|
 
-Returns all the :ref:`Color<class_Color>` types as a :ref:`PackedStringArray<class_PackedStringArray>` filled with unique type names, for use in :ref:`get_color<class_Theme_method_get_color>` and/or :ref:`get_color_list<class_Theme_method_get_color_list>`.
+Returns a list of all unique theme type names for :ref:`Color<class_Color>` properties. Use :ref:`get_type_list<class_Theme_method_get_type_list>` to get a list of all unique theme types.
 
 ----
 
@@ -352,7 +388,9 @@ Returns all the :ref:`Color<class_Color>` types as a :ref:`PackedStringArray<cla
 
 - :ref:`int<class_int>` **get_constant** **(** :ref:`StringName<class_StringName>` name, :ref:`StringName<class_StringName>` theme_type **)** |const|
 
-Returns the constant at ``name`` if the theme has ``theme_type``.
+Returns the constant property defined by ``name`` and ``theme_type``, if it exists.
+
+Returns ``0`` if the property doesn't exist. Use :ref:`has_constant<class_Theme_method_has_constant>` to check for existence.
 
 ----
 
@@ -360,7 +398,7 @@ Returns the constant at ``name`` if the theme has ``theme_type``.
 
 - :ref:`PackedStringArray<class_PackedStringArray>` **get_constant_list** **(** :ref:`String<class_String>` theme_type **)** |const|
 
-Returns all the constants as a :ref:`PackedStringArray<class_PackedStringArray>` filled with each constant's name, for use in :ref:`get_constant<class_Theme_method_get_constant>`, if the theme has ``theme_type``.
+Returns a list of names for constant properties defined with ``theme_type``. Use :ref:`get_constant_type_list<class_Theme_method_get_constant_type_list>` to get a list of possible theme type names.
 
 ----
 
@@ -368,7 +406,7 @@ Returns all the constants as a :ref:`PackedStringArray<class_PackedStringArray>`
 
 - :ref:`PackedStringArray<class_PackedStringArray>` **get_constant_type_list** **(** **)** |const|
 
-Returns all the constant types as a :ref:`PackedStringArray<class_PackedStringArray>` filled with unique type names, for use in :ref:`get_constant<class_Theme_method_get_constant>` and/or :ref:`get_constant_list<class_Theme_method_get_constant_list>`.
+Returns a list of all unique theme type names for constant properties. Use :ref:`get_type_list<class_Theme_method_get_type_list>` to get a list of all unique theme types.
 
 ----
 
@@ -376,7 +414,11 @@ Returns all the constant types as a :ref:`PackedStringArray<class_PackedStringAr
 
 - :ref:`Font<class_Font>` **get_font** **(** :ref:`StringName<class_StringName>` name, :ref:`StringName<class_StringName>` theme_type **)** |const|
 
-Returns the :ref:`Font<class_Font>` at ``name`` if the theme has ``theme_type``.
+Returns the :ref:`Font<class_Font>` property defined by ``name`` and ``theme_type``, if it exists.
+
+Returns the default theme font if the property doesn't exist and the default theme font is set up (see :ref:`default_font<class_Theme_property_default_font>`). Use :ref:`has_font<class_Theme_method_has_font>` to check for existence of the property and :ref:`has_default_font<class_Theme_method_has_default_font>` to check for existence of the default theme font.
+
+Returns the engine fallback font value, if neither exist.
 
 ----
 
@@ -384,7 +426,7 @@ Returns the :ref:`Font<class_Font>` at ``name`` if the theme has ``theme_type``.
 
 - :ref:`PackedStringArray<class_PackedStringArray>` **get_font_list** **(** :ref:`String<class_String>` theme_type **)** |const|
 
-Returns all the :ref:`Font<class_Font>`\ s as a :ref:`PackedStringArray<class_PackedStringArray>` filled with each :ref:`Font<class_Font>`'s name, for use in :ref:`get_font<class_Theme_method_get_font>`, if the theme has ``theme_type``.
+Returns a list of names for :ref:`Font<class_Font>` properties defined with ``theme_type``. Use :ref:`get_font_type_list<class_Theme_method_get_font_type_list>` to get a list of possible theme type names.
 
 ----
 
@@ -392,7 +434,11 @@ Returns all the :ref:`Font<class_Font>`\ s as a :ref:`PackedStringArray<class_Pa
 
 - :ref:`int<class_int>` **get_font_size** **(** :ref:`StringName<class_StringName>` name, :ref:`StringName<class_StringName>` theme_type **)** |const|
 
-Returns the font size at ``name`` if the theme has ``theme_type``.
+Returns the font size property defined by ``name`` and ``theme_type``, if it exists.
+
+Returns the default theme font size if the property doesn't exist and the default theme font size is set up (see :ref:`default_font_size<class_Theme_property_default_font_size>`). Use :ref:`has_font_size<class_Theme_method_has_font_size>` to check for existence of the property and :ref:`has_default_font_size<class_Theme_method_has_default_font_size>` to check for existence of the default theme font.
+
+Returns the engine fallback font size value, if neither exist.
 
 ----
 
@@ -400,7 +446,7 @@ Returns the font size at ``name`` if the theme has ``theme_type``.
 
 - :ref:`PackedStringArray<class_PackedStringArray>` **get_font_size_list** **(** :ref:`String<class_String>` theme_type **)** |const|
 
-Returns all the font sizes as a :ref:`PackedStringArray<class_PackedStringArray>` filled with each font size name, for use in :ref:`get_font_size<class_Theme_method_get_font_size>`, if the theme has ``theme_type``.
+Returns a list of names for font size properties defined with ``theme_type``. Use :ref:`get_font_size_type_list<class_Theme_method_get_font_size_type_list>` to get a list of possible theme type names.
 
 ----
 
@@ -408,7 +454,7 @@ Returns all the font sizes as a :ref:`PackedStringArray<class_PackedStringArray>
 
 - :ref:`PackedStringArray<class_PackedStringArray>` **get_font_size_type_list** **(** **)** |const|
 
-Returns all the font size types as a :ref:`PackedStringArray<class_PackedStringArray>` filled with unique type names, for use in :ref:`get_font_size<class_Theme_method_get_font_size>` and/or :ref:`get_font_size_list<class_Theme_method_get_font_size_list>`.
+Returns a list of all unique theme type names for font size properties. Use :ref:`get_type_list<class_Theme_method_get_type_list>` to get a list of all unique theme types.
 
 ----
 
@@ -416,7 +462,7 @@ Returns all the font size types as a :ref:`PackedStringArray<class_PackedStringA
 
 - :ref:`PackedStringArray<class_PackedStringArray>` **get_font_type_list** **(** **)** |const|
 
-Returns all the :ref:`Font<class_Font>` types as a :ref:`PackedStringArray<class_PackedStringArray>` filled with unique type names, for use in :ref:`get_font<class_Theme_method_get_font>` and/or :ref:`get_font_list<class_Theme_method_get_font_list>`.
+Returns a list of all unique theme type names for :ref:`Font<class_Font>` properties. Use :ref:`get_type_list<class_Theme_method_get_type_list>` to get a list of all unique theme types.
 
 ----
 
@@ -424,7 +470,9 @@ Returns all the :ref:`Font<class_Font>` types as a :ref:`PackedStringArray<class
 
 - :ref:`Texture2D<class_Texture2D>` **get_icon** **(** :ref:`StringName<class_StringName>` name, :ref:`StringName<class_StringName>` theme_type **)** |const|
 
-Returns the icon :ref:`Texture2D<class_Texture2D>` at ``name`` if the theme has ``theme_type``.
+Returns the icon property defined by ``name`` and ``theme_type``, if it exists.
+
+Returns the engine fallback icon value if the property doesn't exist. Use :ref:`has_icon<class_Theme_method_has_icon>` to check for existence.
 
 ----
 
@@ -432,7 +480,7 @@ Returns the icon :ref:`Texture2D<class_Texture2D>` at ``name`` if the theme has
 
 - :ref:`PackedStringArray<class_PackedStringArray>` **get_icon_list** **(** :ref:`String<class_String>` theme_type **)** |const|
 
-Returns all the icons as a :ref:`PackedStringArray<class_PackedStringArray>` filled with each :ref:`Texture2D<class_Texture2D>`'s name, for use in :ref:`get_icon<class_Theme_method_get_icon>`, if the theme has ``theme_type``.
+Returns a list of names for icon properties defined with ``theme_type``. Use :ref:`get_icon_type_list<class_Theme_method_get_icon_type_list>` to get a list of possible theme type names.
 
 ----
 
@@ -440,7 +488,7 @@ Returns all the icons as a :ref:`PackedStringArray<class_PackedStringArray>` fil
 
 - :ref:`PackedStringArray<class_PackedStringArray>` **get_icon_type_list** **(** **)** |const|
 
-Returns all the icon types as a :ref:`PackedStringArray<class_PackedStringArray>` filled with unique type names, for use in :ref:`get_icon<class_Theme_method_get_icon>` and/or :ref:`get_icon_list<class_Theme_method_get_icon_list>`.
+Returns a list of all unique theme type names for icon properties. Use :ref:`get_type_list<class_Theme_method_get_type_list>` to get a list of all unique theme types.
 
 ----
 
@@ -448,9 +496,9 @@ Returns all the icon types as a :ref:`PackedStringArray<class_PackedStringArray>
 
 - :ref:`StyleBox<class_StyleBox>` **get_stylebox** **(** :ref:`StringName<class_StringName>` name, :ref:`StringName<class_StringName>` theme_type **)** |const|
 
-Returns the :ref:`StyleBox<class_StyleBox>` at ``name`` if the theme has ``theme_type``.
+Returns the :ref:`StyleBox<class_StyleBox>` property defined by ``name`` and ``theme_type``, if it exists.
 
-Valid ``name``\ s may be found using :ref:`get_stylebox_list<class_Theme_method_get_stylebox_list>`. Valid ``theme_type``\ s may be found using :ref:`get_stylebox_type_list<class_Theme_method_get_stylebox_type_list>`.
+Returns the engine fallback stylebox value if the property doesn't exist. Use :ref:`has_stylebox<class_Theme_method_has_stylebox>` to check for existence.
 
 ----
 
@@ -458,9 +506,7 @@ Valid ``name``\ s may be found using :ref:`get_stylebox_list<class_Theme_method_
 
 - :ref:`PackedStringArray<class_PackedStringArray>` **get_stylebox_list** **(** :ref:`String<class_String>` theme_type **)** |const|
 
-Returns all the :ref:`StyleBox<class_StyleBox>`\ s as a :ref:`PackedStringArray<class_PackedStringArray>` filled with each :ref:`StyleBox<class_StyleBox>`'s name, for use in :ref:`get_stylebox<class_Theme_method_get_stylebox>`, if the theme has ``theme_type``.
-
-Valid ``theme_type``\ s may be found using :ref:`get_stylebox_type_list<class_Theme_method_get_stylebox_type_list>`.
+Returns a list of names for :ref:`StyleBox<class_StyleBox>` properties defined with ``theme_type``. Use :ref:`get_stylebox_type_list<class_Theme_method_get_stylebox_type_list>` to get a list of possible theme type names.
 
 ----
 
@@ -468,7 +514,7 @@ Valid ``theme_type``\ s may be found using :ref:`get_stylebox_type_list<class_Th
 
 - :ref:`PackedStringArray<class_PackedStringArray>` **get_stylebox_type_list** **(** **)** |const|
 
-Returns all the :ref:`StyleBox<class_StyleBox>` types as a :ref:`PackedStringArray<class_PackedStringArray>` filled with unique type names, for use in :ref:`get_stylebox<class_Theme_method_get_stylebox>` and/or :ref:`get_stylebox_list<class_Theme_method_get_stylebox_list>`.
+Returns a list of all unique theme type names for :ref:`StyleBox<class_StyleBox>` properties. Use :ref:`get_type_list<class_Theme_method_get_type_list>` to get a list of all unique theme types.
 
 ----
 
@@ -476,9 +522,11 @@ Returns all the :ref:`StyleBox<class_StyleBox>` types as a :ref:`PackedStringArr
 
 - :ref:`Variant<class_Variant>` **get_theme_item** **(** :ref:`DataType<enum_Theme_DataType>` data_type, :ref:`StringName<class_StringName>` name, :ref:`StringName<class_StringName>` theme_type **)** |const|
 
-Returns the theme item of ``data_type`` at ``name`` if the theme has ``theme_type``.
+Returns the theme property of ``data_type`` defined by ``name`` and ``theme_type``, if it exists.
 
-Valid ``name``\ s may be found using :ref:`get_theme_item_list<class_Theme_method_get_theme_item_list>` or a data type specific method. Valid ``theme_type``\ s may be found using :ref:`get_theme_item_type_list<class_Theme_method_get_theme_item_type_list>` or a data type specific method.
+Returns the engine fallback icon value if the property doesn't exist. Use :ref:`has_theme_item<class_Theme_method_has_theme_item>` to check for existence.
+
+\ **Note:** This method is analogous to calling the corresponding data type specific method, but can be used for more generalized logic.
 
 ----
 
@@ -486,9 +534,9 @@ Valid ``name``\ s may be found using :ref:`get_theme_item_list<class_Theme_metho
 
 - :ref:`PackedStringArray<class_PackedStringArray>` **get_theme_item_list** **(** :ref:`DataType<enum_Theme_DataType>` data_type, :ref:`String<class_String>` theme_type **)** |const|
 
-Returns all the theme items of ``data_type`` as a :ref:`PackedStringArray<class_PackedStringArray>` filled with each theme items's name, for use in :ref:`get_theme_item<class_Theme_method_get_theme_item>` or a data type specific method, if the theme has ``theme_type``.
+Returns a list of names for properties of ``data_type`` defined with ``theme_type``. Use :ref:`get_theme_item_type_list<class_Theme_method_get_theme_item_type_list>` to get a list of possible theme type names.
 
-Valid ``theme_type``\ s may be found using :ref:`get_theme_item_type_list<class_Theme_method_get_theme_item_type_list>` or a data type specific method.
+\ **Note:** This method is analogous to calling the corresponding data type specific method, but can be used for more generalized logic.
 
 ----
 
@@ -496,7 +544,9 @@ Valid ``theme_type``\ s may be found using :ref:`get_theme_item_type_list<class_
 
 - :ref:`PackedStringArray<class_PackedStringArray>` **get_theme_item_type_list** **(** :ref:`DataType<enum_Theme_DataType>` data_type **)** |const|
 
-Returns all the theme items of ``data_type`` types as a :ref:`PackedStringArray<class_PackedStringArray>` filled with unique type names, for use in :ref:`get_theme_item<class_Theme_method_get_theme_item>`, :ref:`get_theme_item_list<class_Theme_method_get_theme_item_list>` or data type specific methods.
+Returns a list of all unique theme type names for ``data_type`` properties. Use :ref:`get_type_list<class_Theme_method_get_type_list>` to get a list of all unique theme types.
+
+\ **Note:** This method is analogous to calling the corresponding data type specific method, but can be used for more generalized logic.
 
 ----
 
@@ -504,7 +554,7 @@ Returns all the theme items of ``data_type`` types as a :ref:`PackedStringArray<
 
 - :ref:`PackedStringArray<class_PackedStringArray>` **get_type_list** **(** **)** |const|
 
-Returns all the theme types as a :ref:`PackedStringArray<class_PackedStringArray>` filled with unique type names, for use in other ``get_*`` functions of this theme.
+Returns a list of all unique theme type names. Use the appropriate ``get_*_type_list`` method to get a list of unique theme types for a single data type.
 
 ----
 
@@ -512,7 +562,7 @@ Returns all the theme types as a :ref:`PackedStringArray<class_PackedStringArray
 
 - :ref:`StringName<class_StringName>` **get_type_variation_base** **(** :ref:`StringName<class_StringName>` theme_type **)** |const|
 
-Returns the base theme type if ``theme_type`` is a valid variation type. Returns an empty string otherwise.
+Returns the name of the base theme type if ``theme_type`` is a valid variation type. Returns an empty string otherwise.
 
 ----
 
@@ -520,7 +570,7 @@ Returns the base theme type if ``theme_type`` is a valid variation type. Returns
 
 - :ref:`PackedStringArray<class_PackedStringArray>` **get_type_variation_list** **(** :ref:`StringName<class_StringName>` base_type **)** |const|
 
-Returns a list of all variation for the given ``base_type``.
+Returns a list of all type variations for the given ``base_type``.
 
 ----
 
@@ -528,9 +578,9 @@ Returns a list of all variation for the given ``base_type``.
 
 - :ref:`bool<class_bool>` **has_color** **(** :ref:`StringName<class_StringName>` name, :ref:`StringName<class_StringName>` theme_type **)** |const|
 
-Returns ``true`` if :ref:`Color<class_Color>` with ``name`` is in ``theme_type``.
+Returns ``true`` if the :ref:`Color<class_Color>` property defined by ``name`` and ``theme_type`` exists.
 
-Returns ``false`` if the theme does not have ``theme_type``.
+Returns ``false`` if it doesn't exist. Use :ref:`set_color<class_Theme_method_set_color>` to define it.
 
 ----
 
@@ -538,9 +588,9 @@ Returns ``false`` if the theme does not have ``theme_type``.
 
 - :ref:`bool<class_bool>` **has_constant** **(** :ref:`StringName<class_StringName>` name, :ref:`StringName<class_StringName>` theme_type **)** |const|
 
-Returns ``true`` if constant with ``name`` is in ``theme_type``.
+Returns ``true`` if the constant property defined by ``name`` and ``theme_type`` exists.
 
-Returns ``false`` if the theme does not have ``theme_type``.
+Returns ``false`` if it doesn't exist. Use :ref:`set_constant<class_Theme_method_set_constant>` to define it.
 
 ----
 
@@ -548,7 +598,9 @@ Returns ``false`` if the theme does not have ``theme_type``.
 
 - :ref:`bool<class_bool>` **has_default_base_scale** **(** **)** |const|
 
-Returns ``true`` if this theme has a valid :ref:`default_base_scale<class_Theme_property_default_base_scale>` value.
+Returns ``true`` if :ref:`default_base_scale<class_Theme_property_default_base_scale>` has a valid value.
+
+Returns ``false`` if it doesn't. The value must be greater than ``0.0`` to be considered valid.
 
 ----
 
@@ -556,7 +608,9 @@ Returns ``true`` if this theme has a valid :ref:`default_base_scale<class_Theme_
 
 - :ref:`bool<class_bool>` **has_default_font** **(** **)** |const|
 
-Returns ``true`` if this theme has a valid :ref:`default_font<class_Theme_property_default_font>` value.
+Returns ``true`` if :ref:`default_font<class_Theme_property_default_font>` has a valid value.
+
+Returns ``false`` if it doesn't.
 
 ----
 
@@ -564,7 +618,9 @@ Returns ``true`` if this theme has a valid :ref:`default_font<class_Theme_proper
 
 - :ref:`bool<class_bool>` **has_default_font_size** **(** **)** |const|
 
-Returns ``true`` if this theme has a valid :ref:`default_font_size<class_Theme_property_default_font_size>` value.
+Returns ``true`` if :ref:`default_font_size<class_Theme_property_default_font_size>` has a valid value.
+
+Returns ``false`` if it doesn't. The value must be greater than ``0`` to be considered valid.
 
 ----
 
@@ -572,9 +628,9 @@ Returns ``true`` if this theme has a valid :ref:`default_font_size<class_Theme_p
 
 - :ref:`bool<class_bool>` **has_font** **(** :ref:`StringName<class_StringName>` name, :ref:`StringName<class_StringName>` theme_type **)** |const|
 
-Returns ``true`` if :ref:`Font<class_Font>` with ``name`` is in ``theme_type``.
+Returns ``true`` if the :ref:`Font<class_Font>` property defined by ``name`` and ``theme_type`` exists, or if the default theme font is set up (see :ref:`has_default_font<class_Theme_method_has_default_font>`).
 
-Returns ``false`` if the theme does not have ``theme_type``.
+Returns ``false`` if neither exist. Use :ref:`set_font<class_Theme_method_set_font>` to define the property.
 
 ----
 
@@ -582,9 +638,9 @@ Returns ``false`` if the theme does not have ``theme_type``.
 
 - :ref:`bool<class_bool>` **has_font_size** **(** :ref:`StringName<class_StringName>` name, :ref:`StringName<class_StringName>` theme_type **)** |const|
 
-Returns ``true`` if font size with ``name`` is in ``theme_type``.
+Returns ``true`` if the font size property defined by ``name`` and ``theme_type`` exists, or if the default theme font size is set up (see :ref:`has_default_font_size<class_Theme_method_has_default_font_size>`).
 
-Returns ``false`` if the theme does not have ``theme_type``.
+Returns ``false`` if neither exist. Use :ref:`set_font_size<class_Theme_method_set_font_size>` to define the property.
 
 ----
 
@@ -592,9 +648,9 @@ Returns ``false`` if the theme does not have ``theme_type``.
 
 - :ref:`bool<class_bool>` **has_icon** **(** :ref:`StringName<class_StringName>` name, :ref:`StringName<class_StringName>` theme_type **)** |const|
 
-Returns ``true`` if icon :ref:`Texture2D<class_Texture2D>` with ``name`` is in ``theme_type``.
+Returns ``true`` if the icon property defined by ``name`` and ``theme_type`` exists.
 
-Returns ``false`` if the theme does not have ``theme_type``.
+Returns ``false`` if it doesn't exist. Use :ref:`set_icon<class_Theme_method_set_icon>` to define it.
 
 ----
 
@@ -602,9 +658,9 @@ Returns ``false`` if the theme does not have ``theme_type``.
 
 - :ref:`bool<class_bool>` **has_stylebox** **(** :ref:`StringName<class_StringName>` name, :ref:`StringName<class_StringName>` theme_type **)** |const|
 
-Returns ``true`` if :ref:`StyleBox<class_StyleBox>` with ``name`` is in ``theme_type``.
+Returns ``true`` if the :ref:`StyleBox<class_StyleBox>` property defined by ``name`` and ``theme_type`` exists.
 
-Returns ``false`` if the theme does not have ``theme_type``.
+Returns ``false`` if it doesn't exist. Use :ref:`set_stylebox<class_Theme_method_set_stylebox>` to define it.
 
 ----
 
@@ -612,9 +668,11 @@ Returns ``false`` if the theme does not have ``theme_type``.
 
 - :ref:`bool<class_bool>` **has_theme_item** **(** :ref:`DataType<enum_Theme_DataType>` data_type, :ref:`StringName<class_StringName>` name, :ref:`StringName<class_StringName>` theme_type **)** |const|
 
-Returns ``true`` if a theme item of ``data_type`` with ``name`` is in ``theme_type``.
+Returns ``true`` if the theme property of ``data_type`` defined by ``name`` and ``theme_type`` exists.
+
+Returns ``false`` if it doesn't exist. Use :ref:`set_theme_item<class_Theme_method_set_theme_item>` to define it.
 
-Returns ``false`` if the theme does not have ``theme_type``.
+\ **Note:** This method is analogous to calling the corresponding data type specific method, but can be used for more generalized logic.
 
 ----
 
@@ -622,7 +680,7 @@ Returns ``false`` if the theme does not have ``theme_type``.
 
 - :ref:`bool<class_bool>` **is_type_variation** **(** :ref:`StringName<class_StringName>` theme_type, :ref:`StringName<class_StringName>` base_type **)** |const|
 
-Returns ``true`` if ``theme_type`` is marked as a variation of ``base_type`` in this theme.
+Returns ``true`` if ``theme_type`` is marked as a variation of ``base_type``.
 
 ----
 
@@ -630,17 +688,27 @@ Returns ``true`` if ``theme_type`` is marked as a variation of ``base_type`` in
 
 - void **merge_with** **(** :ref:`Theme<class_Theme>` other **)**
 
-Adds missing and overrides existing definitions with values from the ``other`` ``Theme``.
+Adds missing and overrides existing definitions with values from the ``other`` theme resource.
 
 \ **Note:** This modifies the current theme. If you want to merge two themes together without modifying either one, create a new empty theme and merge the other two into it one after another.
 
 ----
 
+.. _class_Theme_method_remove_type:
+
+- void **remove_type** **(** :ref:`StringName<class_StringName>` theme_type **)**
+
+Removes the theme type, gracefully discarding defined theme items. If the type is a variation, this information is also erased. If the type is a base for type variations, those variations lose their base.
+
+----
+
 .. _class_Theme_method_rename_color:
 
 - void **rename_color** **(** :ref:`StringName<class_StringName>` old_name, :ref:`StringName<class_StringName>` name, :ref:`StringName<class_StringName>` theme_type **)**
 
-Renames the :ref:`Color<class_Color>` at ``old_name`` to ``name`` if the theme has ``theme_type``. If ``name`` is already taken, this method fails.
+Renames the :ref:`Color<class_Color>` property defined by ``old_name`` and ``theme_type`` to ``name``, if it exists.
+
+Fails if it doesn't exist, or if a similar property with the new name already exists. Use :ref:`has_color<class_Theme_method_has_color>` to check for existence, and :ref:`clear_color<class_Theme_method_clear_color>` to remove the existing property.
 
 ----
 
@@ -648,7 +716,9 @@ Renames the :ref:`Color<class_Color>` at ``old_name`` to ``name`` if the theme h
 
 - void **rename_constant** **(** :ref:`StringName<class_StringName>` old_name, :ref:`StringName<class_StringName>` name, :ref:`StringName<class_StringName>` theme_type **)**
 
-Renames the constant at ``old_name`` to ``name`` if the theme has ``theme_type``. If ``name`` is already taken, this method fails.
+Renames the constant property defined by ``old_name`` and ``theme_type`` to ``name``, if it exists.
+
+Fails if it doesn't exist, or if a similar property with the new name already exists. Use :ref:`has_constant<class_Theme_method_has_constant>` to check for existence, and :ref:`clear_constant<class_Theme_method_clear_constant>` to remove the existing property.
 
 ----
 
@@ -656,7 +726,9 @@ Renames the constant at ``old_name`` to ``name`` if the theme has ``theme_type``
 
 - void **rename_font** **(** :ref:`StringName<class_StringName>` old_name, :ref:`StringName<class_StringName>` name, :ref:`StringName<class_StringName>` theme_type **)**
 
-Renames the :ref:`Font<class_Font>` at ``old_name`` to ``name`` if the theme has ``theme_type``. If ``name`` is already taken, this method fails.
+Renames the :ref:`Font<class_Font>` property defined by ``old_name`` and ``theme_type`` to ``name``, if it exists.
+
+Fails if it doesn't exist, or if a similar property with the new name already exists. Use :ref:`has_font<class_Theme_method_has_font>` to check for existence, and :ref:`clear_font<class_Theme_method_clear_font>` to remove the existing property.
 
 ----
 
@@ -664,7 +736,9 @@ Renames the :ref:`Font<class_Font>` at ``old_name`` to ``name`` if the theme has
 
 - void **rename_font_size** **(** :ref:`StringName<class_StringName>` old_name, :ref:`StringName<class_StringName>` name, :ref:`StringName<class_StringName>` theme_type **)**
 
-Renames the font size ``old_name`` to ``name`` if the theme has ``theme_type``. If ``name`` is already taken, this method fails.
+Renames the font size property defined by ``old_name`` and ``theme_type`` to ``name``, if it exists.
+
+Fails if it doesn't exist, or if a similar property with the new name already exists. Use :ref:`has_font_size<class_Theme_method_has_font_size>` to check for existence, and :ref:`clear_font_size<class_Theme_method_clear_font_size>` to remove the existing property.
 
 ----
 
@@ -672,7 +746,9 @@ Renames the font size ``old_name`` to ``name`` if the theme has ``theme_type``.
 
 - void **rename_icon** **(** :ref:`StringName<class_StringName>` old_name, :ref:`StringName<class_StringName>` name, :ref:`StringName<class_StringName>` theme_type **)**
 
-Renames the icon at ``old_name`` to ``name`` if the theme has ``theme_type``. If ``name`` is already taken, this method fails.
+Renames the icon property defined by ``old_name`` and ``theme_type`` to ``name``, if it exists.
+
+Fails if it doesn't exist, or if a similar property with the new name already exists. Use :ref:`has_icon<class_Theme_method_has_icon>` to check for existence, and :ref:`clear_icon<class_Theme_method_clear_icon>` to remove the existing property.
 
 ----
 
@@ -680,7 +756,9 @@ Renames the icon at ``old_name`` to ``name`` if the theme has ``theme_type``. If
 
 - void **rename_stylebox** **(** :ref:`StringName<class_StringName>` old_name, :ref:`StringName<class_StringName>` name, :ref:`StringName<class_StringName>` theme_type **)**
 
-Renames :ref:`StyleBox<class_StyleBox>` at ``old_name`` to ``name`` if the theme has ``theme_type``. If ``name`` is already taken, this method fails.
+Renames the :ref:`StyleBox<class_StyleBox>` property defined by ``old_name`` and ``theme_type`` to ``name``, if it exists.
+
+Fails if it doesn't exist, or if a similar property with the new name already exists. Use :ref:`has_stylebox<class_Theme_method_has_stylebox>` to check for existence, and :ref:`clear_stylebox<class_Theme_method_clear_stylebox>` to remove the existing property.
 
 ----
 
@@ -688,7 +766,11 @@ Renames :ref:`StyleBox<class_StyleBox>` at ``old_name`` to ``name`` if the theme
 
 - void **rename_theme_item** **(** :ref:`DataType<enum_Theme_DataType>` data_type, :ref:`StringName<class_StringName>` old_name, :ref:`StringName<class_StringName>` name, :ref:`StringName<class_StringName>` theme_type **)**
 
-Renames the theme item of ``data_type`` at ``old_name`` to ``name`` if the theme has ``theme_type``. If ``name`` is already taken, this method fails.
+Renames the theme property of ``data_type`` defined by ``old_name`` and ``theme_type`` to ``name``, if it exists.
+
+Fails if it doesn't exist, or if a similar property with the new name already exists. Use :ref:`has_theme_item<class_Theme_method_has_theme_item>` to check for existence, and :ref:`clear_theme_item<class_Theme_method_clear_theme_item>` to remove the existing property.
+
+\ **Note:** This method is analogous to calling the corresponding data type specific method, but can be used for more generalized logic.
 
 ----
 
@@ -696,9 +778,7 @@ Renames the theme item of ``data_type`` at ``old_name`` to ``name`` if the theme
 
 - void **set_color** **(** :ref:`StringName<class_StringName>` name, :ref:`StringName<class_StringName>` theme_type, :ref:`Color<class_Color>` color **)**
 
-Sets the theme's :ref:`Color<class_Color>` to ``color`` at ``name`` in ``theme_type``.
-
-Creates ``theme_type`` if the theme does not have it.
+Creates or changes the value of the :ref:`Color<class_Color>` property defined by ``name`` and ``theme_type``. Use :ref:`clear_color<class_Theme_method_clear_color>` to remove the property.
 
 ----
 
@@ -706,9 +786,7 @@ Creates ``theme_type`` if the theme does not have it.
 
 - void **set_constant** **(** :ref:`StringName<class_StringName>` name, :ref:`StringName<class_StringName>` theme_type, :ref:`int<class_int>` constant **)**
 
-Sets the theme's constant to ``constant`` at ``name`` in ``theme_type``.
-
-Creates ``theme_type`` if the theme does not have it.
+Creates or changes the value of the constant property defined by ``name`` and ``theme_type``. Use :ref:`clear_constant<class_Theme_method_clear_constant>` to remove the property.
 
 ----
 
@@ -716,9 +794,7 @@ Creates ``theme_type`` if the theme does not have it.
 
 - void **set_font** **(** :ref:`StringName<class_StringName>` name, :ref:`StringName<class_StringName>` theme_type, :ref:`Font<class_Font>` font **)**
 
-Sets the theme's :ref:`Font<class_Font>` to ``font`` at ``name`` in ``theme_type``.
-
-Creates ``theme_type`` if the theme does not have it.
+Creates or changes the value of the :ref:`Font<class_Font>` property defined by ``name`` and ``theme_type``. Use :ref:`clear_font<class_Theme_method_clear_font>` to remove the property.
 
 ----
 
@@ -726,9 +802,7 @@ Creates ``theme_type`` if the theme does not have it.
 
 - void **set_font_size** **(** :ref:`StringName<class_StringName>` name, :ref:`StringName<class_StringName>` theme_type, :ref:`int<class_int>` font_size **)**
 
-Sets the theme's font size to ``font_size`` at ``name`` in ``theme_type``.
-
-Creates ``theme_type`` if the theme does not have it.
+Creates or changes the value of the font size property defined by ``name`` and ``theme_type``. Use :ref:`clear_font_size<class_Theme_method_clear_font_size>` to remove the property.
 
 ----
 
@@ -736,9 +810,7 @@ Creates ``theme_type`` if the theme does not have it.
 
 - void **set_icon** **(** :ref:`StringName<class_StringName>` name, :ref:`StringName<class_StringName>` theme_type, :ref:`Texture2D<class_Texture2D>` texture **)**
 
-Sets the theme's icon :ref:`Texture2D<class_Texture2D>` to ``texture`` at ``name`` in ``theme_type``.
-
-Creates ``theme_type`` if the theme does not have it.
+Creates or changes the value of the icon property defined by ``name`` and ``theme_type``. Use :ref:`clear_icon<class_Theme_method_clear_icon>` to remove the property.
 
 ----
 
@@ -746,9 +818,7 @@ Creates ``theme_type`` if the theme does not have it.
 
 - void **set_stylebox** **(** :ref:`StringName<class_StringName>` name, :ref:`StringName<class_StringName>` theme_type, :ref:`StyleBox<class_StyleBox>` texture **)**
 
-Sets theme's :ref:`StyleBox<class_StyleBox>` to ``stylebox`` at ``name`` in ``theme_type``.
-
-Creates ``theme_type`` if the theme does not have it.
+Creates or changes the value of the :ref:`StyleBox<class_StyleBox>` property defined by ``name`` and ``theme_type``. Use :ref:`clear_stylebox<class_Theme_method_clear_stylebox>` to remove the property.
 
 ----
 
@@ -756,11 +826,11 @@ Creates ``theme_type`` if the theme does not have it.
 
 - void **set_theme_item** **(** :ref:`DataType<enum_Theme_DataType>` data_type, :ref:`StringName<class_StringName>` name, :ref:`StringName<class_StringName>` theme_type, :ref:`Variant<class_Variant>` value **)**
 
-Sets the theme item of ``data_type`` to ``value`` at ``name`` in ``theme_type``.
+Creates or changes the value of the theme property of ``data_type`` defined by ``name`` and ``theme_type``. Use :ref:`clear_theme_item<class_Theme_method_clear_theme_item>` to remove the property.
 
-Does nothing if the ``value`` type does not match ``data_type``.
+Fails if the ``value`` type is not accepted by ``data_type``.
 
-Creates ``theme_type`` if the theme does not have it.
+\ **Note:** This method is analogous to calling the corresponding data type specific method, but can be used for more generalized logic.
 
 ----
 
@@ -768,13 +838,13 @@ Creates ``theme_type`` if the theme does not have it.
 
 - void **set_type_variation** **(** :ref:`StringName<class_StringName>` theme_type, :ref:`StringName<class_StringName>` base_type **)**
 
-Marks ``theme_type`` as being a variation of ``base_type``.
+Marks ``theme_type`` as a variation of ``base_type``.
 
 This adds ``theme_type`` as a suggested option for :ref:`Control.theme_type_variation<class_Control_property_theme_type_variation>` on a :ref:`Control<class_Control>` that is of the ``base_type`` class.
 
-Variations can also be nested, i.e. ``base_type`` can be another variation. If a chain of variations ends with a ``base_type`` matching a class of a :ref:`Control<class_Control>`, the whole chain is going to be suggested as options.
+Variations can also be nested, i.e. ``base_type`` can be another variation. If a chain of variations ends with a ``base_type`` matching the class of the :ref:`Control<class_Control>`, the whole chain is going to be suggested as options.
 
-\ **Note:** Suggestions only show up if this ``Theme`` is set as the project default theme. See :ref:`ProjectSettings.gui/theme/custom<class_ProjectSettings_property_gui/theme/custom>`.
+\ **Note:** Suggestions only show up if this theme resource is set as the project default theme. See :ref:`ProjectSettings.gui/theme/custom<class_ProjectSettings_property_gui/theme/custom>`.
 
 .. |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.)`

+ 13 - 1
classes/class_translationserver.rst

@@ -60,6 +60,8 @@ Methods
 +---------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`String<class_String>`                       | :ref:`get_script_name<class_TranslationServer_method_get_script_name>` **(** :ref:`String<class_String>` script **)** |const|                                                                                                                                         |
 +---------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`                       | :ref:`get_tool_locale<class_TranslationServer_method_get_tool_locale>` **(** **)**                                                                                                                                                                                    |
++---------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`Translation<class_Translation>`             | :ref:`get_translation_object<class_TranslationServer_method_get_translation_object>` **(** :ref:`String<class_String>` locale **)**                                                                                                                                   |
 +---------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`StringName<class_StringName>`               | :ref:`pseudolocalize<class_TranslationServer_method_pseudolocalize>` **(** :ref:`StringName<class_StringName>` message **)** |const|                                                                                                                                  |
@@ -195,6 +197,16 @@ Returns readable script name for the ``script`` code.
 
 ----
 
+.. _class_TranslationServer_method_get_tool_locale:
+
+- :ref:`String<class_String>` **get_tool_locale** **(** **)**
+
+Returns the current locale of the editor.
+
+\ **Note:** When called from an exported project returns the same value as :ref:`get_locale<class_TranslationServer_method_get_locale>`.
+
+----
+
 .. _class_TranslationServer_method_get_translation_object:
 
 - :ref:`Translation<class_Translation>` **get_translation_object** **(** :ref:`String<class_String>` locale **)**
@@ -243,7 +255,7 @@ If translations have been loaded beforehand for the new locale, they will be app
 
 - :ref:`String<class_String>` **standardize_locale** **(** :ref:`String<class_String>` locale **)** |const|
 
-Retunrs ``locale`` string standardized to match known locales (e.g. ``en-US`` would be matched to ``en_US``).
+Returns ``locale`` string standardized to match known locales (e.g. ``en-US`` would be matched to ``en_US``).
 
 ----
 

+ 12 - 2
classes/class_tree.rst

@@ -94,6 +94,8 @@ Methods
 +--------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                                             | :ref:`ensure_cursor_is_visible<class_Tree_method_ensure_cursor_is_visible>` **(** **)**                                                                                                              |
 +--------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                            | :ref:`get_button_id_at_position<class_Tree_method_get_button_id_at_position>` **(** :ref:`Vector2<class_Vector2>` position **)** |const|                                                             |
++--------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`int<class_int>`                            | :ref:`get_column_at_position<class_Tree_method_get_column_at_position>` **(** :ref:`Vector2<class_Vector2>` position **)** |const|                                                                   |
 +--------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`int<class_int>`                            | :ref:`get_column_expand_ratio<class_Tree_method_get_column_expand_ratio>` **(** :ref:`int<class_int>` column **)** |const|                                                                           |
@@ -136,7 +138,7 @@ Methods
 +--------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`bool<class_bool>`                          | :ref:`is_column_expanding<class_Tree_method_is_column_expanding>` **(** :ref:`int<class_int>` column **)** |const|                                                                                   |
 +--------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                             | :ref:`scroll_to_item<class_Tree_method_scroll_to_item>` **(** :ref:`TreeItem<class_TreeItem>` item **)**                                                                                             |
+| void                                             | :ref:`scroll_to_item<class_Tree_method_scroll_to_item>` **(** :ref:`TreeItem<class_TreeItem>` item, :ref:`bool<class_bool>` center_on_item=false **)**                                               |
 +--------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                                             | :ref:`set_column_clip_content<class_Tree_method_set_column_clip_content>` **(** :ref:`int<class_int>` column, :ref:`bool<class_bool>` enable **)**                                                   |
 +--------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
@@ -654,6 +656,14 @@ This will scroll the tree if necessary. In :ref:`SELECT_ROW<class_Tree_constant_
 
 ----
 
+.. _class_Tree_method_get_button_id_at_position:
+
+- :ref:`int<class_int>` **get_button_id_at_position** **(** :ref:`Vector2<class_Vector2>` position **)** |const|
+
+Returns the button id at ``position``, or -1 if no button is there.
+
+----
+
 .. _class_Tree_method_get_column_at_position:
 
 - :ref:`int<class_int>` **get_column_at_position** **(** :ref:`Vector2<class_Vector2>` position **)** |const|
@@ -857,7 +867,7 @@ To tell whether a column of an item is selected, use :ref:`TreeItem.is_selected<
 
 .. _class_Tree_method_scroll_to_item:
 
-- void **scroll_to_item** **(** :ref:`TreeItem<class_TreeItem>` item **)**
+- void **scroll_to_item** **(** :ref:`TreeItem<class_TreeItem>` item, :ref:`bool<class_bool>` center_on_item=false **)**
 
 Causes the ``Tree`` to jump to the specified :ref:`TreeItem<class_TreeItem>`.
 

+ 198 - 178
classes/class_treeitem.rst

@@ -34,181 +34,185 @@ Properties
 Methods
 -------
 
-+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                              | :ref:`add_button<class_TreeItem_method_add_button>` **(** :ref:`int<class_int>` column, :ref:`Texture2D<class_Texture2D>` button, :ref:`int<class_int>` button_idx=-1, :ref:`bool<class_bool>` disabled=false, :ref:`String<class_String>` tooltip="" **)** |
-+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Variant<class_Variant>`                                     | :ref:`call_recursive<class_TreeItem_method_call_recursive>` **(** :ref:`StringName<class_StringName>` method, ... **)** |vararg|                                                                                                                            |
-+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                              | :ref:`clear_custom_bg_color<class_TreeItem_method_clear_custom_bg_color>` **(** :ref:`int<class_int>` column **)**                                                                                                                                          |
-+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                              | :ref:`clear_custom_color<class_TreeItem_method_clear_custom_color>` **(** :ref:`int<class_int>` column **)**                                                                                                                                                |
-+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                              | :ref:`clear_opentype_features<class_TreeItem_method_clear_opentype_features>` **(** :ref:`int<class_int>` column **)**                                                                                                                                      |
-+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`TreeItem<class_TreeItem>`                                   | :ref:`create_child<class_TreeItem_method_create_child>` **(** :ref:`int<class_int>` idx=-1 **)**                                                                                                                                                            |
-+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                              | :ref:`deselect<class_TreeItem_method_deselect>` **(** :ref:`int<class_int>` column **)**                                                                                                                                                                    |
-+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                              | :ref:`erase_button<class_TreeItem_method_erase_button>` **(** :ref:`int<class_int>` column, :ref:`int<class_int>` button_idx **)**                                                                                                                          |
-+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Texture2D<class_Texture2D>`                                 | :ref:`get_button<class_TreeItem_method_get_button>` **(** :ref:`int<class_int>` column, :ref:`int<class_int>` button_idx **)** |const|                                                                                                                      |
-+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                                             | :ref:`get_button_count<class_TreeItem_method_get_button_count>` **(** :ref:`int<class_int>` column **)** |const|                                                                                                                                            |
-+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_String>`                                       | :ref:`get_button_tooltip<class_TreeItem_method_get_button_tooltip>` **(** :ref:`int<class_int>` column, :ref:`int<class_int>` button_idx **)** |const|                                                                                                      |
-+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`TreeCellMode<enum_TreeItem_TreeCellMode>`                   | :ref:`get_cell_mode<class_TreeItem_method_get_cell_mode>` **(** :ref:`int<class_int>` column **)** |const|                                                                                                                                                  |
-+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`TreeItem<class_TreeItem>`                                   | :ref:`get_child<class_TreeItem_method_get_child>` **(** :ref:`int<class_int>` idx **)**                                                                                                                                                                     |
-+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                                             | :ref:`get_child_count<class_TreeItem_method_get_child_count>` **(** **)**                                                                                                                                                                                   |
-+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Array<class_Array>`                                         | :ref:`get_children<class_TreeItem_method_get_children>` **(** **)**                                                                                                                                                                                         |
-+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Color<class_Color>`                                         | :ref:`get_custom_bg_color<class_TreeItem_method_get_custom_bg_color>` **(** :ref:`int<class_int>` column **)** |const|                                                                                                                                      |
-+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Color<class_Color>`                                         | :ref:`get_custom_color<class_TreeItem_method_get_custom_color>` **(** :ref:`int<class_int>` column **)** |const|                                                                                                                                            |
-+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Font<class_Font>`                                           | :ref:`get_custom_font<class_TreeItem_method_get_custom_font>` **(** :ref:`int<class_int>` column **)** |const|                                                                                                                                              |
-+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                                             | :ref:`get_custom_font_size<class_TreeItem_method_get_custom_font_size>` **(** :ref:`int<class_int>` column **)** |const|                                                                                                                                    |
-+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                                           | :ref:`get_expand_right<class_TreeItem_method_get_expand_right>` **(** :ref:`int<class_int>` column **)** |const|                                                                                                                                            |
-+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`TreeItem<class_TreeItem>`                                   | :ref:`get_first_child<class_TreeItem_method_get_first_child>` **(** **)** |const|                                                                                                                                                                           |
-+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Texture2D<class_Texture2D>`                                 | :ref:`get_icon<class_TreeItem_method_get_icon>` **(** :ref:`int<class_int>` column **)** |const|                                                                                                                                                            |
-+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                                             | :ref:`get_icon_max_width<class_TreeItem_method_get_icon_max_width>` **(** :ref:`int<class_int>` column **)** |const|                                                                                                                                        |
-+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Color<class_Color>`                                         | :ref:`get_icon_modulate<class_TreeItem_method_get_icon_modulate>` **(** :ref:`int<class_int>` column **)** |const|                                                                                                                                          |
-+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Rect2<class_Rect2>`                                         | :ref:`get_icon_region<class_TreeItem_method_get_icon_region>` **(** :ref:`int<class_int>` column **)** |const|                                                                                                                                              |
-+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                                             | :ref:`get_index<class_TreeItem_method_get_index>` **(** **)**                                                                                                                                                                                               |
-+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_String>`                                       | :ref:`get_language<class_TreeItem_method_get_language>` **(** :ref:`int<class_int>` column **)** |const|                                                                                                                                                    |
-+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Variant<class_Variant>`                                     | :ref:`get_metadata<class_TreeItem_method_get_metadata>` **(** :ref:`int<class_int>` column **)** |const|                                                                                                                                                    |
-+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`TreeItem<class_TreeItem>`                                   | :ref:`get_next<class_TreeItem_method_get_next>` **(** **)** |const|                                                                                                                                                                                         |
-+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`TreeItem<class_TreeItem>`                                   | :ref:`get_next_visible<class_TreeItem_method_get_next_visible>` **(** :ref:`bool<class_bool>` wrap=false **)**                                                                                                                                              |
-+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                                             | :ref:`get_opentype_feature<class_TreeItem_method_get_opentype_feature>` **(** :ref:`int<class_int>` column, :ref:`String<class_String>` tag **)** |const|                                                                                                   |
-+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`TreeItem<class_TreeItem>`                                   | :ref:`get_parent<class_TreeItem_method_get_parent>` **(** **)** |const|                                                                                                                                                                                     |
-+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`TreeItem<class_TreeItem>`                                   | :ref:`get_prev<class_TreeItem_method_get_prev>` **(** **)**                                                                                                                                                                                                 |
-+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`TreeItem<class_TreeItem>`                                   | :ref:`get_prev_visible<class_TreeItem_method_get_prev_visible>` **(** :ref:`bool<class_bool>` wrap=false **)**                                                                                                                                              |
-+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                                         | :ref:`get_range<class_TreeItem_method_get_range>` **(** :ref:`int<class_int>` column **)** |const|                                                                                                                                                          |
-+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Dictionary<class_Dictionary>`                               | :ref:`get_range_config<class_TreeItem_method_get_range_config>` **(** :ref:`int<class_int>` column **)**                                                                                                                                                    |
-+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`StructuredTextParser<enum_Control_StructuredTextParser>`    | :ref:`get_structured_text_bidi_override<class_TreeItem_method_get_structured_text_bidi_override>` **(** :ref:`int<class_int>` column **)** |const|                                                                                                          |
-+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Array<class_Array>`                                         | :ref:`get_structured_text_bidi_override_options<class_TreeItem_method_get_structured_text_bidi_override_options>` **(** :ref:`int<class_int>` column **)** |const|                                                                                          |
-+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_String>`                                       | :ref:`get_suffix<class_TreeItem_method_get_suffix>` **(** :ref:`int<class_int>` column **)** |const|                                                                                                                                                        |
-+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_String>`                                       | :ref:`get_text<class_TreeItem_method_get_text>` **(** :ref:`int<class_int>` column **)** |const|                                                                                                                                                            |
-+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`HorizontalAlignment<enum_@GlobalScope_HorizontalAlignment>` | :ref:`get_text_alignment<class_TreeItem_method_get_text_alignment>` **(** :ref:`int<class_int>` column **)** |const|                                                                                                                                        |
-+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`TextDirection<enum_Control_TextDirection>`                  | :ref:`get_text_direction<class_TreeItem_method_get_text_direction>` **(** :ref:`int<class_int>` column **)** |const|                                                                                                                                        |
-+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_String>`                                       | :ref:`get_tooltip<class_TreeItem_method_get_tooltip>` **(** :ref:`int<class_int>` column **)** |const|                                                                                                                                                      |
-+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Tree<class_Tree>`                                           | :ref:`get_tree<class_TreeItem_method_get_tree>` **(** **)** |const|                                                                                                                                                                                         |
-+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                                           | :ref:`is_button_disabled<class_TreeItem_method_is_button_disabled>` **(** :ref:`int<class_int>` column, :ref:`int<class_int>` button_idx **)** |const|                                                                                                      |
-+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                                           | :ref:`is_checked<class_TreeItem_method_is_checked>` **(** :ref:`int<class_int>` column **)** |const|                                                                                                                                                        |
-+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                                           | :ref:`is_custom_set_as_button<class_TreeItem_method_is_custom_set_as_button>` **(** :ref:`int<class_int>` column **)** |const|                                                                                                                              |
-+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                                           | :ref:`is_editable<class_TreeItem_method_is_editable>` **(** :ref:`int<class_int>` column **)**                                                                                                                                                              |
-+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                                           | :ref:`is_indeterminate<class_TreeItem_method_is_indeterminate>` **(** :ref:`int<class_int>` column **)** |const|                                                                                                                                            |
-+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                                           | :ref:`is_selectable<class_TreeItem_method_is_selectable>` **(** :ref:`int<class_int>` column **)** |const|                                                                                                                                                  |
-+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                                           | :ref:`is_selected<class_TreeItem_method_is_selected>` **(** :ref:`int<class_int>` column **)**                                                                                                                                                              |
-+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                              | :ref:`move_after<class_TreeItem_method_move_after>` **(** :ref:`TreeItem<class_TreeItem>` item **)**                                                                                                                                                        |
-+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                              | :ref:`move_before<class_TreeItem_method_move_before>` **(** :ref:`TreeItem<class_TreeItem>` item **)**                                                                                                                                                      |
-+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                              | :ref:`propagate_check<class_TreeItem_method_propagate_check>` **(** :ref:`int<class_int>` column, :ref:`bool<class_bool>` emit_signal=true **)**                                                                                                            |
-+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                              | :ref:`remove_child<class_TreeItem_method_remove_child>` **(** :ref:`TreeItem<class_TreeItem>` child **)**                                                                                                                                                   |
-+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                              | :ref:`select<class_TreeItem_method_select>` **(** :ref:`int<class_int>` column **)**                                                                                                                                                                        |
-+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                              | :ref:`set_button<class_TreeItem_method_set_button>` **(** :ref:`int<class_int>` column, :ref:`int<class_int>` button_idx, :ref:`Texture2D<class_Texture2D>` button **)**                                                                                    |
-+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                              | :ref:`set_button_disabled<class_TreeItem_method_set_button_disabled>` **(** :ref:`int<class_int>` column, :ref:`int<class_int>` button_idx, :ref:`bool<class_bool>` disabled **)**                                                                          |
-+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                              | :ref:`set_cell_mode<class_TreeItem_method_set_cell_mode>` **(** :ref:`int<class_int>` column, :ref:`TreeCellMode<enum_TreeItem_TreeCellMode>` mode **)**                                                                                                    |
-+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                              | :ref:`set_checked<class_TreeItem_method_set_checked>` **(** :ref:`int<class_int>` column, :ref:`bool<class_bool>` checked **)**                                                                                                                             |
-+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                              | :ref:`set_custom_as_button<class_TreeItem_method_set_custom_as_button>` **(** :ref:`int<class_int>` column, :ref:`bool<class_bool>` enable **)**                                                                                                            |
-+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                              | :ref:`set_custom_bg_color<class_TreeItem_method_set_custom_bg_color>` **(** :ref:`int<class_int>` column, :ref:`Color<class_Color>` color, :ref:`bool<class_bool>` just_outline=false **)**                                                                 |
-+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                              | :ref:`set_custom_color<class_TreeItem_method_set_custom_color>` **(** :ref:`int<class_int>` column, :ref:`Color<class_Color>` color **)**                                                                                                                   |
-+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                              | :ref:`set_custom_draw<class_TreeItem_method_set_custom_draw>` **(** :ref:`int<class_int>` column, :ref:`Object<class_Object>` object, :ref:`StringName<class_StringName>` callback **)**                                                                    |
-+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                              | :ref:`set_custom_font<class_TreeItem_method_set_custom_font>` **(** :ref:`int<class_int>` column, :ref:`Font<class_Font>` font **)**                                                                                                                        |
-+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                              | :ref:`set_custom_font_size<class_TreeItem_method_set_custom_font_size>` **(** :ref:`int<class_int>` column, :ref:`int<class_int>` font_size **)**                                                                                                           |
-+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                              | :ref:`set_editable<class_TreeItem_method_set_editable>` **(** :ref:`int<class_int>` column, :ref:`bool<class_bool>` enabled **)**                                                                                                                           |
-+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                              | :ref:`set_expand_right<class_TreeItem_method_set_expand_right>` **(** :ref:`int<class_int>` column, :ref:`bool<class_bool>` enable **)**                                                                                                                    |
-+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                              | :ref:`set_icon<class_TreeItem_method_set_icon>` **(** :ref:`int<class_int>` column, :ref:`Texture2D<class_Texture2D>` texture **)**                                                                                                                         |
-+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                              | :ref:`set_icon_max_width<class_TreeItem_method_set_icon_max_width>` **(** :ref:`int<class_int>` column, :ref:`int<class_int>` width **)**                                                                                                                   |
-+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                              | :ref:`set_icon_modulate<class_TreeItem_method_set_icon_modulate>` **(** :ref:`int<class_int>` column, :ref:`Color<class_Color>` modulate **)**                                                                                                              |
-+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                              | :ref:`set_icon_region<class_TreeItem_method_set_icon_region>` **(** :ref:`int<class_int>` column, :ref:`Rect2<class_Rect2>` region **)**                                                                                                                    |
-+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                              | :ref:`set_indeterminate<class_TreeItem_method_set_indeterminate>` **(** :ref:`int<class_int>` column, :ref:`bool<class_bool>` indeterminate **)**                                                                                                           |
-+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                              | :ref:`set_language<class_TreeItem_method_set_language>` **(** :ref:`int<class_int>` column, :ref:`String<class_String>` language **)**                                                                                                                      |
-+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                              | :ref:`set_metadata<class_TreeItem_method_set_metadata>` **(** :ref:`int<class_int>` column, :ref:`Variant<class_Variant>` meta **)**                                                                                                                        |
-+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                              | :ref:`set_opentype_feature<class_TreeItem_method_set_opentype_feature>` **(** :ref:`int<class_int>` column, :ref:`String<class_String>` tag, :ref:`int<class_int>` value **)**                                                                              |
-+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                              | :ref:`set_range<class_TreeItem_method_set_range>` **(** :ref:`int<class_int>` column, :ref:`float<class_float>` value **)**                                                                                                                                 |
-+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                              | :ref:`set_range_config<class_TreeItem_method_set_range_config>` **(** :ref:`int<class_int>` column, :ref:`float<class_float>` min, :ref:`float<class_float>` max, :ref:`float<class_float>` step, :ref:`bool<class_bool>` expr=false **)**                  |
-+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                              | :ref:`set_selectable<class_TreeItem_method_set_selectable>` **(** :ref:`int<class_int>` column, :ref:`bool<class_bool>` selectable **)**                                                                                                                    |
-+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                              | :ref:`set_structured_text_bidi_override<class_TreeItem_method_set_structured_text_bidi_override>` **(** :ref:`int<class_int>` column, :ref:`StructuredTextParser<enum_Control_StructuredTextParser>` parser **)**                                           |
-+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                              | :ref:`set_structured_text_bidi_override_options<class_TreeItem_method_set_structured_text_bidi_override_options>` **(** :ref:`int<class_int>` column, :ref:`Array<class_Array>` args **)**                                                                  |
-+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                              | :ref:`set_suffix<class_TreeItem_method_set_suffix>` **(** :ref:`int<class_int>` column, :ref:`String<class_String>` text **)**                                                                                                                              |
-+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                              | :ref:`set_text<class_TreeItem_method_set_text>` **(** :ref:`int<class_int>` column, :ref:`String<class_String>` text **)**                                                                                                                                  |
-+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                              | :ref:`set_text_alignment<class_TreeItem_method_set_text_alignment>` **(** :ref:`int<class_int>` column, :ref:`HorizontalAlignment<enum_@GlobalScope_HorizontalAlignment>` text_alignment **)**                                                              |
-+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                              | :ref:`set_text_direction<class_TreeItem_method_set_text_direction>` **(** :ref:`int<class_int>` column, :ref:`TextDirection<enum_Control_TextDirection>` direction **)**                                                                                    |
-+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                              | :ref:`set_tooltip<class_TreeItem_method_set_tooltip>` **(** :ref:`int<class_int>` column, :ref:`String<class_String>` tooltip **)**                                                                                                                         |
-+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                              | :ref:`uncollapse_tree<class_TreeItem_method_uncollapse_tree>` **(** **)**                                                                                                                                                                                   |
-+-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
++-------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                              | :ref:`add_button<class_TreeItem_method_add_button>` **(** :ref:`int<class_int>` column, :ref:`Texture2D<class_Texture2D>` button, :ref:`int<class_int>` id=-1, :ref:`bool<class_bool>` disabled=false, :ref:`String<class_String>` tooltip="" **)** |
++-------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Variant<class_Variant>`                                     | :ref:`call_recursive<class_TreeItem_method_call_recursive>` **(** :ref:`StringName<class_StringName>` method, ... **)** |vararg|                                                                                                                    |
++-------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                              | :ref:`clear_custom_bg_color<class_TreeItem_method_clear_custom_bg_color>` **(** :ref:`int<class_int>` column **)**                                                                                                                                  |
++-------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                              | :ref:`clear_custom_color<class_TreeItem_method_clear_custom_color>` **(** :ref:`int<class_int>` column **)**                                                                                                                                        |
++-------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                              | :ref:`clear_opentype_features<class_TreeItem_method_clear_opentype_features>` **(** :ref:`int<class_int>` column **)**                                                                                                                              |
++-------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`TreeItem<class_TreeItem>`                                   | :ref:`create_child<class_TreeItem_method_create_child>` **(** :ref:`int<class_int>` idx=-1 **)**                                                                                                                                                    |
++-------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                              | :ref:`deselect<class_TreeItem_method_deselect>` **(** :ref:`int<class_int>` column **)**                                                                                                                                                            |
++-------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                              | :ref:`erase_button<class_TreeItem_method_erase_button>` **(** :ref:`int<class_int>` column, :ref:`int<class_int>` button_idx **)**                                                                                                                  |
++-------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Texture2D<class_Texture2D>`                                 | :ref:`get_button<class_TreeItem_method_get_button>` **(** :ref:`int<class_int>` column, :ref:`int<class_int>` button_idx **)** |const|                                                                                                              |
++-------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                                             | :ref:`get_button_by_id<class_TreeItem_method_get_button_by_id>` **(** :ref:`int<class_int>` column, :ref:`int<class_int>` id **)** |const|                                                                                                          |
++-------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                                             | :ref:`get_button_count<class_TreeItem_method_get_button_count>` **(** :ref:`int<class_int>` column **)** |const|                                                                                                                                    |
++-------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                                             | :ref:`get_button_id<class_TreeItem_method_get_button_id>` **(** :ref:`int<class_int>` column, :ref:`int<class_int>` button_idx **)** |const|                                                                                                        |
++-------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`                                       | :ref:`get_button_tooltip<class_TreeItem_method_get_button_tooltip>` **(** :ref:`int<class_int>` column, :ref:`int<class_int>` button_idx **)** |const|                                                                                              |
++-------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`TreeCellMode<enum_TreeItem_TreeCellMode>`                   | :ref:`get_cell_mode<class_TreeItem_method_get_cell_mode>` **(** :ref:`int<class_int>` column **)** |const|                                                                                                                                          |
++-------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`TreeItem<class_TreeItem>`                                   | :ref:`get_child<class_TreeItem_method_get_child>` **(** :ref:`int<class_int>` idx **)**                                                                                                                                                             |
++-------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                                             | :ref:`get_child_count<class_TreeItem_method_get_child_count>` **(** **)**                                                                                                                                                                           |
++-------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Array<class_Array>`                                         | :ref:`get_children<class_TreeItem_method_get_children>` **(** **)**                                                                                                                                                                                 |
++-------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Color<class_Color>`                                         | :ref:`get_custom_bg_color<class_TreeItem_method_get_custom_bg_color>` **(** :ref:`int<class_int>` column **)** |const|                                                                                                                              |
++-------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Color<class_Color>`                                         | :ref:`get_custom_color<class_TreeItem_method_get_custom_color>` **(** :ref:`int<class_int>` column **)** |const|                                                                                                                                    |
++-------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Font<class_Font>`                                           | :ref:`get_custom_font<class_TreeItem_method_get_custom_font>` **(** :ref:`int<class_int>` column **)** |const|                                                                                                                                      |
++-------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                                             | :ref:`get_custom_font_size<class_TreeItem_method_get_custom_font_size>` **(** :ref:`int<class_int>` column **)** |const|                                                                                                                            |
++-------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                                           | :ref:`get_expand_right<class_TreeItem_method_get_expand_right>` **(** :ref:`int<class_int>` column **)** |const|                                                                                                                                    |
++-------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`TreeItem<class_TreeItem>`                                   | :ref:`get_first_child<class_TreeItem_method_get_first_child>` **(** **)** |const|                                                                                                                                                                   |
++-------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Texture2D<class_Texture2D>`                                 | :ref:`get_icon<class_TreeItem_method_get_icon>` **(** :ref:`int<class_int>` column **)** |const|                                                                                                                                                    |
++-------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                                             | :ref:`get_icon_max_width<class_TreeItem_method_get_icon_max_width>` **(** :ref:`int<class_int>` column **)** |const|                                                                                                                                |
++-------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Color<class_Color>`                                         | :ref:`get_icon_modulate<class_TreeItem_method_get_icon_modulate>` **(** :ref:`int<class_int>` column **)** |const|                                                                                                                                  |
++-------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Rect2<class_Rect2>`                                         | :ref:`get_icon_region<class_TreeItem_method_get_icon_region>` **(** :ref:`int<class_int>` column **)** |const|                                                                                                                                      |
++-------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                                             | :ref:`get_index<class_TreeItem_method_get_index>` **(** **)**                                                                                                                                                                                       |
++-------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`                                       | :ref:`get_language<class_TreeItem_method_get_language>` **(** :ref:`int<class_int>` column **)** |const|                                                                                                                                            |
++-------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Variant<class_Variant>`                                     | :ref:`get_metadata<class_TreeItem_method_get_metadata>` **(** :ref:`int<class_int>` column **)** |const|                                                                                                                                            |
++-------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`TreeItem<class_TreeItem>`                                   | :ref:`get_next<class_TreeItem_method_get_next>` **(** **)** |const|                                                                                                                                                                                 |
++-------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`TreeItem<class_TreeItem>`                                   | :ref:`get_next_visible<class_TreeItem_method_get_next_visible>` **(** :ref:`bool<class_bool>` wrap=false **)**                                                                                                                                      |
++-------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                                             | :ref:`get_opentype_feature<class_TreeItem_method_get_opentype_feature>` **(** :ref:`int<class_int>` column, :ref:`String<class_String>` tag **)** |const|                                                                                           |
++-------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`TreeItem<class_TreeItem>`                                   | :ref:`get_parent<class_TreeItem_method_get_parent>` **(** **)** |const|                                                                                                                                                                             |
++-------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`TreeItem<class_TreeItem>`                                   | :ref:`get_prev<class_TreeItem_method_get_prev>` **(** **)**                                                                                                                                                                                         |
++-------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`TreeItem<class_TreeItem>`                                   | :ref:`get_prev_visible<class_TreeItem_method_get_prev_visible>` **(** :ref:`bool<class_bool>` wrap=false **)**                                                                                                                                      |
++-------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                                         | :ref:`get_range<class_TreeItem_method_get_range>` **(** :ref:`int<class_int>` column **)** |const|                                                                                                                                                  |
++-------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Dictionary<class_Dictionary>`                               | :ref:`get_range_config<class_TreeItem_method_get_range_config>` **(** :ref:`int<class_int>` column **)**                                                                                                                                            |
++-------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`StructuredTextParser<enum_Control_StructuredTextParser>`    | :ref:`get_structured_text_bidi_override<class_TreeItem_method_get_structured_text_bidi_override>` **(** :ref:`int<class_int>` column **)** |const|                                                                                                  |
++-------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Array<class_Array>`                                         | :ref:`get_structured_text_bidi_override_options<class_TreeItem_method_get_structured_text_bidi_override_options>` **(** :ref:`int<class_int>` column **)** |const|                                                                                  |
++-------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`                                       | :ref:`get_suffix<class_TreeItem_method_get_suffix>` **(** :ref:`int<class_int>` column **)** |const|                                                                                                                                                |
++-------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`                                       | :ref:`get_text<class_TreeItem_method_get_text>` **(** :ref:`int<class_int>` column **)** |const|                                                                                                                                                    |
++-------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`HorizontalAlignment<enum_@GlobalScope_HorizontalAlignment>` | :ref:`get_text_alignment<class_TreeItem_method_get_text_alignment>` **(** :ref:`int<class_int>` column **)** |const|                                                                                                                                |
++-------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`TextDirection<enum_Control_TextDirection>`                  | :ref:`get_text_direction<class_TreeItem_method_get_text_direction>` **(** :ref:`int<class_int>` column **)** |const|                                                                                                                                |
++-------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`                                       | :ref:`get_tooltip<class_TreeItem_method_get_tooltip>` **(** :ref:`int<class_int>` column **)** |const|                                                                                                                                              |
++-------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Tree<class_Tree>`                                           | :ref:`get_tree<class_TreeItem_method_get_tree>` **(** **)** |const|                                                                                                                                                                                 |
++-------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                                           | :ref:`is_button_disabled<class_TreeItem_method_is_button_disabled>` **(** :ref:`int<class_int>` column, :ref:`int<class_int>` button_idx **)** |const|                                                                                              |
++-------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                                           | :ref:`is_checked<class_TreeItem_method_is_checked>` **(** :ref:`int<class_int>` column **)** |const|                                                                                                                                                |
++-------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                                           | :ref:`is_custom_set_as_button<class_TreeItem_method_is_custom_set_as_button>` **(** :ref:`int<class_int>` column **)** |const|                                                                                                                      |
++-------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                                           | :ref:`is_editable<class_TreeItem_method_is_editable>` **(** :ref:`int<class_int>` column **)**                                                                                                                                                      |
++-------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                                           | :ref:`is_indeterminate<class_TreeItem_method_is_indeterminate>` **(** :ref:`int<class_int>` column **)** |const|                                                                                                                                    |
++-------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                                           | :ref:`is_selectable<class_TreeItem_method_is_selectable>` **(** :ref:`int<class_int>` column **)** |const|                                                                                                                                          |
++-------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                                           | :ref:`is_selected<class_TreeItem_method_is_selected>` **(** :ref:`int<class_int>` column **)**                                                                                                                                                      |
++-------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                              | :ref:`move_after<class_TreeItem_method_move_after>` **(** :ref:`TreeItem<class_TreeItem>` item **)**                                                                                                                                                |
++-------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                              | :ref:`move_before<class_TreeItem_method_move_before>` **(** :ref:`TreeItem<class_TreeItem>` item **)**                                                                                                                                              |
++-------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                              | :ref:`propagate_check<class_TreeItem_method_propagate_check>` **(** :ref:`int<class_int>` column, :ref:`bool<class_bool>` emit_signal=true **)**                                                                                                    |
++-------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                              | :ref:`remove_child<class_TreeItem_method_remove_child>` **(** :ref:`TreeItem<class_TreeItem>` child **)**                                                                                                                                           |
++-------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                              | :ref:`select<class_TreeItem_method_select>` **(** :ref:`int<class_int>` column **)**                                                                                                                                                                |
++-------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                              | :ref:`set_button<class_TreeItem_method_set_button>` **(** :ref:`int<class_int>` column, :ref:`int<class_int>` button_idx, :ref:`Texture2D<class_Texture2D>` button **)**                                                                            |
++-------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                              | :ref:`set_button_disabled<class_TreeItem_method_set_button_disabled>` **(** :ref:`int<class_int>` column, :ref:`int<class_int>` button_idx, :ref:`bool<class_bool>` disabled **)**                                                                  |
++-------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                              | :ref:`set_cell_mode<class_TreeItem_method_set_cell_mode>` **(** :ref:`int<class_int>` column, :ref:`TreeCellMode<enum_TreeItem_TreeCellMode>` mode **)**                                                                                            |
++-------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                              | :ref:`set_checked<class_TreeItem_method_set_checked>` **(** :ref:`int<class_int>` column, :ref:`bool<class_bool>` checked **)**                                                                                                                     |
++-------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                              | :ref:`set_custom_as_button<class_TreeItem_method_set_custom_as_button>` **(** :ref:`int<class_int>` column, :ref:`bool<class_bool>` enable **)**                                                                                                    |
++-------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                              | :ref:`set_custom_bg_color<class_TreeItem_method_set_custom_bg_color>` **(** :ref:`int<class_int>` column, :ref:`Color<class_Color>` color, :ref:`bool<class_bool>` just_outline=false **)**                                                         |
++-------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                              | :ref:`set_custom_color<class_TreeItem_method_set_custom_color>` **(** :ref:`int<class_int>` column, :ref:`Color<class_Color>` color **)**                                                                                                           |
++-------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                              | :ref:`set_custom_draw<class_TreeItem_method_set_custom_draw>` **(** :ref:`int<class_int>` column, :ref:`Object<class_Object>` object, :ref:`StringName<class_StringName>` callback **)**                                                            |
++-------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                              | :ref:`set_custom_font<class_TreeItem_method_set_custom_font>` **(** :ref:`int<class_int>` column, :ref:`Font<class_Font>` font **)**                                                                                                                |
++-------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                              | :ref:`set_custom_font_size<class_TreeItem_method_set_custom_font_size>` **(** :ref:`int<class_int>` column, :ref:`int<class_int>` font_size **)**                                                                                                   |
++-------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                              | :ref:`set_editable<class_TreeItem_method_set_editable>` **(** :ref:`int<class_int>` column, :ref:`bool<class_bool>` enabled **)**                                                                                                                   |
++-------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                              | :ref:`set_expand_right<class_TreeItem_method_set_expand_right>` **(** :ref:`int<class_int>` column, :ref:`bool<class_bool>` enable **)**                                                                                                            |
++-------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                              | :ref:`set_icon<class_TreeItem_method_set_icon>` **(** :ref:`int<class_int>` column, :ref:`Texture2D<class_Texture2D>` texture **)**                                                                                                                 |
++-------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                              | :ref:`set_icon_max_width<class_TreeItem_method_set_icon_max_width>` **(** :ref:`int<class_int>` column, :ref:`int<class_int>` width **)**                                                                                                           |
++-------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                              | :ref:`set_icon_modulate<class_TreeItem_method_set_icon_modulate>` **(** :ref:`int<class_int>` column, :ref:`Color<class_Color>` modulate **)**                                                                                                      |
++-------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                              | :ref:`set_icon_region<class_TreeItem_method_set_icon_region>` **(** :ref:`int<class_int>` column, :ref:`Rect2<class_Rect2>` region **)**                                                                                                            |
++-------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                              | :ref:`set_indeterminate<class_TreeItem_method_set_indeterminate>` **(** :ref:`int<class_int>` column, :ref:`bool<class_bool>` indeterminate **)**                                                                                                   |
++-------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                              | :ref:`set_language<class_TreeItem_method_set_language>` **(** :ref:`int<class_int>` column, :ref:`String<class_String>` language **)**                                                                                                              |
++-------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                              | :ref:`set_metadata<class_TreeItem_method_set_metadata>` **(** :ref:`int<class_int>` column, :ref:`Variant<class_Variant>` meta **)**                                                                                                                |
++-------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                              | :ref:`set_opentype_feature<class_TreeItem_method_set_opentype_feature>` **(** :ref:`int<class_int>` column, :ref:`String<class_String>` tag, :ref:`int<class_int>` value **)**                                                                      |
++-------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                              | :ref:`set_range<class_TreeItem_method_set_range>` **(** :ref:`int<class_int>` column, :ref:`float<class_float>` value **)**                                                                                                                         |
++-------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                              | :ref:`set_range_config<class_TreeItem_method_set_range_config>` **(** :ref:`int<class_int>` column, :ref:`float<class_float>` min, :ref:`float<class_float>` max, :ref:`float<class_float>` step, :ref:`bool<class_bool>` expr=false **)**          |
++-------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                              | :ref:`set_selectable<class_TreeItem_method_set_selectable>` **(** :ref:`int<class_int>` column, :ref:`bool<class_bool>` selectable **)**                                                                                                            |
++-------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                              | :ref:`set_structured_text_bidi_override<class_TreeItem_method_set_structured_text_bidi_override>` **(** :ref:`int<class_int>` column, :ref:`StructuredTextParser<enum_Control_StructuredTextParser>` parser **)**                                   |
++-------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                              | :ref:`set_structured_text_bidi_override_options<class_TreeItem_method_set_structured_text_bidi_override_options>` **(** :ref:`int<class_int>` column, :ref:`Array<class_Array>` args **)**                                                          |
++-------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                              | :ref:`set_suffix<class_TreeItem_method_set_suffix>` **(** :ref:`int<class_int>` column, :ref:`String<class_String>` text **)**                                                                                                                      |
++-------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                              | :ref:`set_text<class_TreeItem_method_set_text>` **(** :ref:`int<class_int>` column, :ref:`String<class_String>` text **)**                                                                                                                          |
++-------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                              | :ref:`set_text_alignment<class_TreeItem_method_set_text_alignment>` **(** :ref:`int<class_int>` column, :ref:`HorizontalAlignment<enum_@GlobalScope_HorizontalAlignment>` text_alignment **)**                                                      |
++-------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                              | :ref:`set_text_direction<class_TreeItem_method_set_text_direction>` **(** :ref:`int<class_int>` column, :ref:`TextDirection<enum_Control_TextDirection>` direction **)**                                                                            |
++-------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                              | :ref:`set_tooltip<class_TreeItem_method_set_tooltip>` **(** :ref:`int<class_int>` column, :ref:`String<class_String>` tooltip **)**                                                                                                                 |
++-------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                              | :ref:`uncollapse_tree<class_TreeItem_method_uncollapse_tree>` **(** **)**                                                                                                                                                                           |
++-------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 
 Enumerations
 ------------
@@ -285,9 +289,9 @@ Method Descriptions
 
 .. _class_TreeItem_method_add_button:
 
-- void **add_button** **(** :ref:`int<class_int>` column, :ref:`Texture2D<class_Texture2D>` button, :ref:`int<class_int>` button_idx=-1, :ref:`bool<class_bool>` disabled=false, :ref:`String<class_String>` tooltip="" **)**
+- void **add_button** **(** :ref:`int<class_int>` column, :ref:`Texture2D<class_Texture2D>` button, :ref:`int<class_int>` id=-1, :ref:`bool<class_bool>` disabled=false, :ref:`String<class_String>` tooltip="" **)**
 
-Adds a button with :ref:`Texture2D<class_Texture2D>` ``button`` at column ``column``. The ``button_idx`` index is used to identify the button when calling other methods. If not specified, the next available index is used, which may be retrieved by calling :ref:`get_button_count<class_TreeItem_method_get_button_count>` immediately after this method. Optionally, the button can be ``disabled`` and have a ``tooltip``.
+Adds a button with :ref:`Texture2D<class_Texture2D>` ``button`` at column ``column``. The ``id`` is used to identify the button. If not specified, the next available index is used, which may be retrieved by calling :ref:`get_button_count<class_TreeItem_method_get_button_count>` immediately before this method. Optionally, the button can be ``disabled`` and have a ``tooltip``.
 
 ----
 
@@ -357,11 +361,27 @@ Returns the :ref:`Texture2D<class_Texture2D>` of the button at index ``button_id
 
 ----
 
+.. _class_TreeItem_method_get_button_by_id:
+
+- :ref:`int<class_int>` **get_button_by_id** **(** :ref:`int<class_int>` column, :ref:`int<class_int>` id **)** |const|
+
+Returns the button index if there is a button with id ``id`` in column ``column``, otherwise returns -1.
+
+----
+
 .. _class_TreeItem_method_get_button_count:
 
 - :ref:`int<class_int>` **get_button_count** **(** :ref:`int<class_int>` column **)** |const|
 
-Returns the number of buttons in column ``column``. May be used to get the most recently added button's index, if no index was specified.
+Returns the number of buttons in column ``column``.
+
+----
+
+.. _class_TreeItem_method_get_button_id:
+
+- :ref:`int<class_int>` **get_button_id** **(** :ref:`int<class_int>` column, :ref:`int<class_int>` button_idx **)** |const|
+
+Returns the id for the button at index ``button_idx`` in column ``column``.
 
 ----
 

部分文件因为文件数量过多而无法显示