Browse Source

classref: Sync with current 3.5 branch (516d6b6ba)

Rémi Verschelde 3 years ago
parent
commit
73bd511ab7
45 changed files with 569 additions and 211 deletions
  1. 10 3
      classes/[email protected]
  2. 1 1
      classes/class_arvrcontroller.rst
  3. 2 0
      classes/class_audiostreamplayer.rst
  4. 2 0
      classes/class_audiostreamplayer2d.rst
  5. 2 0
      classes/class_audiostreamplayer3d.rst
  6. 2 0
      classes/class_camera.rst
  7. 6 6
      classes/class_directionallight.rst
  8. 1 1
      classes/class_editorfeatureprofile.rst
  9. 1 1
      classes/class_environment.rst
  10. 1 1
      classes/class_geometry.rst
  11. 1 1
      classes/class_httprequest.rst
  12. 2 0
      classes/class_input.rst
  13. 32 10
      classes/class_inputeventmousemotion.rst
  14. 40 7
      classes/class_interpolatedcamera.rst
  15. 3 3
      classes/class_label3d.rst
  16. 9 0
      classes/class_multiplayerpeergdnative.rst
  17. 3 1
      classes/class_navigationagent.rst
  18. 3 1
      classes/class_navigationagent2d.rst
  19. 1 1
      classes/class_navigationmeshinstance.rst
  20. 1 1
      classes/class_navigationpolygoninstance.rst
  21. 84 0
      classes/class_networkedmultiplayercustom.rst
  22. 17 21
      classes/class_networkedmultiplayerenet.rst
  23. 8 8
      classes/class_networkedmultiplayerpeer.rst
  24. 4 2
      classes/class_omnilight.rst
  25. 10 0
      classes/class_poolbytearray.rst
  26. 10 0
      classes/class_poolcolorarray.rst
  27. 10 0
      classes/class_poolintarray.rst
  28. 10 0
      classes/class_poolrealarray.rst
  29. 10 0
      classes/class_poolstringarray.rst
  30. 10 0
      classes/class_poolvector2array.rst
  31. 10 0
      classes/class_poolvector3array.rst
  32. 62 10
      classes/class_projectsettings.rst
  33. 19 19
      classes/class_scenetreetween.rst
  34. 51 17
      classes/class_spatial.rst
  35. 1 1
      classes/class_spritebase3d.rst
  36. 20 1
      classes/class_string.rst
  37. 2 2
      classes/class_stylebox.rst
  38. 84 66
      classes/class_textedit.rst
  39. 4 4
      classes/class_treeitem.rst
  40. 1 1
      classes/class_vehiclebody.rst
  41. 1 1
      classes/class_vehiclewheel.rst
  42. 3 1
      classes/class_viewport.rst
  43. 15 1
      classes/class_visualserver.rst
  44. 0 9
      classes/class_webrtcmultiplayer.rst
  45. 0 9
      classes/class_websocketmultiplayerpeer.rst

+ 10 - 3
classes/[email protected]

@@ -545,7 +545,7 @@ Returns an "eased" value of ``x`` based on an easing function defined with ``cur
     - 1.0: Linear
     - Greater than 1.0 (exclusive): Ease in
 
-\ `ease() curve values cheatsheet <https://raw.githubusercontent.com/godotengine/godot-docs/3.4/img/ease_cheatsheet.png>`__\ 
+\ `ease() curve values cheatsheet <https://raw.githubusercontent.com/godotengine/godot-docs/3.5/img/ease_cheatsheet.png>`__\ 
 
 See also :ref:`smoothstep<class_@GDScript_method_smoothstep>`. If you need to perform more advanced transitions, use :ref:`Tween<class_Tween>` or :ref:`AnimationPlayer<class_AnimationPlayer>`.
 
@@ -1068,7 +1068,14 @@ Converts one or more arguments of any type to string in the best way possible an
 
 - void **print_debug** **(** ... **)** |vararg|
 
-Like :ref:`print<class_@GDScript_method_print>`, but prints only when used in debug mode.
+Like :ref:`print<class_@GDScript_method_print>`, but includes the current stack frame when running with the debugger turned on.
+
+Output in the console would look something like this:
+
+::
+
+    Test print
+       At: res://test.gd:15:_process()
 
 ----
 
@@ -1380,7 +1387,7 @@ This S-shaped curve is the cubic Hermite interpolator, given by ``f(y) = 3*y^2 -
 
 Compared to :ref:`ease<class_@GDScript_method_ease>` with a curve value of ``-1.6521``, :ref:`smoothstep<class_@GDScript_method_smoothstep>` returns the smoothest possible curve with no sudden changes in the derivative. If you need to perform more advanced transitions, use :ref:`Tween<class_Tween>` or :ref:`AnimationPlayer<class_AnimationPlayer>`.
 
-\ `Comparison between smoothstep() and ease(x, -1.6521) return values <https://raw.githubusercontent.com/godotengine/godot-docs/3.4/img/smoothstep_ease_comparison.png>`__
+\ `Comparison between smoothstep() and ease(x, -1.6521) return values <https://raw.githubusercontent.com/godotengine/godot-docs/3.5/img/smoothstep_ease_comparison.png>`__
 
 ----
 

+ 1 - 1
classes/class_arvrcontroller.rst

@@ -117,7 +117,7 @@ When a controller is turned off, its slot is freed. This ensures controllers wil
 | *Getter*  | get_rumble()      |
 +-----------+-------------------+
 
-The degree to which the controller vibrates. Ranges from ``0.0`` to ``1.0`` with precision ``.01``. If changed, updates :ref:`ARVRPositionalTracker.rumble<class_ARVRPositionalTracker_property_rumble>` accordingly.
+The degree to which the controller vibrates. Ranges from ``0.0`` to ``1.0``. If changed, updates :ref:`ARVRPositionalTracker.rumble<class_ARVRPositionalTracker_property_rumble>` accordingly.
 
 This is a useful property to animate if you want the controller to vibrate for a limited duration.
 

+ 2 - 0
classes/class_audiostreamplayer.rst

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

+ 2 - 0
classes/class_audiostreamplayer2d.rst

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

+ 2 - 0
classes/class_audiostreamplayer3d.rst

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

+ 2 - 0
classes/class_camera.rst

@@ -177,6 +177,8 @@ The culling mask that describes which 3D render layers are rendered by this came
 
 If ``true``, the ancestor :ref:`Viewport<class_Viewport>` is currently using this camera.
 
+If multiple cameras are in the scene, one will always be made current. For example, if two ``Camera`` nodes are present in the scene and only one is current, setting one camera's :ref:`current<class_Camera_property_current>` to ``false`` will cause the other camera to be made current.
+
 ----
 
 .. _class_Camera_property_doppler_tracking:

+ 6 - 6
classes/class_directionallight.rst

@@ -96,7 +96,7 @@ Property Descriptions
 | *Getter*  | get_param()      |
 +-----------+------------------+
 
-Amount of extra bias for shadow splits that are far away. If self-shadowing occurs only on the splits far away, increasing this value can fix them.
+Amount of extra bias for shadow splits that are far away. If self-shadowing occurs only on the splits far away, increasing this value can fix them. This is ignored when :ref:`directional_shadow_mode<class_DirectionalLight_property_directional_shadow_mode>` is :ref:`SHADOW_ORTHOGONAL<class_DirectionalLight_constant_SHADOW_ORTHOGONAL>`.
 
 ----
 
@@ -112,7 +112,7 @@ Amount of extra bias for shadow splits that are far away. If self-shadowing occu
 | *Getter*  | is_blend_splits_enabled() |
 +-----------+---------------------------+
 
-If ``true``, shadow detail is sacrificed in exchange for smoother transitions between splits.
+If ``true``, shadow detail is sacrificed in exchange for smoother transitions between splits. Enabling shadow blend splitting also has a moderate performance cost. This is ignored when :ref:`directional_shadow_mode<class_DirectionalLight_property_directional_shadow_mode>` is :ref:`SHADOW_ORTHOGONAL<class_DirectionalLight_constant_SHADOW_ORTHOGONAL>`.
 
 ----
 
@@ -144,7 +144,7 @@ Optimizes shadow rendering for detail versus movement. See :ref:`ShadowDepthRang
 | *Getter*  | get_param()      |
 +-----------+------------------+
 
-The maximum distance for shadow splits.
+The maximum distance for shadow splits. Increasing this value will make directional shadows visible from further away, at the cost of lower overall shadow detail and performance (since more objects need to be included in the directional shadow rendering).
 
 ----
 
@@ -192,7 +192,7 @@ Can be used to fix special cases of self shadowing when objects are perpendicula
 | *Getter*  | get_param()      |
 +-----------+------------------+
 
-The distance from camera to shadow split 1. Relative to :ref:`directional_shadow_max_distance<class_DirectionalLight_property_directional_shadow_max_distance>`. Only used when :ref:`directional_shadow_mode<class_DirectionalLight_property_directional_shadow_mode>` is ``SHADOW_PARALLEL_2_SPLITS`` or ``SHADOW_PARALLEL_4_SPLITS``.
+The distance from camera to shadow split 1. Relative to :ref:`directional_shadow_max_distance<class_DirectionalLight_property_directional_shadow_max_distance>`. Only used when :ref:`directional_shadow_mode<class_DirectionalLight_property_directional_shadow_mode>` is :ref:`SHADOW_PARALLEL_2_SPLITS<class_DirectionalLight_constant_SHADOW_PARALLEL_2_SPLITS>` or :ref:`SHADOW_PARALLEL_4_SPLITS<class_DirectionalLight_constant_SHADOW_PARALLEL_4_SPLITS>`.
 
 ----
 
@@ -208,7 +208,7 @@ The distance from camera to shadow split 1. Relative to :ref:`directional_shadow
 | *Getter*  | get_param()      |
 +-----------+------------------+
 
-The distance from shadow split 1 to split 2. Relative to :ref:`directional_shadow_max_distance<class_DirectionalLight_property_directional_shadow_max_distance>`. Only used when :ref:`directional_shadow_mode<class_DirectionalLight_property_directional_shadow_mode>` is ``SHADOW_PARALLEL_2_SPLITS`` or ``SHADOW_PARALLEL_4_SPLITS``.
+The distance from shadow split 1 to split 2. Relative to :ref:`directional_shadow_max_distance<class_DirectionalLight_property_directional_shadow_max_distance>`. Only used when :ref:`directional_shadow_mode<class_DirectionalLight_property_directional_shadow_mode>` is :ref:`SHADOW_PARALLEL_2_SPLITS<class_DirectionalLight_constant_SHADOW_PARALLEL_2_SPLITS>` or :ref:`SHADOW_PARALLEL_4_SPLITS<class_DirectionalLight_constant_SHADOW_PARALLEL_4_SPLITS>`.
 
 ----
 
@@ -224,7 +224,7 @@ The distance from shadow split 1 to split 2. Relative to :ref:`directional_shado
 | *Getter*  | get_param()      |
 +-----------+------------------+
 
-The distance from shadow split 2 to split 3. Relative to :ref:`directional_shadow_max_distance<class_DirectionalLight_property_directional_shadow_max_distance>`. Only used when :ref:`directional_shadow_mode<class_DirectionalLight_property_directional_shadow_mode>` is ``SHADOW_PARALLEL_4_SPLITS``.
+The distance from shadow split 2 to split 3. Relative to :ref:`directional_shadow_max_distance<class_DirectionalLight_property_directional_shadow_max_distance>`. Only used when :ref:`directional_shadow_mode<class_DirectionalLight_property_directional_shadow_mode>` is :ref:`SHADOW_PARALLEL_4_SPLITS<class_DirectionalLight_constant_SHADOW_PARALLEL_4_SPLITS>`.
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`

+ 1 - 1
classes/class_editorfeatureprofile.rst

@@ -141,7 +141,7 @@ Loads an editor feature profile from a file. The file must follow the JSON forma
 
 - :ref:`Error<enum_@GlobalScope_Error>` **save_to_file** **(** :ref:`String<class_String>` path **)**
 
-Saves the editor feature profile to a file in JSON format. It can then be imported using the feature profile manager's **Import** button or the :ref:`load_from_file<class_EditorFeatureProfile_method_load_from_file>` button.
+Saves the editor feature profile to a file in JSON format. It can then be imported using the feature profile manager's **Import** button or the :ref:`load_from_file<class_EditorFeatureProfile_method_load_from_file>` method.
 
 ----
 

+ 1 - 1
classes/class_environment.rst

@@ -1729,7 +1729,7 @@ The default exposure used for tonemapping.
 | *Getter*  | get_tonemapper()      |
 +-----------+-----------------------+
 
-The tonemapping mode to use. Tonemapping is the process that "converts" HDR values to be suitable for rendering on a LDR display. (Godot doesn't support rendering on HDR displays yet.)
+The tonemapping mode to use. Tonemapping is the process that "converts" HDR values to be suitable for rendering on a SDR display. (Godot doesn't support rendering on HDR displays yet.)
 
 ----
 

+ 1 - 1
classes/class_geometry.rst

@@ -343,7 +343,7 @@ Checks if the two lines (``from_a``, ``dir_a``) and (``from_b``, ``dir_b``) inte
 
 - :ref:`Dictionary<class_Dictionary>` **make_atlas** **(** :ref:`PoolVector2Array<class_PoolVector2Array>` sizes **)**
 
-Given an array of :ref:`Vector2<class_Vector2>`\ s representing tiles, builds an atlas. The returned dictionary has two keys: ``points`` is a vector of :ref:`Vector2<class_Vector2>` that specifies the positions of each tile, ``size`` contains the overall size of the whole atlas as :ref:`Vector2<class_Vector2>`.
+Given an array of :ref:`Vector2<class_Vector2>`\ s representing tiles, builds an atlas. The returned dictionary has two keys: ``points`` is an array of :ref:`Vector2<class_Vector2>` that specifies the positions of each tile, ``size`` contains the overall size of the whole atlas as :ref:`Vector2<class_Vector2>`.
 
 ----
 

+ 1 - 1
classes/class_httprequest.rst

@@ -280,7 +280,7 @@ Maximum number of allowed redirects. This is used to prevent endless redirect lo
 | *Getter*  | get_timeout()      |
 +-----------+--------------------+
 
-If set to a value greater than ``0.0``, the HTTP request will time out after ``timeout`` seconds have passed and the request is not *completed* yet. For small HTTP requests such as REST API usage, set :ref:`timeout<class_HTTPRequest_property_timeout>` to a value greater than ``0.0`` to prevent the application from getting stuck if the request fails to get a response in a timely manner. For file downloads, leave this to ``0.0`` to prevent the download from failing if it takes too much time.
+If set to a value greater than ``0.0`` before the request starts, the HTTP request will time out after ``timeout`` seconds have passed and the request is not *completed* yet. For small HTTP requests such as REST API usage, set :ref:`timeout<class_HTTPRequest_property_timeout>` to a value between ``10.0`` and ``30.0`` to prevent the application from getting stuck if the request fails to get a response in a timely manner. For file downloads, leave this to ``0.0`` to prevent the download from failing if it takes too much time.
 
 ----
 

+ 2 - 0
classes/class_input.rst

@@ -272,6 +272,8 @@ If ``true``, similar input events sent by the operating system are accumulated.
 
 Input accumulation can be disabled to get slightly more precise/reactive input at the cost of increased CPU usage. In applications where drawing freehand lines is required, input accumulation should generally be disabled while the user is drawing the line to get results that closely follow the actual input.
 
+\ **Note:** Input accumulation is *enabled* by default. It is recommended to keep it enabled for games which don't require very reactive input, as this will decrease CPU usage.
+
 Method Descriptions
 -------------------
 

+ 32 - 10
classes/class_inputeventmousemotion.rst

@@ -18,7 +18,9 @@ Description
 
 Contains mouse and pen motion information. Supports relative, absolute positions and speed. See :ref:`Node._input<class_Node_method__input>`.
 
-\ **Note:** By default, this event is only emitted once per frame rendered at most. If you need more precise input reporting, set :ref:`Input.use_accumulated_input<class_Input_property_use_accumulated_input>` to ``false`` to make events emitted as often as possible. If you use InputEventMouseMotion to draw lines, consider implementing `Bresenham's line algorithm <https://en.wikipedia.org/wiki/Bresenham%27s_line_algorithm>`__ as well to avoid visible gaps in lines if the user is moving the mouse quickly.
+\ **Note:** The behavior of this event is affected by the value of :ref:`Input.use_accumulated_input<class_Input_property_use_accumulated_input>`. When set to ``true`` (default), mouse/pen motion events received from the OS will be merged to emit an accumulated event only once per frame rendered at most. When set to ``false``, the events will be emitted as received, which means that they can be emitted multiple times per frame rendered, allowing for precise input reporting at the expense of CPU usage.
+
+\ **Note:** If you use InputEventMouseMotion to draw lines, consider implementing `Bresenham's line algorithm <https://en.wikipedia.org/wiki/Bresenham%27s_line_algorithm>`__ as well to avoid visible gaps in lines if the user is moving the mouse quickly.
 
 Tutorials
 ---------
@@ -30,19 +32,39 @@ Tutorials
 Properties
 ----------
 
-+-------------------------------+----------------------------------------------------------------+---------------------+
-| :ref:`float<class_float>`     | :ref:`pressure<class_InputEventMouseMotion_property_pressure>` | ``0.0``             |
-+-------------------------------+----------------------------------------------------------------+---------------------+
-| :ref:`Vector2<class_Vector2>` | :ref:`relative<class_InputEventMouseMotion_property_relative>` | ``Vector2( 0, 0 )`` |
-+-------------------------------+----------------------------------------------------------------+---------------------+
-| :ref:`Vector2<class_Vector2>` | :ref:`speed<class_InputEventMouseMotion_property_speed>`       | ``Vector2( 0, 0 )`` |
-+-------------------------------+----------------------------------------------------------------+---------------------+
-| :ref:`Vector2<class_Vector2>` | :ref:`tilt<class_InputEventMouseMotion_property_tilt>`         | ``Vector2( 0, 0 )`` |
-+-------------------------------+----------------------------------------------------------------+---------------------+
++-------------------------------+------------------------------------------------------------------------+---------------------+
+| :ref:`bool<class_bool>`       | :ref:`pen_inverted<class_InputEventMouseMotion_property_pen_inverted>` | ``false``           |
++-------------------------------+------------------------------------------------------------------------+---------------------+
+| :ref:`float<class_float>`     | :ref:`pressure<class_InputEventMouseMotion_property_pressure>`         | ``0.0``             |
++-------------------------------+------------------------------------------------------------------------+---------------------+
+| :ref:`Vector2<class_Vector2>` | :ref:`relative<class_InputEventMouseMotion_property_relative>`         | ``Vector2( 0, 0 )`` |
++-------------------------------+------------------------------------------------------------------------+---------------------+
+| :ref:`Vector2<class_Vector2>` | :ref:`speed<class_InputEventMouseMotion_property_speed>`               | ``Vector2( 0, 0 )`` |
++-------------------------------+------------------------------------------------------------------------+---------------------+
+| :ref:`Vector2<class_Vector2>` | :ref:`tilt<class_InputEventMouseMotion_property_tilt>`                 | ``Vector2( 0, 0 )`` |
++-------------------------------+------------------------------------------------------------------------+---------------------+
 
 Property Descriptions
 ---------------------
 
+.. _class_InputEventMouseMotion_property_pen_inverted:
+
+- :ref:`bool<class_bool>` **pen_inverted**
+
++-----------+-------------------------+
+| *Default* | ``false``               |
++-----------+-------------------------+
+| *Setter*  | set_pen_inverted(value) |
++-----------+-------------------------+
+| *Getter*  | get_pen_inverted()      |
++-----------+-------------------------+
+
+Returns ``true`` when using the eraser end of a stylus pen.
+
+\ **Note:** This property is implemented on Linux, macOS and Windows.
+
+----
+
 .. _class_InputEventMouseMotion_property_pressure:
 
 - :ref:`float<class_float>` **pressure**

+ 40 - 7
classes/class_interpolatedcamera.rst

@@ -23,13 +23,15 @@ If it is not :ref:`enabled<class_InterpolatedCamera_property_enabled>` or does n
 Properties
 ----------
 
-+---------------------------------+-----------------------------------------------------------+------------------+
-| :ref:`bool<class_bool>`         | :ref:`enabled<class_InterpolatedCamera_property_enabled>` | ``false``        |
-+---------------------------------+-----------------------------------------------------------+------------------+
-| :ref:`float<class_float>`       | :ref:`speed<class_InterpolatedCamera_property_speed>`     | ``1.0``          |
-+---------------------------------+-----------------------------------------------------------+------------------+
-| :ref:`NodePath<class_NodePath>` | :ref:`target<class_InterpolatedCamera_property_target>`   | ``NodePath("")`` |
-+---------------------------------+-----------------------------------------------------------+------------------+
++---------------------------------------------------------------------------------------------+---------------------------------------------------------------------+------------------+
+| :ref:`bool<class_bool>`                                                                     | :ref:`enabled<class_InterpolatedCamera_property_enabled>`           | ``false``        |
++---------------------------------------------------------------------------------------------+---------------------------------------------------------------------+------------------+
+| :ref:`InterpolatedCameraProcessMode<enum_InterpolatedCamera_InterpolatedCameraProcessMode>` | :ref:`process_mode<class_InterpolatedCamera_property_process_mode>` | ``1``            |
++---------------------------------------------------------------------------------------------+---------------------------------------------------------------------+------------------+
+| :ref:`float<class_float>`                                                                   | :ref:`speed<class_InterpolatedCamera_property_speed>`               | ``1.0``          |
++---------------------------------------------------------------------------------------------+---------------------------------------------------------------------+------------------+
+| :ref:`NodePath<class_NodePath>`                                                             | :ref:`target<class_InterpolatedCamera_property_target>`             | ``NodePath("")`` |
++---------------------------------------------------------------------------------------------+---------------------------------------------------------------------+------------------+
 
 Methods
 -------
@@ -38,6 +40,21 @@ Methods
 | void | :ref:`set_target<class_InterpolatedCamera_method_set_target>` **(** :ref:`Object<class_Object>` target **)** |
 +------+--------------------------------------------------------------------------------------------------------------+
 
+Enumerations
+------------
+
+.. _enum_InterpolatedCamera_InterpolatedCameraProcessMode:
+
+.. _class_InterpolatedCamera_constant_INTERPOLATED_CAMERA_PROCESS_PHYSICS:
+
+.. _class_InterpolatedCamera_constant_INTERPOLATED_CAMERA_PROCESS_IDLE:
+
+enum **InterpolatedCameraProcessMode**:
+
+- **INTERPOLATED_CAMERA_PROCESS_PHYSICS** = **0** --- The camera updates with the ``_physics_process`` callback.
+
+- **INTERPOLATED_CAMERA_PROCESS_IDLE** = **1** --- The camera updates with the ``_process`` callback.
+
 Property Descriptions
 ---------------------
 
@@ -57,6 +74,22 @@ If ``true``, and a target is set, the camera will move automatically.
 
 ----
 
+.. _class_InterpolatedCamera_property_process_mode:
+
+- :ref:`InterpolatedCameraProcessMode<enum_InterpolatedCamera_InterpolatedCameraProcessMode>` **process_mode**
+
++-----------+-------------------------+
+| *Default* | ``1``                   |
++-----------+-------------------------+
+| *Setter*  | set_process_mode(value) |
++-----------+-------------------------+
+| *Getter*  | get_process_mode()      |
++-----------+-------------------------+
+
+The camera's process callback. See :ref:`InterpolatedCameraProcessMode<enum_InterpolatedCamera_InterpolatedCameraProcessMode>`.
+
+----
+
 .. _class_InterpolatedCamera_property_speed:
 
 - :ref:`float<class_float>` **speed**

+ 3 - 3
classes/class_label3d.rst

@@ -95,7 +95,7 @@ enum **DrawFlags**:
 
 - **FLAG_SHADED** = **0** --- If set, lights in the environment affect the label.
 
-- **FLAG_DOUBLE_SIDED** = **1** --- If set, text can be seen from the back as well. If not, the texture is invisible when looking at it from behind.
+- **FLAG_DOUBLE_SIDED** = **1** --- If set, text can be seen from the back as well. If not, the text is invisible when looking at it from behind.
 
 - **FLAG_DISABLE_DEPTH_TEST** = **2** --- Disables the depth test, so this object is drawn on top of all others. However, objects drawn after it in the draw order may cover it.
 
@@ -394,7 +394,7 @@ The tint of :ref:`Font<class_Font>`'s outline.
 
 Sets the render priority for the text outline. Higher priority objects will be sorted in front of lower priority objects.
 
-\ **Node:** This only applies if :ref:`alpha_cut<class_Label3D_property_alpha_cut>` is set to :ref:`ALPHA_CUT_DISABLED<class_Label3D_constant_ALPHA_CUT_DISABLED>` (default value).
+\ **Note:** This only applies if :ref:`alpha_cut<class_Label3D_property_alpha_cut>` is set to :ref:`ALPHA_CUT_DISABLED<class_Label3D_constant_ALPHA_CUT_DISABLED>` (default value).
 
 \ **Note:** This only applies to sorting of transparent objects. This will not impact how transparent objects are sorted relative to opaque objects. This is because opaque objects are not sorted, while transparent objects are sorted from back to front (subject to priority).
 
@@ -430,7 +430,7 @@ The size of one pixel's width on the label to scale it in 3D.
 
 Sets the render priority for the text. Higher priority objects will be sorted in front of lower priority objects.
 
-\ **Node:** This only applies if :ref:`alpha_cut<class_Label3D_property_alpha_cut>` is set to :ref:`ALPHA_CUT_DISABLED<class_Label3D_constant_ALPHA_CUT_DISABLED>` (default value).
+\ **Note:** This only applies if :ref:`alpha_cut<class_Label3D_property_alpha_cut>` is set to :ref:`ALPHA_CUT_DISABLED<class_Label3D_constant_ALPHA_CUT_DISABLED>` (default value).
 
 \ **Note:** This only applies to sorting of transparent objects. This will not impact how transparent objects are sorted relative to opaque objects. This is because opaque objects are not sorted, while transparent objects are sorted from back to front (subject to priority).
 

+ 9 - 0
classes/class_multiplayerpeergdnative.rst

@@ -13,6 +13,15 @@ MultiplayerPeerGDNative
 
 
 
+Properties
+----------
+
++-----------------------------------------------------------------+------------------------+----------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                                         | refuse_new_connections | ``true`` (overrides :ref:`NetworkedMultiplayerPeer<class_NetworkedMultiplayerPeer_property_refuse_new_connections>`) |
++-----------------------------------------------------------------+------------------------+----------------------------------------------------------------------------------------------------------------------+
+| :ref:`TransferMode<enum_NetworkedMultiplayerPeer_TransferMode>` | transfer_mode          | ``0`` (overrides :ref:`NetworkedMultiplayerPeer<class_NetworkedMultiplayerPeer_property_transfer_mode>`)             |
++-----------------------------------------------------------------+------------------------+----------------------------------------------------------------------------------------------------------------------+
+
 .. |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_navigationagent.rst

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

+ 3 - 1
classes/class_navigationagent2d.rst

@@ -242,7 +242,9 @@ The maximum distance the agent is allowed away from the ideal path to the final
 | *Getter*  | get_radius()      |
 +-----------+-------------------+
 
-The radius of the agent.
+The radius of the avoidance agent. This is the "body" of the avoidance agent and not the avoidance maneuver starting radius (which is controlled by :ref:`neighbor_dist<class_NavigationAgent2D_property_neighbor_dist>`).
+
+Does not affect normal pathfinding.
 
 ----
 

+ 1 - 1
classes/class_navigationmeshinstance.rst

@@ -26,7 +26,7 @@ Two regions can be connected to each other if they share a similar edge. You can
 
 The cost of entering this region from another region can be controlled with the :ref:`enter_cost<class_NavigationMeshInstance_property_enter_cost>` value.
 
-\ **Note**: This value is not added to the path cost when the start position is already inside this region.
+\ **Note:** This value is not added to the path cost when the start position is already inside this region.
 
 The cost of traveling distances inside this region can be controlled with the :ref:`travel_cost<class_NavigationMeshInstance_property_travel_cost>` multiplier.
 

+ 1 - 1
classes/class_navigationpolygoninstance.rst

@@ -26,7 +26,7 @@ Two regions can be connected to each other if they share a similar edge. You can
 
 The pathfinding cost of entering this region from another region can be controlled with the :ref:`enter_cost<class_NavigationPolygonInstance_property_enter_cost>` value.
 
-\ **Note**: This value is not added to the path cost when the start position is already inside this region.
+\ **Note:** This value is not added to the path cost when the start position is already inside this region.
 
 The pathfinding cost of traveling distances inside this region can be controlled with the :ref:`travel_cost<class_NavigationPolygonInstance_property_travel_cost>` multiplier.
 

+ 84 - 0
classes/class_networkedmultiplayercustom.rst

@@ -0,0 +1,84 @@
+:github_url: hide
+
+.. Generated automatically by doc/tools/make_rst.py in Godot's source tree.
+.. DO NOT EDIT THIS FILE, but the NetworkedMultiplayerCustom.xml source instead.
+.. The source is found in doc/classes or modules/<name>/doc_classes.
+
+.. _class_NetworkedMultiplayerCustom:
+
+NetworkedMultiplayerCustom
+==========================
+
+**Inherits:** :ref:`NetworkedMultiplayerPeer<class_NetworkedMultiplayerPeer>` **<** :ref:`PacketPeer<class_PacketPeer>` **<** :ref:`Reference<class_Reference>` **<** :ref:`Object<class_Object>`
+
+A :ref:`NetworkedMultiplayerPeer<class_NetworkedMultiplayerPeer>` implementation that can be controlled from a script.
+
+Description
+-----------
+
+A :ref:`NetworkedMultiplayerPeer<class_NetworkedMultiplayerPeer>` implementation that can be used as a :ref:`MultiplayerAPI.network_peer<class_MultiplayerAPI_property_network_peer>` and controlled from a script.
+
+Its purpose is to allow adding a new backend for the high-Level multiplayer API without needing to use GDNative.
+
+Methods
+-------
+
++------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void | :ref:`deliver_packet<class_NetworkedMultiplayerCustom_method_deliver_packet>` **(** :ref:`PoolByteArray<class_PoolByteArray>` buffer, :ref:`int<class_int>` from_peer_id **)**                    |
++------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void | :ref:`initialize<class_NetworkedMultiplayerCustom_method_initialize>` **(** :ref:`int<class_int>` self_peer_id **)**                                                                              |
++------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void | :ref:`set_connection_status<class_NetworkedMultiplayerCustom_method_set_connection_status>` **(** :ref:`ConnectionStatus<enum_NetworkedMultiplayerPeer_ConnectionStatus>` connection_status **)** |
++------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void | :ref:`set_max_packet_size<class_NetworkedMultiplayerCustom_method_set_max_packet_size>` **(** :ref:`int<class_int>` max_packet_size **)**                                                         |
++------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+Signals
+-------
+
+.. _class_NetworkedMultiplayerCustom_signal_packet_generated:
+
+- **packet_generated** **(** :ref:`int<class_int>` peer_id, :ref:`PoolByteArray<class_PoolByteArray>` buffer, :ref:`int<class_int>` transfer_mode **)**
+
+Emitted when the local :ref:`MultiplayerAPI<class_MultiplayerAPI>` generates a packet.
+
+Your script should take this packet and send it to the requested peer over the network (which should call :ref:`deliver_packet<class_NetworkedMultiplayerCustom_method_deliver_packet>` with the data when it's received).
+
+Method Descriptions
+-------------------
+
+.. _class_NetworkedMultiplayerCustom_method_deliver_packet:
+
+- void **deliver_packet** **(** :ref:`PoolByteArray<class_PoolByteArray>` buffer, :ref:`int<class_int>` from_peer_id **)**
+
+Deliver a packet to the local :ref:`MultiplayerAPI<class_MultiplayerAPI>`.
+
+When your script receives a packet from other peers over the network (originating from the :ref:`packet_generated<class_NetworkedMultiplayerCustom_signal_packet_generated>` signal on the sending peer), passing it to this method will deliver it locally.
+
+----
+
+.. _class_NetworkedMultiplayerCustom_method_initialize:
+
+- void **initialize** **(** :ref:`int<class_int>` self_peer_id **)**
+
+Initialize the peer with the given ``peer_id`` (must be between 1 and 2147483647).
+
+----
+
+.. _class_NetworkedMultiplayerCustom_method_set_connection_status:
+
+- void **set_connection_status** **(** :ref:`ConnectionStatus<enum_NetworkedMultiplayerPeer_ConnectionStatus>` connection_status **)**
+
+Set the state of the connection. See :ref:`ConnectionStatus<enum_NetworkedMultiplayerPeer_ConnectionStatus>`.
+
+----
+
+.. _class_NetworkedMultiplayerCustom_method_set_max_packet_size:
+
+- void **set_max_packet_size** **(** :ref:`int<class_int>` max_packet_size **)**
+
+Set the max packet size that this peer can handle.
+
+.. |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.)`

+ 17 - 21
classes/class_networkedmultiplayerenet.rst

@@ -32,27 +32,23 @@ Tutorials
 Properties
 ----------
 
-+-----------------------------------------------------------------------+-----------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                                               | :ref:`always_ordered<class_NetworkedMultiplayerENet_property_always_ordered>`     | ``false``                                                                                                             |
-+-----------------------------------------------------------------------+-----------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                                                 | :ref:`channel_count<class_NetworkedMultiplayerENet_property_channel_count>`       | ``3``                                                                                                                 |
-+-----------------------------------------------------------------------+-----------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+
-| :ref:`CompressionMode<enum_NetworkedMultiplayerENet_CompressionMode>` | :ref:`compression_mode<class_NetworkedMultiplayerENet_property_compression_mode>` | ``1``                                                                                                                 |
-+-----------------------------------------------------------------------+-----------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_String>`                                           | :ref:`dtls_hostname<class_NetworkedMultiplayerENet_property_dtls_hostname>`       | ``""``                                                                                                                |
-+-----------------------------------------------------------------------+-----------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                                               | :ref:`dtls_verify<class_NetworkedMultiplayerENet_property_dtls_verify>`           | ``true``                                                                                                              |
-+-----------------------------------------------------------------------+-----------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                                               | refuse_new_connections                                                            | ``false`` (overrides :ref:`NetworkedMultiplayerPeer<class_NetworkedMultiplayerPeer_property_refuse_new_connections>`) |
-+-----------------------------------------------------------------------+-----------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                                               | :ref:`server_relay<class_NetworkedMultiplayerENet_property_server_relay>`         | ``true``                                                                                                              |
-+-----------------------------------------------------------------------+-----------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                                                 | :ref:`transfer_channel<class_NetworkedMultiplayerENet_property_transfer_channel>` | ``-1``                                                                                                                |
-+-----------------------------------------------------------------------+-----------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+
-| :ref:`TransferMode<enum_NetworkedMultiplayerPeer_TransferMode>`       | transfer_mode                                                                     | ``2`` (overrides :ref:`NetworkedMultiplayerPeer<class_NetworkedMultiplayerPeer_property_transfer_mode>`)              |
-+-----------------------------------------------------------------------+-----------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                                               | :ref:`use_dtls<class_NetworkedMultiplayerENet_property_use_dtls>`                 | ``false``                                                                                                             |
-+-----------------------------------------------------------------------+-----------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+
++-----------------------------------------------------------------------+-----------------------------------------------------------------------------------+-----------+
+| :ref:`bool<class_bool>`                                               | :ref:`always_ordered<class_NetworkedMultiplayerENet_property_always_ordered>`     | ``false`` |
++-----------------------------------------------------------------------+-----------------------------------------------------------------------------------+-----------+
+| :ref:`int<class_int>`                                                 | :ref:`channel_count<class_NetworkedMultiplayerENet_property_channel_count>`       | ``3``     |
++-----------------------------------------------------------------------+-----------------------------------------------------------------------------------+-----------+
+| :ref:`CompressionMode<enum_NetworkedMultiplayerENet_CompressionMode>` | :ref:`compression_mode<class_NetworkedMultiplayerENet_property_compression_mode>` | ``1``     |
++-----------------------------------------------------------------------+-----------------------------------------------------------------------------------+-----------+
+| :ref:`String<class_String>`                                           | :ref:`dtls_hostname<class_NetworkedMultiplayerENet_property_dtls_hostname>`       | ``""``    |
++-----------------------------------------------------------------------+-----------------------------------------------------------------------------------+-----------+
+| :ref:`bool<class_bool>`                                               | :ref:`dtls_verify<class_NetworkedMultiplayerENet_property_dtls_verify>`           | ``true``  |
++-----------------------------------------------------------------------+-----------------------------------------------------------------------------------+-----------+
+| :ref:`bool<class_bool>`                                               | :ref:`server_relay<class_NetworkedMultiplayerENet_property_server_relay>`         | ``true``  |
++-----------------------------------------------------------------------+-----------------------------------------------------------------------------------+-----------+
+| :ref:`int<class_int>`                                                 | :ref:`transfer_channel<class_NetworkedMultiplayerENet_property_transfer_channel>` | ``-1``    |
++-----------------------------------------------------------------------+-----------------------------------------------------------------------------------+-----------+
+| :ref:`bool<class_bool>`                                               | :ref:`use_dtls<class_NetworkedMultiplayerENet_property_use_dtls>`                 | ``false`` |
++-----------------------------------------------------------------------+-----------------------------------------------------------------------------------+-----------+
 
 Methods
 -------

+ 8 - 8
classes/class_networkedmultiplayerpeer.rst

@@ -11,7 +11,7 @@ NetworkedMultiplayerPeer
 
 **Inherits:** :ref:`PacketPeer<class_PacketPeer>` **<** :ref:`Reference<class_Reference>` **<** :ref:`Object<class_Object>`
 
-**Inherited By:** :ref:`MultiplayerPeerGDNative<class_MultiplayerPeerGDNative>`, :ref:`NetworkedMultiplayerENet<class_NetworkedMultiplayerENet>`, :ref:`WebRTCMultiplayer<class_WebRTCMultiplayer>`, :ref:`WebSocketMultiplayerPeer<class_WebSocketMultiplayerPeer>`
+**Inherited By:** :ref:`MultiplayerPeerGDNative<class_MultiplayerPeerGDNative>`, :ref:`NetworkedMultiplayerCustom<class_NetworkedMultiplayerCustom>`, :ref:`NetworkedMultiplayerENet<class_NetworkedMultiplayerENet>`, :ref:`WebRTCMultiplayer<class_WebRTCMultiplayer>`, :ref:`WebSocketMultiplayerPeer<class_WebSocketMultiplayerPeer>`
 
 A high-level network interface to simplify multiplayer interactions.
 
@@ -32,11 +32,11 @@ Tutorials
 Properties
 ----------
 
-+-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------+----------+
-| :ref:`bool<class_bool>`                                         | :ref:`refuse_new_connections<class_NetworkedMultiplayerPeer_property_refuse_new_connections>` | ``true`` |
-+-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------+----------+
-| :ref:`TransferMode<enum_NetworkedMultiplayerPeer_TransferMode>` | :ref:`transfer_mode<class_NetworkedMultiplayerPeer_property_transfer_mode>`                   | ``0``    |
-+-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------+----------+
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------+-----------+
+| :ref:`bool<class_bool>`                                         | :ref:`refuse_new_connections<class_NetworkedMultiplayerPeer_property_refuse_new_connections>` | ``false`` |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------+-----------+
+| :ref:`TransferMode<enum_NetworkedMultiplayerPeer_TransferMode>` | :ref:`transfer_mode<class_NetworkedMultiplayerPeer_property_transfer_mode>`                   | ``2``     |
++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------+-----------+
 
 Methods
 -------
@@ -150,7 +150,7 @@ Property Descriptions
 - :ref:`bool<class_bool>` **refuse_new_connections**
 
 +-----------+-----------------------------------+
-| *Default* | ``true``                          |
+| *Default* | ``false``                         |
 +-----------+-----------------------------------+
 | *Setter*  | set_refuse_new_connections(value) |
 +-----------+-----------------------------------+
@@ -166,7 +166,7 @@ If ``true``, this ``NetworkedMultiplayerPeer`` refuses new connections.
 - :ref:`TransferMode<enum_NetworkedMultiplayerPeer_TransferMode>` **transfer_mode**
 
 +-----------+--------------------------+
-| *Default* | ``0``                    |
+| *Default* | ``2``                    |
 +-----------+--------------------------+
 | *Setter*  | set_transfer_mode(value) |
 +-----------+--------------------------+

+ 4 - 2
classes/class_omnilight.rst

@@ -51,7 +51,7 @@ enum **ShadowMode**:
 
 - **SHADOW_DUAL_PARABOLOID** = **0** --- Shadows are rendered to a dual-paraboloid texture. Faster than :ref:`SHADOW_CUBE<class_OmniLight_constant_SHADOW_CUBE>`, but lower-quality.
 
-- **SHADOW_CUBE** = **1** --- Shadows are rendered to a cubemap. Slower than :ref:`SHADOW_DUAL_PARABOLOID<class_OmniLight_constant_SHADOW_DUAL_PARABOLOID>`, but higher-quality.
+- **SHADOW_CUBE** = **1** --- Shadows are rendered to a cubemap. Slower than :ref:`SHADOW_DUAL_PARABOLOID<class_OmniLight_constant_SHADOW_DUAL_PARABOLOID>`, but higher-quality. Only supported on GPUs that feature support for depth cubemaps.
 
 ----
 
@@ -130,7 +130,9 @@ See :ref:`ShadowDetail<enum_OmniLight_ShadowDetail>`.
 | *Getter*  | get_shadow_mode()      |
 +-----------+------------------------+
 
-See :ref:`ShadowMode<enum_OmniLight_ShadowMode>`.
+The shadow rendering mode to use for this ``OmniLight``. See :ref:`ShadowMode<enum_OmniLight_ShadowMode>`.
+
+\ **Note:** In GLES2, :ref:`SHADOW_CUBE<class_OmniLight_constant_SHADOW_CUBE>` is only supported on GPUs that feature support for depth cubemaps. Old GPUs such as the Radeon HD 4000 series don't support cubemap shadows and will fall back to dual paraboloid shadows as a result.
 
 .. |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.)`

+ 10 - 0
classes/class_poolbytearray.rst

@@ -82,6 +82,8 @@ Methods
 +-------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`int<class_int>`                     | :ref:`size<class_PoolByteArray_method_size>` **(** **)**                                                                                                             |
 +-------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                      | :ref:`sort<class_PoolByteArray_method_sort>` **(** **)**                                                                                                             |
++-------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`PoolByteArray<class_PoolByteArray>` | :ref:`subarray<class_PoolByteArray_method_subarray>` **(** :ref:`int<class_int>` from, :ref:`int<class_int>` to **)**                                                |
 +-------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 
@@ -279,6 +281,14 @@ Returns the number of elements in the array.
 
 ----
 
+.. _class_PoolByteArray_method_sort:
+
+- void **sort** **(** **)**
+
+Sorts the elements of the array in ascending order.
+
+----
+
 .. _class_PoolByteArray_method_subarray:
 
 - :ref:`PoolByteArray<class_PoolByteArray>` **subarray** **(** :ref:`int<class_int>` from, :ref:`int<class_int>` to **)**

+ 10 - 0
classes/class_poolcolorarray.rst

@@ -70,6 +70,8 @@ Methods
 +---------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+
 | :ref:`int<class_int>`                       | :ref:`size<class_PoolColorArray_method_size>` **(** **)**                                                                   |
 +---------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+
+| void                                        | :ref:`sort<class_PoolColorArray_method_sort>` **(** **)**                                                                   |
++---------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+
 
 Method Descriptions
 -------------------
@@ -202,6 +204,14 @@ Changes the :ref:`Color<class_Color>` at the given index.
 
 Returns the number of elements in the array.
 
+----
+
+.. _class_PoolColorArray_method_sort:
+
+- void **sort** **(** **)**
+
+Sorts the elements of the array in ascending order.
+
 .. |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.)`

+ 10 - 0
classes/class_poolintarray.rst

@@ -72,6 +72,8 @@ Methods
 +-----------------------------------------+-----------------------------------------------------------------------------------------------------------------------+
 | :ref:`int<class_int>`                   | :ref:`size<class_PoolIntArray_method_size>` **(** **)**                                                               |
 +-----------------------------------------+-----------------------------------------------------------------------------------------------------------------------+
+| void                                    | :ref:`sort<class_PoolIntArray_method_sort>` **(** **)**                                                               |
++-----------------------------------------+-----------------------------------------------------------------------------------------------------------------------+
 
 Method Descriptions
 -------------------
@@ -206,6 +208,14 @@ Changes the int at the given index.
 
 Returns the number of elements in the array.
 
+----
+
+.. _class_PoolIntArray_method_sort:
+
+- void **sort** **(** **)**
+
+Sorts the elements of the array in ascending order.
+
 .. |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.)`

+ 10 - 0
classes/class_poolrealarray.rst

@@ -72,6 +72,8 @@ Methods
 +-------------------------------------------+---------------------------------------------------------------------------------------------------------------------------+
 | :ref:`int<class_int>`                     | :ref:`size<class_PoolRealArray_method_size>` **(** **)**                                                                  |
 +-------------------------------------------+---------------------------------------------------------------------------------------------------------------------------+
+| void                                      | :ref:`sort<class_PoolRealArray_method_sort>` **(** **)**                                                                  |
++-------------------------------------------+---------------------------------------------------------------------------------------------------------------------------+
 
 Method Descriptions
 -------------------
@@ -206,6 +208,14 @@ Changes the float at the given index.
 
 Returns the number of elements in the array.
 
+----
+
+.. _class_PoolRealArray_method_sort:
+
+- void **sort** **(** **)**
+
+Sorts the elements of the array in ascending order.
+
 .. |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.)`

+ 10 - 0
classes/class_poolstringarray.rst

@@ -77,6 +77,8 @@ Methods
 +-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`int<class_int>`                         | :ref:`size<class_PoolStringArray_method_size>` **(** **)**                                                                     |
 +-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------+
+| void                                          | :ref:`sort<class_PoolStringArray_method_sort>` **(** **)**                                                                     |
++-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------+
 
 Method Descriptions
 -------------------
@@ -217,6 +219,14 @@ Changes the :ref:`String<class_String>` at the given index.
 
 Returns the number of elements in the array.
 
+----
+
+.. _class_PoolStringArray_method_sort:
+
+- void **sort** **(** **)**
+
+Sorts the elements of the array in ascending order.
+
 .. |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.)`

+ 10 - 0
classes/class_poolvector2array.rst

@@ -75,6 +75,8 @@ Methods
 +-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`int<class_int>`                           | :ref:`size<class_PoolVector2Array_method_size>` **(** **)**                                                                       |
 +-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------+
+| void                                            | :ref:`sort<class_PoolVector2Array_method_sort>` **(** **)**                                                                       |
++-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------+
 
 Method Descriptions
 -------------------
@@ -207,6 +209,14 @@ Changes the :ref:`Vector2<class_Vector2>` at the given index.
 
 Returns the number of elements in the array.
 
+----
+
+.. _class_PoolVector2Array_method_sort:
+
+- void **sort** **(** **)**
+
+Sorts the elements of the array in ascending order.
+
 .. |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.)`

+ 10 - 0
classes/class_poolvector3array.rst

@@ -70,6 +70,8 @@ Methods
 +-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`int<class_int>`                           | :ref:`size<class_PoolVector3Array_method_size>` **(** **)**                                                                       |
 +-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------+
+| void                                            | :ref:`sort<class_PoolVector3Array_method_sort>` **(** **)**                                                                       |
++-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------+
 
 Method Descriptions
 -------------------
@@ -202,6 +204,14 @@ Changes the :ref:`Vector3<class_Vector3>` at the given index.
 
 Returns the number of elements in the array.
 
+----
+
+.. _class_PoolVector3Array_method_sort:
+
+- void **sort** **(** **)**
+
+Sorts the elements of the array in ascending order.
+
 .. |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.)`

+ 62 - 10
classes/class_projectsettings.rst

@@ -859,14 +859,20 @@ Properties
 +-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+
 | :ref:`int<class_int>`                         | :ref:`rendering/gles3/shaders/max_simultaneous_compiles.mobile<class_ProjectSettings_property_rendering/gles3/shaders/max_simultaneous_compiles.mobile>`             | ``1``                                                                                            |
 +-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                         | :ref:`rendering/gles3/shaders/max_simultaneous_compiles.web<class_ProjectSettings_property_rendering/gles3/shaders/max_simultaneous_compiles.web>`                   | ``1``                                                                                            |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+
 | :ref:`int<class_int>`                         | :ref:`rendering/gles3/shaders/shader_cache_size_mb<class_ProjectSettings_property_rendering/gles3/shaders/shader_cache_size_mb>`                                     | ``512``                                                                                          |
 +-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+
 | :ref:`int<class_int>`                         | :ref:`rendering/gles3/shaders/shader_cache_size_mb.mobile<class_ProjectSettings_property_rendering/gles3/shaders/shader_cache_size_mb.mobile>`                       | ``128``                                                                                          |
 +-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                         | :ref:`rendering/gles3/shaders/shader_compilation_mode<class_ProjectSettings_property_rendering/gles3/shaders/shader_compilation_mode>`                               | ``2``                                                                                            |
+| :ref:`int<class_int>`                         | :ref:`rendering/gles3/shaders/shader_cache_size_mb.web<class_ProjectSettings_property_rendering/gles3/shaders/shader_cache_size_mb.web>`                             | ``128``                                                                                          |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                         | :ref:`rendering/gles3/shaders/shader_compilation_mode<class_ProjectSettings_property_rendering/gles3/shaders/shader_compilation_mode>`                               | ``0``                                                                                            |
 +-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+
 | :ref:`int<class_int>`                         | :ref:`rendering/gles3/shaders/shader_compilation_mode.mobile<class_ProjectSettings_property_rendering/gles3/shaders/shader_compilation_mode.mobile>`                 | ``0``                                                                                            |
 +-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                         | :ref:`rendering/gles3/shaders/shader_compilation_mode.web<class_ProjectSettings_property_rendering/gles3/shaders/shader_compilation_mode.web>`                       | ``0``                                                                                            |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+
 | :ref:`int<class_int>`                         | :ref:`rendering/limits/buffers/blend_shape_max_buffer_size_kb<class_ProjectSettings_property_rendering/limits/buffers/blend_shape_max_buffer_size_kb>`               | ``4096``                                                                                         |
 +-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+
 | :ref:`int<class_int>`                         | :ref:`rendering/limits/buffers/canvas_polygon_buffer_size_kb<class_ProjectSettings_property_rendering/limits/buffers/canvas_polygon_buffer_size_kb>`                 | ``128``                                                                                          |
@@ -6153,7 +6159,7 @@ This is a way to balance the CPU work between running the game and compiling the
 
 The default value is a conservative one, so you are advised to tweak it according to the hardware you are targeting.
 
-\ **Note:** This setting is only meaningful if ``rendering/gles3/shaders/shader_compilation_mode`` is **not** ``Synchronous``.
+\ **Note:** This setting is only meaningful if :ref:`rendering/gles3/shaders/shader_compilation_mode<class_ProjectSettings_property_rendering/gles3/shaders/shader_compilation_mode>` is **not** ``Synchronous``.
 
 ----
 
@@ -6165,11 +6171,27 @@ The default value is a conservative one, so you are advised to tweak it accordin
 | *Default* | ``1`` |
 +-----------+-------+
 
-The default is a very conservative override for ``rendering/gles3/shaders/max_concurrent_compiles``.
+The default is a very conservative override for :ref:`rendering/gles3/shaders/max_simultaneous_compiles<class_ProjectSettings_property_rendering/gles3/shaders/max_simultaneous_compiles>`.
 
 Depending on the specific devices you are targeting, you may want to raise it.
 
-\ **Note:** This setting is only meaningful if ``rendering/gles3/shaders/shader_compilation_mode`` is **not** ``Synchronous``.
+\ **Note:** This setting is only meaningful if :ref:`rendering/gles3/shaders/shader_compilation_mode<class_ProjectSettings_property_rendering/gles3/shaders/shader_compilation_mode>` is **not** ``Synchronous``.
+
+----
+
+.. _class_ProjectSettings_property_rendering/gles3/shaders/max_simultaneous_compiles.web:
+
+- :ref:`int<class_int>` **rendering/gles3/shaders/max_simultaneous_compiles.web**
+
++-----------+-------+
+| *Default* | ``1`` |
++-----------+-------+
+
+The default is a very conservative override for :ref:`rendering/gles3/shaders/max_simultaneous_compiles<class_ProjectSettings_property_rendering/gles3/shaders/max_simultaneous_compiles>`.
+
+Depending on the specific browsers you are targeting, you may want to raise it.
+
+\ **Note:** This setting is only meaningful if :ref:`rendering/gles3/shaders/shader_compilation_mode<class_ProjectSettings_property_rendering/gles3/shaders/shader_compilation_mode>` is **not** ``Synchronous``.
 
 ----
 
@@ -6183,7 +6205,7 @@ Depending on the specific devices you are targeting, you may want to raise it.
 
 The maximum size, in megabytes, that the ubershader cache can grow up to. On startup, the least recently used entries will be deleted until the total size is within bounds.
 
-\ **Note:** This setting is only meaningful if ``rendering/gles3/shaders/shader_compilation_mode`` is set to ``Asynchronous + Cache``.
+\ **Note:** This setting is only meaningful if :ref:`rendering/gles3/shaders/shader_compilation_mode<class_ProjectSettings_property_rendering/gles3/shaders/shader_compilation_mode>` is set to ``Asynchronous + Cache``.
 
 ----
 
@@ -6195,9 +6217,25 @@ The maximum size, in megabytes, that the ubershader cache can grow up to. On sta
 | *Default* | ``128`` |
 +-----------+---------+
 
-An override for ``rendering/gles3/shaders/ubershader_cache_size_mb``, so a smaller maximum size can be configured for mobile platforms, where storage space is more limited.
+An override for :ref:`rendering/gles3/shaders/shader_cache_size_mb<class_ProjectSettings_property_rendering/gles3/shaders/shader_cache_size_mb>`, so a smaller maximum size can be configured for mobile platforms, where storage space is more limited.
 
-\ **Note:** This setting is only meaningful if ``rendering/gles3/shaders/shader_compilation_mode`` is set to ``Asynchronous + Cache``.
+\ **Note:** This setting is only meaningful if :ref:`rendering/gles3/shaders/shader_compilation_mode<class_ProjectSettings_property_rendering/gles3/shaders/shader_compilation_mode>` is set to ``Asynchronous + Cache``.
+
+----
+
+.. _class_ProjectSettings_property_rendering/gles3/shaders/shader_cache_size_mb.web:
+
+- :ref:`int<class_int>` **rendering/gles3/shaders/shader_cache_size_mb.web**
+
++-----------+---------+
+| *Default* | ``128`` |
++-----------+---------+
+
+An override for :ref:`rendering/gles3/shaders/shader_cache_size_mb<class_ProjectSettings_property_rendering/gles3/shaders/shader_cache_size_mb>`, so a smaller maximum size can be configured for web platforms, where storage space is more limited.
+
+\ **Note:** Currently, shader caching is generally unavailable on web platforms.
+
+\ **Note:** This setting is only meaningful if :ref:`rendering/gles3/shaders/shader_compilation_mode<class_ProjectSettings_property_rendering/gles3/shaders/shader_compilation_mode>` is set to ``Asynchronous + Cache``.
 
 ----
 
@@ -6206,7 +6244,7 @@ An override for ``rendering/gles3/shaders/ubershader_cache_size_mb``, so a small
 - :ref:`int<class_int>` **rendering/gles3/shaders/shader_compilation_mode**
 
 +-----------+-------+
-| *Default* | ``2`` |
+| *Default* | ``0`` |
 +-----------+-------+
 
 If set to ``Asynchronous`` and available on the target device, asynchronous compilation of shaders is enabled (in contrast to ``Asynchronous``).
@@ -6231,12 +6269,26 @@ To reduce loading times after the project has been launched at least once, you c
 | *Default* | ``0`` |
 +-----------+-------+
 
-An override for ``rendering/gles3/shaders/shader_compilation_mode``, so asynchronous compilation can be disabled for mobile.
+An override for :ref:`rendering/gles3/shaders/shader_compilation_mode<class_ProjectSettings_property_rendering/gles3/shaders/shader_compilation_mode>`, so asynchronous compilation can be disabled on mobile platforms.
 
 You may want to do that since mobile GPUs generally won't support ubershaders due to their complexity.
 
 ----
 
+.. _class_ProjectSettings_property_rendering/gles3/shaders/shader_compilation_mode.web:
+
+- :ref:`int<class_int>` **rendering/gles3/shaders/shader_compilation_mode.web**
+
++-----------+-------+
+| *Default* | ``0`` |
++-----------+-------+
+
+An override for :ref:`rendering/gles3/shaders/shader_compilation_mode<class_ProjectSettings_property_rendering/gles3/shaders/shader_compilation_mode>`, so asynchronous compilation can be disabled on web platforms.
+
+You may want to do that since certain browsers (especially on mobile platforms) generally won't support ubershaders due to their complexity.
+
+----
+
 .. _class_ProjectSettings_property_rendering/limits/buffers/blend_shape_max_buffer_size_kb:
 
 - :ref:`int<class_int>` **rendering/limits/buffers/blend_shape_max_buffer_size_kb**
@@ -6985,7 +7037,7 @@ Subdivision quadrant size for shadow mapping. See shadow mapping documentation.
 | *Default* | ``4096`` |
 +-----------+----------+
 
-Size for shadow atlas (used for OmniLights and SpotLights). See documentation.
+Size for shadow atlas (used for OmniLights and SpotLights). The value will be rounded up to the nearest power of 2. See shadow mapping documentation.
 
 ----
 

+ 19 - 19
classes/class_scenetreetween.rst

@@ -22,7 +22,7 @@ Description
 
 A ``SceneTreeTween`` can be created by using either :ref:`SceneTree.create_tween<class_SceneTree_method_create_tween>` or :ref:`Node.create_tween<class_Node_method_create_tween>`. ``SceneTreeTween``\ s created manually (i.e. by using ``Tween.new()``) are invalid. They can't be used for tweening values, but you can do manual interpolation with :ref:`interpolate_value<class_SceneTreeTween_method_interpolate_value>`.
 
-A ``SceneTreeTween`` animation is composed of a sequence of :ref:`Tweener<class_Tweener>`\ s, which by default are executed one after another. You can create a sequence by appending :ref:`Tweener<class_Tweener>`\ s to the ``SceneTreeTween``. Animating something with a :ref:`Tweener<class_Tweener>` is called tweening. Example tweening sequence looks like this:
+A tween animation is created by adding :ref:`Tweener<class_Tweener>`\ s to the ``SceneTreeTween`` object, using :ref:`tween_property<class_SceneTreeTween_method_tween_property>`, :ref:`tween_interval<class_SceneTreeTween_method_tween_interval>`, :ref:`tween_callback<class_SceneTreeTween_method_tween_callback>` or :ref:`tween_method<class_SceneTreeTween_method_tween_method>`:
 
 ::
 
@@ -31,9 +31,9 @@ A ``SceneTreeTween`` animation is composed of a sequence of :ref:`Tweener<class_
     tween.tween_property($Sprite, "scale", Vector2(), 1)
     tween.tween_callback($Sprite, "queue_free")
 
-This sequence will make the ``$Sprite`` node turn red, then shrink and finally the :ref:`Node.queue_free<class_Node_method_queue_free>` is called to remove the sprite. See methods :ref:`tween_property<class_SceneTreeTween_method_tween_property>`, :ref:`tween_interval<class_SceneTreeTween_method_tween_interval>`, :ref:`tween_callback<class_SceneTreeTween_method_tween_callback>` and :ref:`tween_method<class_SceneTreeTween_method_tween_method>` for more usage information.
+This sequence will make the ``$Sprite`` node turn red, then shrink, before finally calling :ref:`Node.queue_free<class_Node_method_queue_free>` to free the sprite. :ref:`Tweener<class_Tweener>`\ s are executed one after another by default. This behavior can be changed using :ref:`parallel<class_SceneTreeTween_method_parallel>` and :ref:`set_parallel<class_SceneTreeTween_method_set_parallel>`.
 
-When a :ref:`Tweener<class_Tweener>` is created with one of the ``tween_*`` methods, a chained method call can be used to tweak the properties of this :ref:`Tweener<class_Tweener>`. For example, if you want to set different transition type in the above example, you can do:
+When a :ref:`Tweener<class_Tweener>` is created with one of the ``tween_*`` methods, a chained method call can be used to tweak the properties of this :ref:`Tweener<class_Tweener>`. For example, if you want to set a different transition type in the above example, you can use :ref:`set_trans<class_SceneTreeTween_method_set_trans>`:
 
 ::
 
@@ -42,7 +42,7 @@ When a :ref:`Tweener<class_Tweener>` is created with one of the ``tween_*`` meth
     tween.tween_property($Sprite, "scale", Vector2(), 1).set_trans(Tween.TRANS_BOUNCE)
     tween.tween_callback($Sprite, "queue_free")
 
-Most of the ``SceneTreeTween`` methods can be chained this way too. In this example the ``SceneTreeTween`` is bound and have set a default transition:
+Most of the ``SceneTreeTween`` methods can be chained this way too. In the following example the ``SceneTreeTween`` is bound to the running script's node and a default transition is set for its :ref:`Tweener<class_Tweener>`\ s:
 
 ::
 
@@ -51,21 +51,21 @@ Most of the ``SceneTreeTween`` methods can be chained this way too. In this exam
     tween.tween_property($Sprite, "scale", Vector2(), 1)
     tween.tween_callback($Sprite, "queue_free")
 
-Another interesting use for ``SceneTreeTween``\ s is animating arbitrary set of objects:
+Another interesting use for ``SceneTreeTween``\ s is animating arbitrary sets of objects:
 
 ::
 
     var tween = create_tween()
     for sprite in get_children():
-        tween.tween_property(sprite, "position", Vector2(), 1)
+        tween.tween_property(sprite, "position", Vector2(0, 0), 1)
 
 In the example above, all children of a node are moved one after another to position (0, 0).
 
-Some :ref:`Tweener<class_Tweener>`\ s use transitions and eases. The first accepts an :ref:`TransitionType<enum_Tween_TransitionType>` constant, and refers to the way the timing of the animation is handled (see `easings.net <https://easings.net/>`__ for some examples). The second accepts an :ref:`EaseType<enum_Tween_EaseType>` constant, and controls where the ``trans_type`` is applied to the interpolation (in the beginning, the end, or both). If you don't know which transition and easing to pick, you can try different :ref:`TransitionType<enum_Tween_TransitionType>` constants with :ref:`Tween.EASE_IN_OUT<class_Tween_constant_EASE_IN_OUT>`, and use the one that looks best.
+Some :ref:`Tweener<class_Tweener>`\ s use transitions and eases. The first accepts a :ref:`TransitionType<enum_Tween_TransitionType>` constant, and refers to the way the timing of the animation is handled (see `easings.net <https://easings.net/>`__ for some examples). The second accepts an :ref:`EaseType<enum_Tween_EaseType>` constant, and controls where the ``trans_type`` is applied to the interpolation (in the beginning, the end, or both). If you don't know which transition and easing to pick, you can try different :ref:`TransitionType<enum_Tween_TransitionType>` constants with :ref:`Tween.EASE_IN_OUT<class_Tween_constant_EASE_IN_OUT>`, and use the one that looks best.
 
 \ `Tween easing and transition types cheatsheet <https://raw.githubusercontent.com/godotengine/godot-docs/master/img/tween_cheatsheet.png>`__\ 
 
-\ **Note:** All ``SceneTreeTween``\ s will automatically start by default. To prevent a ``SceneTreeTween`` from autostarting, you can call :ref:`stop<class_SceneTreeTween_method_stop>` immediately after it was created.
+\ **Note:** All ``SceneTreeTween``\ s will automatically start by default. To prevent a ``SceneTreeTween`` from autostarting, you can call :ref:`stop<class_SceneTreeTween_method_stop>` immediately after it is created.
 
 Methods
 -------
@@ -127,7 +127,7 @@ Signals
 
 Emitted when the ``SceneTreeTween`` has finished all tweening. Never emitted when the ``SceneTreeTween`` is set to infinite looping (see :ref:`set_loops<class_SceneTreeTween_method_set_loops>`).
 
-\ **Note:** The ``SceneTreeTween`` is removed (invalidated) after this signal is emitted, but it doesn't happen immediately, but on the next processing frame. Calling :ref:`stop<class_SceneTreeTween_method_stop>` inside the signal callback will preserve the ``SceneTreeTween``.
+\ **Note:** The ``SceneTreeTween`` is removed (invalidated) in the next processing frame after this signal is emitted. Calling :ref:`stop<class_SceneTreeTween_method_stop>` inside the signal callback will prevent the ``SceneTreeTween`` from being removed.
 
 ----
 
@@ -135,7 +135,7 @@ Emitted when the ``SceneTreeTween`` has finished all tweening. Never emitted whe
 
 - **loop_finished** **(** :ref:`int<class_int>` loop_count **)**
 
-Emitted when a full loop is complete (see :ref:`set_loops<class_SceneTreeTween_method_set_loops>`), providing the loop index. This signal is not emitted after final loop, use :ref:`finished<class_SceneTreeTween_signal_finished>` instead for this case.
+Emitted when a full loop is complete (see :ref:`set_loops<class_SceneTreeTween_method_set_loops>`), providing the loop index. This signal is not emitted after the final loop, use :ref:`finished<class_SceneTreeTween_signal_finished>` instead for this case.
 
 ----
 
@@ -143,7 +143,7 @@ Emitted when a full loop is complete (see :ref:`set_loops<class_SceneTreeTween_m
 
 - **step_finished** **(** :ref:`int<class_int>` idx **)**
 
-Emitted when one step of the ``SceneTreeTween`` is complete, providing the step index. One step is either a single :ref:`Tweener<class_Tweener>` or a group of :ref:`Tweener<class_Tweener>`\ s running parallelly.
+Emitted when one step of the ``SceneTreeTween`` is complete, providing the step index. One step is either a single :ref:`Tweener<class_Tweener>` or a group of :ref:`Tweener<class_Tweener>`\ s running in parallel.
 
 Enumerations
 ------------
@@ -196,11 +196,11 @@ Used to chain two :ref:`Tweener<class_Tweener>`\ s after :ref:`set_parallel<clas
 
 - :ref:`bool<class_bool>` **custom_step** **(** :ref:`float<class_float>` delta **)**
 
-Processes the ``SceneTreeTween`` by given ``delta`` value, in seconds. Mostly useful when the ``SceneTreeTween`` is paused, for controlling it manually. Can also be used to end the ``SceneTreeTween`` animation immediately, by using ``delta`` longer than the whole duration.
+Processes the ``SceneTreeTween`` by the given ``delta`` value, in seconds. This is mostly useful for manual control when the ``SceneTreeTween`` is paused. It can also be used to end the ``SceneTreeTween`` animation immediately, by setting ``delta`` longer than the whole duration of the ``SceneTreeTween`` animation.
 
 Returns ``true`` if the ``SceneTreeTween`` still has :ref:`Tweener<class_Tweener>`\ s that haven't finished.
 
-\ **Note:** The ``SceneTreeTween`` will become invalid after finished, but you can call :ref:`stop<class_SceneTreeTween_method_stop>` after the step, to keep it and reset.
+\ **Note:** The ``SceneTreeTween`` will become invalid in the next processing frame after its animation finishes. Calling :ref:`stop<class_SceneTreeTween_method_stop>` after performing :ref:`custom_step<class_SceneTreeTween_method_custom_step>` instead keeps and resets the ``SceneTreeTween``.
 
 ----
 
@@ -208,7 +208,7 @@ Returns ``true`` if the ``SceneTreeTween`` still has :ref:`Tweener<class_Tweener
 
 - :ref:`float<class_float>` **get_total_elapsed_time** **(** **)** |const|
 
-Returns the total time in seconds the ``SceneTreeTween`` has been animating (i.e. time since it started, not counting pauses etc.). The time is affected by :ref:`set_speed_scale<class_SceneTreeTween_method_set_speed_scale>` and :ref:`stop<class_SceneTreeTween_method_stop>` will reset it to ``0``.
+Returns the total time in seconds the ``SceneTreeTween`` has been animating (i.e. the time since it started, not counting pauses etc.). The time is affected by :ref:`set_speed_scale<class_SceneTreeTween_method_set_speed_scale>`, and :ref:`stop<class_SceneTreeTween_method_stop>` will reset it to ``0``.
 
 \ **Note:** As it results from accumulating frame deltas, the time returned after the ``SceneTreeTween`` has finished animating will be slightly greater than the actual ``SceneTreeTween`` duration.
 
@@ -244,7 +244,7 @@ Returns whether the ``SceneTreeTween`` is currently running, i.e. it wasn't paus
 
 - :ref:`bool<class_bool>` **is_valid** **(** **)** |const|
 
-Returns whether the ``SceneTreeTween`` is valid. A valid ``SceneTreeTween`` is a ``SceneTreeTween`` contained by the scene tree (i.e. the array from :ref:`SceneTree.get_processed_tweens<class_SceneTree_method_get_processed_tweens>` will contain this ``SceneTreeTween``). ``SceneTreeTween`` might become invalid when it has finished tweening or was killed, also when created with ``Tween.new()``. Invalid ``SceneTreeTween`` can't have :ref:`Tweener<class_Tweener>`\ s appended, because it can't animate them. You can however still use :ref:`interpolate_value<class_SceneTreeTween_method_interpolate_value>`.
+Returns whether the ``SceneTreeTween`` is valid. A valid ``SceneTreeTween`` is a ``SceneTreeTween`` contained by the scene tree (i.e. the array from :ref:`SceneTree.get_processed_tweens<class_SceneTree_method_get_processed_tweens>` will contain this ``SceneTreeTween``). A ``SceneTreeTween`` might become invalid when it has finished tweening, is killed, or when created with ``SceneTreeTween.new()``. Invalid ``SceneTreeTween``\ s can't have :ref:`Tweener<class_Tweener>`\ s appended. You can however still use :ref:`interpolate_value<class_SceneTreeTween_method_interpolate_value>`.
 
 ----
 
@@ -305,9 +305,9 @@ Sets the default ease type for :ref:`PropertyTweener<class_PropertyTweener>`\ s
 
 Sets the number of times the tweening sequence will be repeated, i.e. ``set_loops(2)`` will run the animation twice.
 
-Calling this method without arguments will make the ``SceneTreeTween`` run infinitely, until it is either killed by :ref:`kill<class_SceneTreeTween_method_kill>` or by freeing bound node, or all the animated objects have been freed (which makes further animation impossible).
+Calling this method without arguments will make the ``SceneTreeTween`` run infinitely, until either it is killed with :ref:`kill<class_SceneTreeTween_method_kill>`, the ``SceneTreeTween``'s bound node is freed, or all the animated objects have been freed (which makes further animation impossible).
 
-\ **Warning:** Make sure to always add some duration/delay when using infinite loops. 0-duration looped animations (e.g. single :ref:`CallbackTweener<class_CallbackTweener>` with no delay or :ref:`PropertyTweener<class_PropertyTweener>` with invalid node) are equivalent to infinite ``while`` loops and will freeze your game. If a ``SceneTreeTween``'s lifetime depends on some node, always use :ref:`bind_node<class_SceneTreeTween_method_bind_node>`.
+\ **Warning:** Make sure to always add some duration/delay when using infinite loops. To prevent the game freezing, 0-duration looped animations (e.g. a single :ref:`CallbackTweener<class_CallbackTweener>` with no delay) are stopped after a small number of loops, which may produce unexpected results. If a ``SceneTreeTween``'s lifetime depends on some node, always use :ref:`bind_node<class_SceneTreeTween_method_bind_node>`.
 
 ----
 
@@ -390,7 +390,7 @@ Example: turning a sprite red and then blue, with 2 second delay.
 
 - :ref:`IntervalTweener<class_IntervalTweener>` **tween_interval** **(** :ref:`float<class_float>` time **)**
 
-Creates and appends an :ref:`IntervalTweener<class_IntervalTweener>`. This method can be used to create delays in the tween animation, as an alternative for using the delay in other :ref:`Tweener<class_Tweener>`\ s or when there's no animation (in which case the ``SceneTreeTween`` acts as a timer). ``time`` is the length of the interval, in seconds.
+Creates and appends an :ref:`IntervalTweener<class_IntervalTweener>`. This method can be used to create delays in the tween animation, as an alternative to using the delay in other :ref:`Tweener<class_Tweener>`\ s, or when there's no animation (in which case the ``SceneTreeTween`` acts as a timer). ``time`` is the length of the interval, in seconds.
 
 Example: creating an interval in code execution.
 
@@ -444,7 +444,7 @@ Example: setting a text of a :ref:`Label<class_Label>`, using an intermediate me
 
 - :ref:`PropertyTweener<class_PropertyTweener>` **tween_property** **(** :ref:`Object<class_Object>` object, :ref:`NodePath<class_NodePath>` property, :ref:`Variant<class_Variant>` final_val, :ref:`float<class_float>` duration **)**
 
-Creates and appends a :ref:`PropertyTweener<class_PropertyTweener>`. This method tweens a ``property`` of an ``object`` between an initial value and ``final_val`` in a span of time equal to ``duration``, in seconds. The initial value by default is a value at the time the tweening of the :ref:`PropertyTweener<class_PropertyTweener>` start. For example:
+Creates and appends a :ref:`PropertyTweener<class_PropertyTweener>`. This method tweens a ``property`` of an ``object`` between an initial value and ``final_val`` in a span of time equal to ``duration``, in seconds. The initial value by default is the property's value at the time the tweening of the :ref:`PropertyTweener<class_PropertyTweener>` starts. For example:
 
 ::
 

+ 51 - 17
classes/class_spatial.rst

@@ -34,23 +34,27 @@ Tutorials
 Properties
 ----------
 
-+-----------------------------------------+------------------------------------------------------------------+-----------------------------------------------------+
-| :ref:`SpatialGizmo<class_SpatialGizmo>` | :ref:`gizmo<class_Spatial_property_gizmo>`                       |                                                     |
-+-----------------------------------------+------------------------------------------------------------------+-----------------------------------------------------+
-| :ref:`Transform<class_Transform>`       | :ref:`global_transform<class_Spatial_property_global_transform>` |                                                     |
-+-----------------------------------------+------------------------------------------------------------------+-----------------------------------------------------+
-| :ref:`Vector3<class_Vector3>`           | :ref:`rotation<class_Spatial_property_rotation>`                 |                                                     |
-+-----------------------------------------+------------------------------------------------------------------+-----------------------------------------------------+
-| :ref:`Vector3<class_Vector3>`           | :ref:`rotation_degrees<class_Spatial_property_rotation_degrees>` | ``Vector3( 0, 0, 0 )``                              |
-+-----------------------------------------+------------------------------------------------------------------+-----------------------------------------------------+
-| :ref:`Vector3<class_Vector3>`           | :ref:`scale<class_Spatial_property_scale>`                       | ``Vector3( 1, 1, 1 )``                              |
-+-----------------------------------------+------------------------------------------------------------------+-----------------------------------------------------+
-| :ref:`Transform<class_Transform>`       | :ref:`transform<class_Spatial_property_transform>`               | ``Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 )`` |
-+-----------------------------------------+------------------------------------------------------------------+-----------------------------------------------------+
-| :ref:`Vector3<class_Vector3>`           | :ref:`translation<class_Spatial_property_translation>`           | ``Vector3( 0, 0, 0 )``                              |
-+-----------------------------------------+------------------------------------------------------------------+-----------------------------------------------------+
-| :ref:`bool<class_bool>`                 | :ref:`visible<class_Spatial_property_visible>`                   | ``true``                                            |
-+-----------------------------------------+------------------------------------------------------------------+-----------------------------------------------------+
++-----------------------------------------+----------------------------------------------------------------------+-----------------------------------------------------+
+| :ref:`SpatialGizmo<class_SpatialGizmo>` | :ref:`gizmo<class_Spatial_property_gizmo>`                           |                                                     |
++-----------------------------------------+----------------------------------------------------------------------+-----------------------------------------------------+
+| :ref:`Vector3<class_Vector3>`           | :ref:`global_rotation<class_Spatial_property_global_rotation>`       |                                                     |
++-----------------------------------------+----------------------------------------------------------------------+-----------------------------------------------------+
+| :ref:`Transform<class_Transform>`       | :ref:`global_transform<class_Spatial_property_global_transform>`     |                                                     |
++-----------------------------------------+----------------------------------------------------------------------+-----------------------------------------------------+
+| :ref:`Vector3<class_Vector3>`           | :ref:`global_translation<class_Spatial_property_global_translation>` |                                                     |
++-----------------------------------------+----------------------------------------------------------------------+-----------------------------------------------------+
+| :ref:`Vector3<class_Vector3>`           | :ref:`rotation<class_Spatial_property_rotation>`                     |                                                     |
++-----------------------------------------+----------------------------------------------------------------------+-----------------------------------------------------+
+| :ref:`Vector3<class_Vector3>`           | :ref:`rotation_degrees<class_Spatial_property_rotation_degrees>`     | ``Vector3( 0, 0, 0 )``                              |
++-----------------------------------------+----------------------------------------------------------------------+-----------------------------------------------------+
+| :ref:`Vector3<class_Vector3>`           | :ref:`scale<class_Spatial_property_scale>`                           | ``Vector3( 1, 1, 1 )``                              |
++-----------------------------------------+----------------------------------------------------------------------+-----------------------------------------------------+
+| :ref:`Transform<class_Transform>`       | :ref:`transform<class_Spatial_property_transform>`                   | ``Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 )`` |
++-----------------------------------------+----------------------------------------------------------------------+-----------------------------------------------------+
+| :ref:`Vector3<class_Vector3>`           | :ref:`translation<class_Spatial_property_translation>`               | ``Vector3( 0, 0, 0 )``                              |
++-----------------------------------------+----------------------------------------------------------------------+-----------------------------------------------------+
+| :ref:`bool<class_bool>`                 | :ref:`visible<class_Spatial_property_visible>`                       | ``true``                                            |
++-----------------------------------------+----------------------------------------------------------------------+-----------------------------------------------------+
 
 Methods
 -------
@@ -196,6 +200,22 @@ The :ref:`SpatialGizmo<class_SpatialGizmo>` for this node. Used for example in :
 
 ----
 
+.. _class_Spatial_property_global_rotation:
+
+- :ref:`Vector3<class_Vector3>` **global_rotation**
+
++----------+----------------------------+
+| *Setter* | set_global_rotation(value) |
++----------+----------------------------+
+| *Getter* | get_global_rotation()      |
++----------+----------------------------+
+
+Rotation part of the global transformation in radians, specified in terms of YXZ-Euler angles in the format (X angle, Y angle, Z angle).
+
+\ **Note:** In the mathematical sense, rotation is a matrix and not a vector. The three Euler angles, which are the three independent parameters of the Euler-angle parametrization of the rotation matrix, are stored in a :ref:`Vector3<class_Vector3>` data structure not because the rotation is a vector, but only because :ref:`Vector3<class_Vector3>` exists as a convenient data-structure to store 3 floating-point numbers. Therefore, applying affine operations on the rotation "vector" is not meaningful.
+
+----
+
 .. _class_Spatial_property_global_transform:
 
 - :ref:`Transform<class_Transform>` **global_transform**
@@ -210,6 +230,20 @@ World space (global) :ref:`Transform<class_Transform>` of this node.
 
 ----
 
+.. _class_Spatial_property_global_translation:
+
+- :ref:`Vector3<class_Vector3>` **global_translation**
+
++----------+-------------------------------+
+| *Setter* | set_global_translation(value) |
++----------+-------------------------------+
+| *Getter* | get_global_translation()      |
++----------+-------------------------------+
+
+Global position of this node. This is equivalent to ``global_transform.origin``.
+
+----
+
 .. _class_Spatial_property_rotation:
 
 - :ref:`Vector3<class_Vector3>` **rotation**

+ 1 - 1
classes/class_spritebase3d.rst

@@ -344,7 +344,7 @@ The size of one pixel's width on the sprite to scale it in 3D.
 
 Sets the render priority for the sprite. Higher priority objects will be sorted in front of lower priority objects.
 
-\ **Node:** This only applies if :ref:`alpha_cut<class_SpriteBase3D_property_alpha_cut>` is set to :ref:`ALPHA_CUT_DISABLED<class_SpriteBase3D_constant_ALPHA_CUT_DISABLED>` (default value).
+\ **Note:** This only applies if :ref:`alpha_cut<class_SpriteBase3D_property_alpha_cut>` is set to :ref:`ALPHA_CUT_DISABLED<class_SpriteBase3D_constant_ALPHA_CUT_DISABLED>` (default value).
 
 \ **Note:** This only applies to sorting of transparent objects. This will not impact how transparent objects are sorted relative to opaque objects. This is because opaque objects are not sorted, while transparent objects are sorted from back to front (subject to priority).
 

+ 20 - 1
classes/class_string.rst

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

+ 2 - 2
classes/class_stylebox.rst

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

+ 84 - 66
classes/class_textedit.rst

@@ -23,71 +23,73 @@ TextEdit is meant for editing large, multiline text. It also has facilities for
 Properties
 ----------
 
-+----------------------------------------------+-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                      | :ref:`bookmark_gutter<class_TextEdit_property_bookmark_gutter>`                               | ``false``                                                                           |
-+----------------------------------------------+-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                      | :ref:`breakpoint_gutter<class_TextEdit_property_breakpoint_gutter>`                           | ``false``                                                                           |
-+----------------------------------------------+-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                      | :ref:`caret_blink<class_TextEdit_property_caret_blink>`                                       | ``false``                                                                           |
-+----------------------------------------------+-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                    | :ref:`caret_blink_speed<class_TextEdit_property_caret_blink_speed>`                           | ``0.65``                                                                            |
-+----------------------------------------------+-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                      | :ref:`caret_block_mode<class_TextEdit_property_caret_block_mode>`                             | ``false``                                                                           |
-+----------------------------------------------+-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                      | :ref:`caret_moving_by_right_click<class_TextEdit_property_caret_moving_by_right_click>`       | ``true``                                                                            |
-+----------------------------------------------+-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                      | :ref:`context_menu_enabled<class_TextEdit_property_context_menu_enabled>`                     | ``true``                                                                            |
-+----------------------------------------------+-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                      | :ref:`deselect_on_focus_loss_enabled<class_TextEdit_property_deselect_on_focus_loss_enabled>` | ``true``                                                                            |
-+----------------------------------------------+-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                      | :ref:`draw_spaces<class_TextEdit_property_draw_spaces>`                                       | ``false``                                                                           |
-+----------------------------------------------+-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                      | :ref:`draw_tabs<class_TextEdit_property_draw_tabs>`                                           | ``false``                                                                           |
-+----------------------------------------------+-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
-| :ref:`FocusMode<enum_Control_FocusMode>`     | focus_mode                                                                                    | ``2`` (overrides :ref:`Control<class_Control_property_focus_mode>`)                 |
-+----------------------------------------------+-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                      | :ref:`fold_gutter<class_TextEdit_property_fold_gutter>`                                       | ``false``                                                                           |
-+----------------------------------------------+-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                      | :ref:`hiding_enabled<class_TextEdit_property_hiding_enabled>`                                 | ``false``                                                                           |
-+----------------------------------------------+-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                      | :ref:`highlight_all_occurrences<class_TextEdit_property_highlight_all_occurrences>`           | ``false``                                                                           |
-+----------------------------------------------+-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                      | :ref:`highlight_current_line<class_TextEdit_property_highlight_current_line>`                 | ``false``                                                                           |
-+----------------------------------------------+-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                      | :ref:`middle_mouse_paste_enabled<class_TextEdit_property_middle_mouse_paste_enabled>`         | ``true``                                                                            |
-+----------------------------------------------+-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                      | :ref:`minimap_draw<class_TextEdit_property_minimap_draw>`                                     | ``false``                                                                           |
-+----------------------------------------------+-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                        | :ref:`minimap_width<class_TextEdit_property_minimap_width>`                                   | ``80``                                                                              |
-+----------------------------------------------+-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
-| :ref:`CursorShape<enum_Control_CursorShape>` | mouse_default_cursor_shape                                                                    | ``1`` (overrides :ref:`Control<class_Control_property_mouse_default_cursor_shape>`) |
-+----------------------------------------------+-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                      | :ref:`override_selected_font_color<class_TextEdit_property_override_selected_font_color>`     | ``false``                                                                           |
-+----------------------------------------------+-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                      | :ref:`readonly<class_TextEdit_property_readonly>`                                             | ``false``                                                                           |
-+----------------------------------------------+-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                        | :ref:`scroll_horizontal<class_TextEdit_property_scroll_horizontal>`                           | ``0``                                                                               |
-+----------------------------------------------+-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                    | :ref:`scroll_vertical<class_TextEdit_property_scroll_vertical>`                               | ``0.0``                                                                             |
-+----------------------------------------------+-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                      | :ref:`selecting_enabled<class_TextEdit_property_selecting_enabled>`                           | ``true``                                                                            |
-+----------------------------------------------+-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                      | :ref:`shortcut_keys_enabled<class_TextEdit_property_shortcut_keys_enabled>`                   | ``true``                                                                            |
-+----------------------------------------------+-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                      | :ref:`show_line_numbers<class_TextEdit_property_show_line_numbers>`                           | ``false``                                                                           |
-+----------------------------------------------+-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                      | :ref:`smooth_scrolling<class_TextEdit_property_smooth_scrolling>`                             | ``false``                                                                           |
-+----------------------------------------------+-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                      | :ref:`syntax_highlighting<class_TextEdit_property_syntax_highlighting>`                       | ``false``                                                                           |
-+----------------------------------------------+-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
-| :ref:`String<class_String>`                  | :ref:`text<class_TextEdit_property_text>`                                                     | ``""``                                                                              |
-+----------------------------------------------+-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                    | :ref:`v_scroll_speed<class_TextEdit_property_v_scroll_speed>`                                 | ``80.0``                                                                            |
-+----------------------------------------------+-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                      | :ref:`virtual_keyboard_enabled<class_TextEdit_property_virtual_keyboard_enabled>`             | ``true``                                                                            |
-+----------------------------------------------+-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                      | :ref:`wrap_enabled<class_TextEdit_property_wrap_enabled>`                                     | ``false``                                                                           |
-+----------------------------------------------+-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
++----------------------------------------------+-------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                      | :ref:`bookmark_gutter<class_TextEdit_property_bookmark_gutter>`                                 | ``false``                                                                           |
++----------------------------------------------+-------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                      | :ref:`breakpoint_gutter<class_TextEdit_property_breakpoint_gutter>`                             | ``false``                                                                           |
++----------------------------------------------+-------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                      | :ref:`caret_blink<class_TextEdit_property_caret_blink>`                                         | ``false``                                                                           |
++----------------------------------------------+-------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                    | :ref:`caret_blink_speed<class_TextEdit_property_caret_blink_speed>`                             | ``0.65``                                                                            |
++----------------------------------------------+-------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                      | :ref:`caret_block_mode<class_TextEdit_property_caret_block_mode>`                               | ``false``                                                                           |
++----------------------------------------------+-------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                      | :ref:`caret_moving_by_right_click<class_TextEdit_property_caret_moving_by_right_click>`         | ``true``                                                                            |
++----------------------------------------------+-------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                      | :ref:`context_menu_enabled<class_TextEdit_property_context_menu_enabled>`                       | ``true``                                                                            |
++----------------------------------------------+-------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                      | :ref:`deselect_on_focus_loss_enabled<class_TextEdit_property_deselect_on_focus_loss_enabled>`   | ``true``                                                                            |
++----------------------------------------------+-------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                      | :ref:`drag_and_drop_selection_enabled<class_TextEdit_property_drag_and_drop_selection_enabled>` | ``true``                                                                            |
++----------------------------------------------+-------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                      | :ref:`draw_spaces<class_TextEdit_property_draw_spaces>`                                         | ``false``                                                                           |
++----------------------------------------------+-------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                      | :ref:`draw_tabs<class_TextEdit_property_draw_tabs>`                                             | ``false``                                                                           |
++----------------------------------------------+-------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
+| :ref:`FocusMode<enum_Control_FocusMode>`     | focus_mode                                                                                      | ``2`` (overrides :ref:`Control<class_Control_property_focus_mode>`)                 |
++----------------------------------------------+-------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                      | :ref:`fold_gutter<class_TextEdit_property_fold_gutter>`                                         | ``false``                                                                           |
++----------------------------------------------+-------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                      | :ref:`hiding_enabled<class_TextEdit_property_hiding_enabled>`                                   | ``false``                                                                           |
++----------------------------------------------+-------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                      | :ref:`highlight_all_occurrences<class_TextEdit_property_highlight_all_occurrences>`             | ``false``                                                                           |
++----------------------------------------------+-------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                      | :ref:`highlight_current_line<class_TextEdit_property_highlight_current_line>`                   | ``false``                                                                           |
++----------------------------------------------+-------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                      | :ref:`middle_mouse_paste_enabled<class_TextEdit_property_middle_mouse_paste_enabled>`           | ``true``                                                                            |
++----------------------------------------------+-------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                      | :ref:`minimap_draw<class_TextEdit_property_minimap_draw>`                                       | ``false``                                                                           |
++----------------------------------------------+-------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                        | :ref:`minimap_width<class_TextEdit_property_minimap_width>`                                     | ``80``                                                                              |
++----------------------------------------------+-------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
+| :ref:`CursorShape<enum_Control_CursorShape>` | mouse_default_cursor_shape                                                                      | ``1`` (overrides :ref:`Control<class_Control_property_mouse_default_cursor_shape>`) |
++----------------------------------------------+-------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                      | :ref:`override_selected_font_color<class_TextEdit_property_override_selected_font_color>`       | ``false``                                                                           |
++----------------------------------------------+-------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                      | :ref:`readonly<class_TextEdit_property_readonly>`                                               | ``false``                                                                           |
++----------------------------------------------+-------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                        | :ref:`scroll_horizontal<class_TextEdit_property_scroll_horizontal>`                             | ``0``                                                                               |
++----------------------------------------------+-------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                    | :ref:`scroll_vertical<class_TextEdit_property_scroll_vertical>`                                 | ``0.0``                                                                             |
++----------------------------------------------+-------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                      | :ref:`selecting_enabled<class_TextEdit_property_selecting_enabled>`                             | ``true``                                                                            |
++----------------------------------------------+-------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                      | :ref:`shortcut_keys_enabled<class_TextEdit_property_shortcut_keys_enabled>`                     | ``true``                                                                            |
++----------------------------------------------+-------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                      | :ref:`show_line_numbers<class_TextEdit_property_show_line_numbers>`                             | ``false``                                                                           |
++----------------------------------------------+-------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                      | :ref:`smooth_scrolling<class_TextEdit_property_smooth_scrolling>`                               | ``false``                                                                           |
++----------------------------------------------+-------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                      | :ref:`syntax_highlighting<class_TextEdit_property_syntax_highlighting>`                         | ``false``                                                                           |
++----------------------------------------------+-------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`                  | :ref:`text<class_TextEdit_property_text>`                                                       | ``""``                                                                              |
++----------------------------------------------+-------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                    | :ref:`v_scroll_speed<class_TextEdit_property_v_scroll_speed>`                                   | ``80.0``                                                                            |
++----------------------------------------------+-------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                      | :ref:`virtual_keyboard_enabled<class_TextEdit_property_virtual_keyboard_enabled>`               | ``true``                                                                            |
++----------------------------------------------+-------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                      | :ref:`wrap_enabled<class_TextEdit_property_wrap_enabled>`                                       | ``false``                                                                           |
++----------------------------------------------+-------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+
 
 Methods
 -------
@@ -556,6 +558,22 @@ If ``true``, the selected text will be deselected when focus is lost.
 
 ----
 
+.. _class_TextEdit_property_drag_and_drop_selection_enabled:
+
+- :ref:`bool<class_bool>` **drag_and_drop_selection_enabled**
+
++-----------+--------------------------------------------+
+| *Default* | ``true``                                   |
++-----------+--------------------------------------------+
+| *Setter*  | set_drag_and_drop_selection_enabled(value) |
++-----------+--------------------------------------------+
+| *Getter*  | is_drag_and_drop_selection_enabled()       |
++-----------+--------------------------------------------+
+
+If ``true``, allow drag and drop of selected text.
+
+----
+
 .. _class_TextEdit_property_draw_spaces:
 
 - :ref:`bool<class_bool>` **draw_spaces**
@@ -1391,7 +1409,7 @@ Sets the text for a specific line.
 
 - void **set_line_as_bookmark** **(** :ref:`int<class_int>` line, :ref:`bool<class_bool>` bookmark **)**
 
-Bookmarks the ``line`` if ``bookmark`` is true. Deletes the bookmark if ``bookmark`` is false.
+Bookmarks the ``line`` if ``bookmark`` is ``true``. Deletes the bookmark if ``bookmark`` is ``false``.
 
 Bookmarks are shown in the :ref:`breakpoint_gutter<class_TextEdit_property_breakpoint_gutter>`.
 

+ 4 - 4
classes/class_treeitem.rst

@@ -427,7 +427,7 @@ Returns the metadata value that was set for the given column using :ref:`set_met
 
 - :ref:`TreeItem<class_TreeItem>` **get_next** **(** **)**
 
-Returns the next TreeItem in the tree or a null object if there is none.
+Returns the next sibling TreeItem in the tree or a null object if there is none.
 
 ----
 
@@ -435,7 +435,7 @@ Returns the next TreeItem in the tree or a null object if there is none.
 
 - :ref:`TreeItem<class_TreeItem>` **get_next_visible** **(** :ref:`bool<class_bool>` wrap=false **)**
 
-Returns the next visible TreeItem in the tree or a null object if there is none.
+Returns the next visible sibling TreeItem in the tree or a null object if there is none.
 
 If ``wrap`` is enabled, the method will wrap around to the first visible element in the tree when called on the last visible element, otherwise it returns ``null``.
 
@@ -453,7 +453,7 @@ Returns the parent TreeItem or a null object if there is none.
 
 - :ref:`TreeItem<class_TreeItem>` **get_prev** **(** **)**
 
-Returns the previous TreeItem in the tree or a null object if there is none.
+Returns the previous sibling TreeItem in the tree or a null object if there is none.
 
 ----
 
@@ -461,7 +461,7 @@ Returns the previous TreeItem in the tree or a null object if there is none.
 
 - :ref:`TreeItem<class_TreeItem>` **get_prev_visible** **(** :ref:`bool<class_bool>` wrap=false **)**
 
-Returns the previous visible TreeItem in the tree or a null object if there is none.
+Returns the previous visible sibling TreeItem in the tree or a null object if there is none.
 
 If ``wrap`` is enabled, the method will wrap around to the last visible element in the tree when called on the first visible element, otherwise it returns ``null``.
 

+ 1 - 1
classes/class_vehiclebody.rst

@@ -73,7 +73,7 @@ Slows down the vehicle by applying a braking force. The vehicle is only slowed d
 | *Getter*  | get_engine_force()      |
 +-----------+-------------------------+
 
-Accelerates the vehicle by applying an engine force. The vehicle is only speed up if the wheels that have :ref:`VehicleWheel.use_as_traction<class_VehicleWheel_property_use_as_traction>` set to ``true`` and are in contact with a surface. The :ref:`RigidBody.mass<class_RigidBody_property_mass>` of the vehicle has an effect on the acceleration of the vehicle. For a vehicle with a mass set to 1000, try a value in the 25 - 50 range for acceleration.
+Accelerates the vehicle by applying an engine force. The vehicle is only sped up if the wheels that have :ref:`VehicleWheel.use_as_traction<class_VehicleWheel_property_use_as_traction>` set to ``true`` and are in contact with a surface. The :ref:`RigidBody.mass<class_RigidBody_property_mass>` of the vehicle has an effect on the acceleration of the vehicle. For a vehicle with a mass set to 1000, try a value in the 25 - 50 range for acceleration.
 
 \ **Note:** The simulation does not take the effect of gears into account, you will need to add logic for this if you wish to simulate gears.
 

+ 1 - 1
classes/class_vehiclewheel.rst

@@ -134,7 +134,7 @@ The damping applied to the spring when relaxing. This value should be between 0.
 | *Getter*  | get_engine_force()      |
 +-----------+-------------------------+
 
-Accelerates the wheel by applying an engine force. The wheel is only speed up if it is in contact with a surface. The :ref:`RigidBody.mass<class_RigidBody_property_mass>` of the vehicle has an effect on the acceleration of the vehicle. For a vehicle with a mass set to 1000, try a value in the 25 - 50 range for acceleration.
+Accelerates the wheel by applying an engine force. The wheel is only sped up if it is in contact with a surface. The :ref:`RigidBody.mass<class_RigidBody_property_mass>` of the vehicle has an effect on the acceleration of the vehicle. For a vehicle with a mass set to 1000, try a value in the 25 - 50 range for acceleration.
 
 \ **Note:** The simulation does not take the effect of gears into account, you will need to add logic for this if you wish to simulate gears.
 

+ 3 - 1
classes/class_viewport.rst

@@ -806,7 +806,7 @@ The subdivision amount of the fourth quadrant on the shadow atlas.
 
 The shadow atlas' resolution (used for omni and spot lights). The value will be rounded up to the nearest power of 2.
 
-\ **Note:** If this is set to 0, shadows won't be visible. Since user-created viewports default to a value of 0, this value must be set above 0 manually.
+\ **Note:** If this is set to ``0``, both point *and* directional shadows won't be visible. Since user-created viewports default to a value of ``0``, this value must be set above ``0`` manually (typically at least ``256``).
 
 ----
 
@@ -888,6 +888,8 @@ If ``true``, the viewport should render its background as transparent.
 
 The rendering mode of viewport.
 
+\ **Note:** If set to :ref:`USAGE_2D<class_Viewport_constant_USAGE_2D>` or :ref:`USAGE_2D_NO_SAMPLING<class_Viewport_constant_USAGE_2D_NO_SAMPLING>`, :ref:`hdr<class_Viewport_property_hdr>` will have no effect when enabled since HDR is not supported for 2D.
+
 ----
 
 .. _class_Viewport_property_use_32_bpc_depth:

+ 15 - 1
classes/class_visualserver.rst

@@ -794,6 +794,8 @@ Methods
 +---------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                                                    | :ref:`viewport_set_usage<class_VisualServer_method_viewport_set_usage>` **(** :ref:`RID<class_RID>` viewport, :ref:`ViewportUsage<enum_VisualServer_ViewportUsage>` usage **)**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
 +---------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                    | :ref:`viewport_set_use_32_bpc_depth<class_VisualServer_method_viewport_set_use_32_bpc_depth>` **(** :ref:`RID<class_RID>` viewport, :ref:`bool<class_bool>` enabled **)**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
++---------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                                                    | :ref:`viewport_set_use_arvr<class_VisualServer_method_viewport_set_use_arvr>` **(** :ref:`RID<class_RID>` viewport, :ref:`bool<class_bool>` use_arvr **)**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
 +---------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                                                    | :ref:`viewport_set_use_debanding<class_VisualServer_method_viewport_set_use_debanding>` **(** :ref:`RID<class_RID>` viewport, :ref:`bool<class_bool>` debanding **)**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
@@ -5037,7 +5039,9 @@ Sets the viewport's global transformation matrix.
 
 - void **viewport_set_hdr** **(** :ref:`RID<class_RID>` viewport, :ref:`bool<class_bool>` enabled **)**
 
-If ``true``, the viewport renders to hdr.
+If ``true``, the viewport renders to high dynamic range (HDR) instead of standard dynamic range (SDR). See also :ref:`viewport_set_use_32_bpc_depth<class_VisualServer_method_viewport_set_use_32_bpc_depth>`.
+
+\ **Note:** Only available on the GLES3 backend.
 
 ----
 
@@ -5147,6 +5151,16 @@ Sets the viewport's 2D/3D mode. See :ref:`ViewportUsage<enum_VisualServer_Viewpo
 
 ----
 
+.. _class_VisualServer_method_viewport_set_use_32_bpc_depth:
+
+- void **viewport_set_use_32_bpc_depth** **(** :ref:`RID<class_RID>` viewport, :ref:`bool<class_bool>` enabled **)**
+
+If ``true``, allocates the viewport's framebuffer with full floating-point precision (32-bit) instead of half floating-point precision (16-bit). Only effective if :ref:`viewport_set_use_32_bpc_depth<class_VisualServer_method_viewport_set_use_32_bpc_depth>` is used on the same :ref:`Viewport<class_Viewport>` to set HDR to ``true``.
+
+\ **Note:** Only available on the GLES3 backend.
+
+----
+
 .. _class_VisualServer_method_viewport_set_use_arvr:
 
 - void **viewport_set_use_arvr** **(** :ref:`RID<class_RID>` viewport, :ref:`bool<class_bool>` use_arvr **)**

+ 0 - 9
classes/class_webrtcmultiplayer.rst

@@ -22,15 +22,6 @@ You can add each :ref:`WebRTCPeerConnection<class_WebRTCPeerConnection>` via :re
 
 \ :ref:`NetworkedMultiplayerPeer.connection_succeeded<class_NetworkedMultiplayerPeer_signal_connection_succeeded>` and :ref:`NetworkedMultiplayerPeer.server_disconnected<class_NetworkedMultiplayerPeer_signal_server_disconnected>` will not be emitted unless ``server_compatibility`` is ``true`` in :ref:`initialize<class_WebRTCMultiplayer_method_initialize>`. Beside that data transfer works like in a :ref:`NetworkedMultiplayerPeer<class_NetworkedMultiplayerPeer>`.
 
-Properties
-----------
-
-+-----------------------------------------------------------------+------------------------+-----------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                                         | refuse_new_connections | ``false`` (overrides :ref:`NetworkedMultiplayerPeer<class_NetworkedMultiplayerPeer_property_refuse_new_connections>`) |
-+-----------------------------------------------------------------+------------------------+-----------------------------------------------------------------------------------------------------------------------+
-| :ref:`TransferMode<enum_NetworkedMultiplayerPeer_TransferMode>` | transfer_mode          | ``2`` (overrides :ref:`NetworkedMultiplayerPeer<class_NetworkedMultiplayerPeer_property_transfer_mode>`)              |
-+-----------------------------------------------------------------+------------------------+-----------------------------------------------------------------------------------------------------------------------+
-
 Methods
 -------
 

+ 0 - 9
classes/class_websocketmultiplayerpeer.rst

@@ -20,15 +20,6 @@ Description
 
 Base class for WebSocket server and client, allowing them to be used as network peer for the :ref:`MultiplayerAPI<class_MultiplayerAPI>`.
 
-Properties
-----------
-
-+-----------------------------------------------------------------+------------------------+-----------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                                         | refuse_new_connections | ``false`` (overrides :ref:`NetworkedMultiplayerPeer<class_NetworkedMultiplayerPeer_property_refuse_new_connections>`) |
-+-----------------------------------------------------------------+------------------------+-----------------------------------------------------------------------------------------------------------------------+
-| :ref:`TransferMode<enum_NetworkedMultiplayerPeer_TransferMode>` | transfer_mode          | ``2`` (overrides :ref:`NetworkedMultiplayerPeer<class_NetworkedMultiplayerPeer_property_transfer_mode>`)              |
-+-----------------------------------------------------------------+------------------------+-----------------------------------------------------------------------------------------------------------------------+
-
 Methods
 -------