Răsfoiți Sursa

Sync classref with 3.0 branch

Rémi Verschelde 7 ani în urmă
părinte
comite
43f552736a
59 a modificat fișierele cu 623 adăugiri și 299 ștergeri
  1. 3 1
      classes/[email protected]
  2. 1 3
      classes/class_animationplayer.rst
  3. 11 3
      classes/class_arraymesh.rst
  4. 1 1
      classes/class_arvranchor.rst
  5. 1 1
      classes/class_audiostreamplayer3d.rst
  6. 10 10
      classes/class_camera.rst
  7. 1 1
      classes/class_capsuleshape2d.rst
  8. 1 1
      classes/class_checkbox.rst
  9. 1 1
      classes/class_collisionshape.rst
  10. 1 1
      classes/class_collisionshape2d.rst
  11. 1 1
      classes/class_colorpickerbutton.rst
  12. 1 1
      classes/class_conetwistjoint.rst
  13. 1 1
      classes/class_configfile.rst
  14. 2 2
      classes/class_control.rst
  15. 2 0
      classes/class_dictionary.rst
  16. 3 3
      classes/class_engine.rst
  17. 16 0
      classes/class_file.rst
  18. 1 1
      classes/class_gradient.rst
  19. 2 0
      classes/class_graphedit.rst
  20. 1 1
      classes/class_gridcontainer.rst
  21. 4 0
      classes/class_httprequest.rst
  22. 35 35
      classes/class_image.rst
  23. 29 23
      classes/class_input.rst
  24. 1 1
      classes/class_instanceplaceholder.rst
  25. 13 4
      classes/class_interpolatedcamera.rst
  26. 1 1
      classes/class_linkbutton.rst
  27. 11 11
      classes/class_navigation.rst
  28. 18 1
      classes/class_navigation2d.rst
  29. 2 2
      classes/class_networkedmultiplayerenet.rst
  30. 97 37
      classes/class_node.rst
  31. 2 0
      classes/class_object.rst
  32. 93 53
      classes/class_os.rst
  33. 10 1
      classes/class_packedscene.rst
  34. 1 1
      classes/class_particlesmaterial.rst
  35. 1 1
      classes/class_poolbytearray.rst
  36. 1 1
      classes/class_poolcolorarray.rst
  37. 1 1
      classes/class_poolintarray.rst
  38. 1 1
      classes/class_poolrealarray.rst
  39. 1 1
      classes/class_poolstringarray.rst
  40. 1 1
      classes/class_poolvector2array.rst
  41. 1 1
      classes/class_poolvector3array.rst
  42. 1 1
      classes/class_popup.rst
  43. 42 2
      classes/class_popupmenu.rst
  44. 1 1
      classes/class_position3d.rst
  45. 1 1
      classes/class_prismmesh.rst
  46. 90 13
      classes/class_scenetree.rst
  47. 2 0
      classes/class_script.rst
  48. 2 0
      classes/class_scrollbar.rst
  49. 16 0
      classes/class_scrollcontainer.rst
  50. 6 2
      classes/class_spatial.rst
  51. 1 1
      classes/class_splitcontainer.rst
  52. 1 1
      classes/class_spriteframes.rst
  53. 3 1
      classes/class_tilemap.rst
  54. 5 1
      classes/class_transform.rst
  55. 57 55
      classes/class_tween.rst
  56. 6 6
      classes/class_vehiclewheel.rst
  57. 1 1
      classes/class_visualscriptbuiltinfunc.rst
  58. 2 2
      classes/class_visualscriptmathconstant.rst
  59. 1 1
      classes/class_visualserver.rst

+ 3 - 1
classes/[email protected]

@@ -444,7 +444,9 @@ Easing function, based on exponent. 0 is constant, 1 is linear, 0 to 1 is ease-i
 
 - :ref:`float<class_float>` **exp** **(** :ref:`float<class_float>` s **)**
 
-Raises the Euler's constant **e** to the power of ``s`` and returns it. **e** has an approximate value of 2.71828.
+The natural exponential function. It raises the mathematical constant **e** to the power of ``s`` and returns it.
+
+**e** has an approximate value of 2.71828.
 
 ::
 

+ 1 - 3
classes/class_animationplayer.rst

@@ -222,9 +222,7 @@ Returns ``true`` if playing an animation.
 
 - void **play** **(** :ref:`String<class_string>` name="", :ref:`float<class_float>` custom_blend=-1, :ref:`float<class_float>` custom_speed=1.0, :ref:`bool<class_bool>` from_end=false **)**
 
-Play the animation with key ``name``. Custom speed and blend times can be set. If custom speed is negative (-1), 'from_end' being true can play the
-
-animation backwards.
+Play the animation with key ``name``. Custom speed and blend times can be set. If custom speed is negative (-1), 'from_end' being true can play the animation backwards.
 
 .. _class_AnimationPlayer_play_backwards:
 

+ 11 - 3
classes/class_arraymesh.rst

@@ -110,7 +110,9 @@ enum **ArrayType**
 - **ARRAY_TEX_UV2** = **5** --- Second UV array (array of :ref:`Vector3<class_vector3>` UVs or float array of groups of 2 floats (u,v)).
 - **ARRAY_BONES** = **6** --- Array of bone indices, as a float array. Each element in groups of 4 floats.
 - **ARRAY_WEIGHTS** = **7** --- Array of bone weights, as a float array. Each element in groups of 4 floats.
-- **ARRAY_INDEX** = **8** --- Array of integers, used as indices referencing vertices. No index can be beyond the vertex array size.
+- **ARRAY_INDEX** = **8** --- :ref:`Array<class_array>` of integers used as indices referencing vertices, colors, normals, tangents, and textures. All of those arrays must have the same number of elements as the vertex array. No index can be beyond the vertex array size. When this index array is present, it puts the function into "index mode," where the index selects the \*i\*'th vertex, normal, tangent, color, UV, etc. This means if you want to have different normals or colors along an edge, you have to duplicate the vertices.
+
+For triangles, the index array is interpreted as triples, referring to the vertices of each triangle. For lines, the index array is in pairs indicating the start and end of each line.
 - **ARRAY_MAX** = **9**
 
 
@@ -125,9 +127,15 @@ Member Function Description
 
 - void **add_surface_from_arrays** **(** :ref:`int<class_int>` primitive, :ref:`Array<class_array>` arrays, :ref:`Array<class_array>` blend_shapes=[  ], :ref:`int<class_int>` compress_flags=97792 **)**
 
-Create a new surface (:ref:`get_surface_count<class_ArrayMesh_get_surface_count>` that will become surf_idx for this.
+Creates a new surface.
+
+Surfaces are created to be rendered using a "primitive", which may be PRIMITIVE_POINTS, PRIMITIVE_LINES, PRIMITIVE_LINE_STRIP, PRIMITIVE_LINE_LOOP, PRIMITIVE_TRIANGLES, PRIMITIVE_TRIANGLE_STRIP, PRIMITIVE_TRIANGLE_FAN. See :ref:`Mesh<class_mesh>` for details. (As a note, when using indices, it is recommended to only use points, lines or triangles). :ref:`get_surface_count<class_ArrayMesh_get_surface_count>` will become the surf_idx for this new surface.
+
+The ``arrays`` argument is an array of arrays. See enum ArrayType for the values used in this array. For example, ``arrays[0]`` is the array of vertices. That first vertex sub-array is always required; the others are optional. Adding an index array puts this function into "index mode" where the vertex and other arrays become the sources of data and the index array defines the vertex order. All sub-arrays must have the same length as the vertex array or be empty, except for ``ARRAY_INDEX`` if it is used.
+
+Adding an index array puts this function into "index mode" where the vertex and other arrays become the sources of data, and the index array defines the order of the vertices.
 
-Surfaces are created to be rendered using a "primitive", which may be PRIMITIVE_POINTS, PRIMITIVE_LINES, PRIMITIVE_LINE_STRIP, PRIMITIVE_LINE_LOOP, PRIMITIVE_TRIANGLES, PRIMITIVE_TRIANGLE_STRIP, PRIMITIVE_TRIANGLE_FAN. (As a note, when using indices, it is recommended to only use just points, lines or triangles).
+Godot uses clockwise winding order for front faces of triangle primitive modes.
 
 .. _class_ArrayMesh_center_geometry:
 

+ 1 - 1
classes/class_arvranchor.rst

@@ -14,7 +14,7 @@ ARVRAnchor
 Brief Description
 -----------------
 
-Anchor point in AR Space
+Anchor point in AR Space.
 
 Member Functions
 ----------------

+ 1 - 1
classes/class_audiostreamplayer3d.rst

@@ -14,7 +14,7 @@ AudioStreamPlayer3D
 Brief Description
 -----------------
 
-Plays 3D sound in 3D space
+Plays 3D sound in 3D space.
 
 Member Functions
 ----------------

+ 10 - 10
classes/class_camera.rst

@@ -62,7 +62,7 @@ Member Variables
 
   .. _class_Camera_environment:
 
-- :ref:`Environment<class_environment>` **environment** - Set the :ref:`Environment<class_environment>` to use for this Camera.
+- :ref:`Environment<class_environment>` **environment** - The :ref:`Environment<class_environment>` to use for this Camera.
 
   .. _class_Camera_far:
 
@@ -78,7 +78,7 @@ Member Variables
 
   .. _class_Camera_keep_aspect:
 
-- :ref:`KeepAspect<enum_camera_keepaspect>` **keep_aspect** - The axis to lock during :ref:`fov<class_Camera_fov>`/:ref:`size<class_Camera_size>` adjustments.
+- :ref:`KeepAspect<enum_camera_keepaspect>` **keep_aspect** - The axis to lock during :ref:`fov<class_Camera_fov>`/:ref:`size<class_Camera_size>` adjustments. Can be either ``KEEP_WIDTH`` or ``KEEP_HEIGHT``.
 
   .. _class_Camera_near:
 
@@ -94,7 +94,7 @@ Member Variables
 
   .. _class_Camera_v_offset:
 
-- :ref:`float<class_float>` **v_offset** - The horizontal (Y) offset of the Camera viewport.
+- :ref:`float<class_float>` **v_offset** - The vertical (Y) offset of the Camera viewport.
 
 
 Enums
@@ -141,19 +141,19 @@ If this is the current Camera, remove it from being current. If it is inside the
 
 - :ref:`Transform<class_transform>` **get_camera_transform** **(** **)** const
 
-Get the camera transform. Subclassed cameras (such as CharacterCamera) may provide different transforms than the :ref:`Node<class_node>` transform.
+Gets the camera transform. Subclassed cameras (such as CharacterCamera) may provide different transforms than the :ref:`Node<class_node>` transform.
 
 .. _class_Camera_is_position_behind:
 
 - :ref:`bool<class_bool>` **is_position_behind** **(** :ref:`Vector3<class_vector3>` world_point **)** const
 
-Returns ``true`` if the given position is behind the Camera.
+Returns ``true`` if the given position is behind the Camera. Note that a position which returns ``false`` may still be outside the Camera's field of view.
 
 .. _class_Camera_make_current:
 
 - void **make_current** **(** **)**
 
-Make this camera the current Camera for the :ref:`Viewport<class_viewport>` (see class description). If the Camera Node is outside the scene tree, it will attempt to become current once it's added.
+Makes this camera the current Camera for the :ref:`Viewport<class_viewport>` (see class description). If the Camera Node is outside the scene tree, it will attempt to become current once it's added.
 
 .. _class_Camera_project_local_ray_normal:
 
@@ -165,7 +165,7 @@ Returns a normal vector from the screen point location directed along the camera
 
 - :ref:`Vector3<class_vector3>` **project_position** **(** :ref:`Vector2<class_vector2>` screen_point **)** const
 
-Returns how a 2D coordinate in the Viewport rectangle maps to a 3D point in worldspace.
+Returns the 3D point in worldspace that maps to the given 2D coordinate in the :ref:`Viewport<class_viewport>` rectangle.
 
 .. _class_Camera_project_ray_normal:
 
@@ -183,18 +183,18 @@ Returns a 3D position in worldspace, that is the result of projecting a point on
 
 - void **set_orthogonal** **(** :ref:`float<class_float>` size, :ref:`float<class_float>` z_near, :ref:`float<class_float>` z_far **)**
 
-Set the camera projection to orthogonal mode, by specifying a width and the *near* and *far* clip planes in worldspace units. (As a hint, 2D games often use this projection, with values specified in pixels)
+Sets the camera projection to orthogonal mode, by specifying a width and the *near* and *far* clip planes in worldspace units. (As a hint, 2D games often use this projection, with values specified in pixels)
 
 .. _class_Camera_set_perspective:
 
 - void **set_perspective** **(** :ref:`float<class_float>` fov, :ref:`float<class_float>` z_near, :ref:`float<class_float>` z_far **)**
 
-Set the camera projection to perspective mode, by specifying a *FOV* Y angle in degrees (FOV means Field of View), and the *near* and *far* clip planes in worldspace units.
+Sets the camera projection to perspective mode, by specifying a *FOV* Y angle in degrees (FOV means Field of View), and the *near* and *far* clip planes in worldspace units.
 
 .. _class_Camera_unproject_position:
 
 - :ref:`Vector2<class_vector2>` **unproject_position** **(** :ref:`Vector3<class_vector3>` world_point **)** const
 
-Returns how a 3D point in worldspace maps to a 2D coordinate in the :ref:`Viewport<class_viewport>` rectangle.
+Returns the 2D coordinate in the :ref:`Viewport<class_viewport>` rectangle that maps to the given 3D point in worldspace.
 
 

+ 1 - 1
classes/class_capsuleshape2d.rst

@@ -25,7 +25,7 @@ Member Variables
 
   .. _class_CapsuleShape2D_radius:
 
-- :ref:`float<class_float>` **radius** - The capsules's radius.
+- :ref:`float<class_float>` **radius** - The capsule's radius.
 
 
 Description

+ 1 - 1
classes/class_checkbox.rst

@@ -14,7 +14,7 @@ CheckBox
 Brief Description
 -----------------
 
-Binary choice user interface widget
+Binary choice user interface widget.
 
 Description
 -----------

+ 1 - 1
classes/class_collisionshape.rst

@@ -40,7 +40,7 @@ Member Variables
 Description
 -----------
 
-Editor facility for creating and editing collision shapes in 3D space. You can use this node to represent all sorts of collision shapes, for example, add this to an :ref:`Area<class_area>` to give it a detection shape, or add it to a :ref:`PhysicsBody<class_physicsbody>` to give create solid object. **IMPORTANT**: this is an Editor-only helper to create shapes, use :ref:`get_shape<class_CollisionShape_get_shape>` to get the actual shape.
+Editor facility for creating and editing collision shapes in 3D space. You can use this node to represent all sorts of collision shapes, for example, add this to an :ref:`Area<class_area>` to give it a detection shape, or add it to a :ref:`PhysicsBody<class_physicsbody>` to create a solid object. **IMPORTANT**: this is an Editor-only helper to create shapes, use :ref:`get_shape<class_CollisionShape_get_shape>` to get the actual shape.
 
 Member Function Description
 ---------------------------

+ 1 - 1
classes/class_collisionshape2d.rst

@@ -35,5 +35,5 @@ Member Variables
 Description
 -----------
 
-Editor facility for creating and editing collision shapes in 2D space. You can use this node to represent all sorts of collision shapes, for example, add this to an :ref:`Area2D<class_area2d>` to give it a detection shape, or add it to a :ref:`PhysicsBody2D<class_physicsbody2d>` to give create solid object. **IMPORTANT**: this is an Editor-only helper to create shapes, use :ref:`get_shape<class_CollisionShape2D_get_shape>` to get the actual shape.
+Editor facility for creating and editing collision shapes in 2D space. You can use this node to represent all sorts of collision shapes, for example, add this to an :ref:`Area2D<class_area2d>` to give it a detection shape, or add it to a :ref:`PhysicsBody2D<class_physicsbody2d>` to create a solid object. **IMPORTANT**: this is an Editor-only helper to create shapes, use :ref:`get_shape<class_CollisionShape2D_get_shape>` to get the actual shape.
 

+ 1 - 1
classes/class_colorpickerbutton.rst

@@ -14,7 +14,7 @@ ColorPickerButton
 Brief Description
 -----------------
 
-Button that pops out a :ref:`ColorPicker<class_colorpicker>`
+Button that pops out a :ref:`ColorPicker<class_colorpicker>`.
 
 Member Functions
 ----------------

+ 1 - 1
classes/class_conetwistjoint.rst

@@ -14,7 +14,7 @@ ConeTwistJoint
 Brief Description
 -----------------
 
-A twist joint between two 3D bodies
+A twist joint between two 3D bodies.
 
 Member Variables
 ----------------

+ 1 - 1
classes/class_configfile.rst

@@ -123,6 +123,6 @@ Saves the contents of the ConfigFile object to the file specified as a parameter
 
 - void **set_value** **(** :ref:`String<class_string>` section, :ref:`String<class_string>` key, :ref:`Variant<class_variant>` value **)**
 
-Assigns a value to the specified key of the specified section. If the section and/or the key do not exist, they are created. Passing a ``null`` value deletes the specified key if it exists, and deletes the section if it ends up empty once the key has been removed.
+Assigns a value to the specified key of the the specified section. If the section and/or the key do not exist, they are created. Passing a ``null`` value deletes the specified key if it exists, and deletes the section if it ends up empty once the key has been removed.
 
 

+ 2 - 2
classes/class_control.rst

@@ -557,7 +557,7 @@ Godot calls this method to pass you the ``data`` from a control's :ref:`get_drag
 
 Forces drag and bypasses :ref:`get_drag_data<class_Control_get_drag_data>` and :ref:`set_drag_preview<class_Control_set_drag_preview>` by passing ``data`` and ``preview``. Drag will start even if the mouse is neither over nor pressed on this control.
 
-The methods :ref:`can_drop_data<class_Control_can_drop_data>` and :ref:`drop_data<class_Control_drop_data>` must be implemented on controls that want to recieve drop data.
+The methods :ref:`can_drop_data<class_Control_can_drop_data>` and :ref:`drop_data<class_Control_drop_data>` must be implemented on controls that want to receive drop data.
 
 .. _class_Control_get_begin:
 
@@ -585,7 +585,7 @@ Returns the mouse cursor shape the control displays on mouse hover, one of the `
 
 - :ref:`Object<class_object>` **get_drag_data** **(** :ref:`Vector2<class_vector2>` position **)** virtual
 
-Godot calls this method to get data that can be dragged and dropped onto controls that expect drop data. Return null if there is no data to drag. Controls that want to recieve drop data should implement :ref:`can_drop_data<class_Control_can_drop_data>` and :ref:`drop_data<class_Control_drop_data>`. ``position`` is local to this control. Drag may be forced with :ref:`force_drag<class_Control_force_drag>`.
+Godot calls this method to get data that can be dragged and dropped onto controls that expect drop data. Return null if there is no data to drag. Controls that want to receive drop data should implement :ref:`can_drop_data<class_Control_can_drop_data>` and :ref:`drop_data<class_Control_drop_data>`. ``position`` is local to this control. Drag may be forced with :ref:`force_drag<class_Control_force_drag>`.
 
 A preview that will follow the mouse that should represent the data can be set with :ref:`set_drag_preview<class_Control_set_drag_preview>`. A good time to set the preview is in this method.
 

+ 2 - 0
classes/class_dictionary.rst

@@ -57,6 +57,8 @@ Clear the dictionary, removing all key/value pairs.
 
 - :ref:`Dictionary<class_dictionary>` **duplicate** **(** **)**
 
+Creates a copy of the dictionary, and returns it.
+
 .. _class_Dictionary_empty:
 
 - :ref:`bool<class_bool>` **empty** **(** **)**

+ 3 - 3
classes/class_engine.rst

@@ -93,11 +93,11 @@ Returns the current engine version information in a Dictionary.
 
 
 
-"major"    - Holds the major version number as a String
+"major"    - Holds the major version number as an int
 
-"minor"    - Holds the minor version number as a String
+"minor"    - Holds the minor version number as an int
 
-"patch"    - Holds the patch version number as a String
+"patch"    - Holds the patch version number as an int
 
 "status"   - Holds the status (e.g. "beta", "rc1", "rc2", ... "stable") as a String
 

+ 16 - 0
classes/class_file.rst

@@ -56,6 +56,10 @@ Member Functions
 +------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`String<class_string>`                    | :ref:`get_pascal_string<class_File_get_pascal_string>` **(** **)**                                                                                                                    |
 +------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_string>`                    | :ref:`get_path<class_File_get_path>` **(** **)**                                                                                                                                      |
++------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_string>`                    | :ref:`get_path_absolute<class_File_get_path_absolute>` **(** **)**                                                                                                                    |
++------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`int<class_int>`                          | :ref:`get_position<class_File_get_position>` **(** **)** const                                                                                                                        |
 +------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`float<class_float>`                      | :ref:`get_real<class_File_get_real>` **(** **)** const                                                                                                                                |
@@ -268,6 +272,18 @@ Returns the last time the ``file`` was modified in unix timestamp format or retu
 
 Returns a :ref:`String<class_string>` saved in Pascal format from the file.
 
+.. _class_File_get_path:
+
+- :ref:`String<class_string>` **get_path** **(** **)**
+
+Returns the path as a :ref:`String<class_string>` for the current open file.
+
+.. _class_File_get_path_absolute:
+
+- :ref:`String<class_string>` **get_path_absolute** **(** **)**
+
+Returns the absolute path as a :ref:`String<class_string>` for the current open file.
+
 .. _class_File_get_position:
 
 - :ref:`int<class_int>` **get_position** **(** **)** const

+ 1 - 1
classes/class_gradient.rst

@@ -52,7 +52,7 @@ Member Variables
 Description
 -----------
 
-Given a set of colors, this node will interpolate them in order, meaning, that if you have color 1, color 2 and color3, the ramp will interpolate (generate the colors between two colors) from color 1 to color 2 and from color 2 to color 3. Initially the ramp will have 2 colors (black and white), one (black) at ramp lower offset 0 and the other (white) at the ramp higher offset 1.
+Given a set of colors, this node will interpolate them in order, meaning, that if you have color 1, color 2 and color3, the ramp will interpolate (generate the colors between two colors) from color 1 to color 2 and from color 2 to color 3. Initially the ramp will have 2 colors (black and white), one (black) at ramp lower offset offset 0 and the other (white) at the ramp higher offset 1.
 
 Member Function Description
 ---------------------------

+ 2 - 0
classes/class_graphedit.rst

@@ -94,6 +94,8 @@ Signal sent when a GraphNode is attempted to be duplicated in the GraphEdit.
 
 - **node_selected** **(** :ref:`Object<class_object>` node **)**
 
+Emitted when a GraphNode is selected.
+
 .. _class_GraphEdit_popup_request:
 
 - **popup_request** **(** :ref:`Vector2<class_vector2>` p_position **)**

+ 1 - 1
classes/class_gridcontainer.rst

@@ -14,7 +14,7 @@ GridContainer
 Brief Description
 -----------------
 
-Grid container used to arrange elements in a grid like layout
+Grid container used to arrange elements in a grid like layout.
 
 Member Variables
 ----------------

+ 4 - 0
classes/class_httprequest.rst

@@ -120,4 +120,8 @@ Returns the current status of the underlying :ref:`HTTPClient<class_httpclient>`
 
 - :ref:`int<class_int>` **request** **(** :ref:`String<class_string>` url, :ref:`PoolStringArray<class_poolstringarray>` custom_headers=PoolStringArray(  ), :ref:`bool<class_bool>` ssl_validate_domain=true, :ref:`int<class_int>` method=0, :ref:`String<class_string>` request_data="" **)**
 
+Creates request on the underlying :ref:`HTTPClient<class_httpclient>`. If there is no configuration errors, it tries to connect using :ref:`HTTPClient.connect_to_host<class_HTTPClient_connect_to_host>` and passes parameters onto :ref:`HTTPClient.request<class_HTTPClient_request>`.
+
+Returns ``OK`` if request is successfully created. (Does not imply that the server has responded), ``ERR_UNCONFIGURED`` if not in the tree, ``ERR_BUSY`` if still processing previous request, ``ERR_INVALID_PARAMETER`` if given string is not a valid URL format, or ``ERR_CANT_CONNECT`` if not using thread and the :ref:`HTTPClient<class_httpclient>` cannot connect to host.
+
 

+ 35 - 35
classes/class_image.rst

@@ -162,41 +162,41 @@ enum **Format**
 
 - **FORMAT_L8** = **0**
 - **FORMAT_LA8** = **1**
-- **FORMAT_R8** = **2**
-- **FORMAT_RG8** = **3**
-- **FORMAT_RGB8** = **4**
-- **FORMAT_RGBA8** = **5**
-- **FORMAT_RGBA4444** = **6**
-- **FORMAT_RGBA5551** = **7**
-- **FORMAT_RF** = **8**
-- **FORMAT_RGF** = **9**
-- **FORMAT_RGBF** = **10**
-- **FORMAT_RGBAF** = **11**
-- **FORMAT_RH** = **12**
-- **FORMAT_RGH** = **13**
-- **FORMAT_RGBH** = **14**
-- **FORMAT_RGBAH** = **15**
-- **FORMAT_RGBE9995** = **16**
-- **FORMAT_DXT1** = **17**
-- **FORMAT_DXT3** = **18**
-- **FORMAT_DXT5** = **19**
-- **FORMAT_RGTC_R** = **20**
-- **FORMAT_RGTC_RG** = **21**
-- **FORMAT_BPTC_RGBA** = **22**
-- **FORMAT_BPTC_RGBF** = **23**
-- **FORMAT_BPTC_RGBFU** = **24**
-- **FORMAT_PVRTC2** = **25**
-- **FORMAT_PVRTC2A** = **26**
-- **FORMAT_PVRTC4** = **27**
-- **FORMAT_PVRTC4A** = **28**
-- **FORMAT_ETC** = **29**
-- **FORMAT_ETC2_R11** = **30**
-- **FORMAT_ETC2_R11S** = **31**
-- **FORMAT_ETC2_RG11** = **32**
-- **FORMAT_ETC2_RG11S** = **33**
-- **FORMAT_ETC2_RGB8** = **34**
-- **FORMAT_ETC2_RGBA8** = **35**
-- **FORMAT_ETC2_RGB8A1** = **36**
+- **FORMAT_R8** = **2** --- OpenGL texture format RED with a single component and a bitdepth of 8.
+- **FORMAT_RG8** = **3** --- OpenGL texture format RG with two components and a bitdepth of 8 for each.
+- **FORMAT_RGB8** = **4** --- OpenGL texture format RGB with three components, each with a bitdepth of 8.
+- **FORMAT_RGBA8** = **5** --- OpenGL texture format RGBA with four components, each with a bitdepth of 8.
+- **FORMAT_RGBA4444** = **6** --- OpenGL texture format RGBA with four components, each with a bitdepth of 4.
+- **FORMAT_RGBA5551** = **7** --- OpenGL texture format GL_RGB5_A1 where 5 bits of depth for each component of RGB and one bit for alpha.
+- **FORMAT_RF** = **8** --- OpenGL texture format GL_R32F where there's one component, a 32-bit floating-point value.
+- **FORMAT_RGF** = **9** --- OpenGL texture format GL_RG32F where there are two components, each a 32-bit floating-point values.
+- **FORMAT_RGBF** = **10** --- OpenGL texture format GL_RGB32F where there are three components, each a 32-bit floating-point values.
+- **FORMAT_RGBAF** = **11** --- OpenGL texture format GL_RGBA32F where there are four components, each a 32-bit floating-point values.
+- **FORMAT_RH** = **12** --- OpenGL texture format GL_R32F where there's one component, a 16-bit "half-precision" floating-point value.
+- **FORMAT_RGH** = **13** --- OpenGL texture format GL_RG32F where there's two components, each a 16-bit "half-precision" floating-point value.
+- **FORMAT_RGBH** = **14** --- OpenGL texture format GL_RGB32F where there's three components, each a 16-bit "half-precision" floating-point value.
+- **FORMAT_RGBAH** = **15** --- OpenGL texture format GL_RGBA32F where there's four components, each a 16-bit "half-precision" floating-point value.
+- **FORMAT_RGBE9995** = **16** --- A special OpenGL texture format where the three color components have 9 bits of precision and all three share a single exponent.
+- **FORMAT_DXT1** = **17** --- The S3TC texture format that uses Block Compression 1, and is the smallest variation of S3TC, only providing 1 bit of alpha and color data being premultiplied with alpha. More information can be found at https://www.khronos.org/opengl/wiki/S3_Texture_Compression.
+- **FORMAT_DXT3** = **18** --- The S3TC texture format that uses Block Compression 2, and color data is interpreted as not having been premultiplied by alpha. Well suited for images with sharp alpha transitions between translucent and opaque areas.
+- **FORMAT_DXT5** = **19** --- The S3TC texture format also known as Block Compression 3 or BC3 that contains 64 bits of alpha channel data followed by 64 bits of DXT1-encoded color data. Color data is not premultiplied by alpha, same as DXT3. DXT5 generally produces superior results for transparency gradients than DXT3.
+- **FORMAT_RGTC_R** = **20** --- Texture format that uses Red Green Texture Compression, normalizing the red channel data using the same compression algorithm that DXT5 uses for the alpha channel. More information can be found here https://www.khronos.org/opengl/wiki/Red_Green_Texture_Compression.
+- **FORMAT_RGTC_RG** = **21** --- Texture format that uses Red Green Texture Compression, normalizing the red and green channel data using the same compression algorithm that DXT5 uses for the alpha channel.
+- **FORMAT_BPTC_RGBA** = **22** --- Texture format that uses BPTC compression with unsigned normalized RGBA components. More information can be found at https://www.khronos.org/opengl/wiki/BPTC_Texture_Compression.
+- **FORMAT_BPTC_RGBF** = **23** --- Texture format that uses BPTC compression with signed floating-point RGB components.
+- **FORMAT_BPTC_RGBFU** = **24** --- Texture format that uses BPTC compression with unsigned floating-point RGB components.
+- **FORMAT_PVRTC2** = **25** --- Texture format used on PowerVR-supported mobile platforms, uses 2 bit color depth with no alpha. More information on PVRTC can be found here https://en.wikipedia.org/wiki/PVRTC.
+- **FORMAT_PVRTC2A** = **26** --- Same as PVRTC2, but with an alpha component.
+- **FORMAT_PVRTC4** = **27** --- Similar to PVRTC2, but with 4 bit color depth and no alpha.
+- **FORMAT_PVRTC4A** = **28** --- Same as PVRTC4, but with an alpha component.
+- **FORMAT_ETC** = **29** --- Ericsson Texture Compression format, also referred to as 'ETC1', and is part of the OpenGL ES graphics standard. An overview of the format is given at https://en.wikipedia.org/wiki/Ericsson_Texture_Compression#ETC1.
+- **FORMAT_ETC2_R11** = **30** --- Ericsson Texture Compression format 2 variant R11_EAC, which provides one channel of unsigned data.
+- **FORMAT_ETC2_R11S** = **31** --- Ericsson Texture Compression format 2 variant SIGNED_R11_EAC, which provides one channel of signed data.
+- **FORMAT_ETC2_RG11** = **32** --- Ericsson Texture Compression format 2 variant RG11_EAC, which provides two channels of unsigned data.
+- **FORMAT_ETC2_RG11S** = **33** --- Ericsson Texture Compression format 2 variant SIGNED_RG11_EAC, which provides two channels of signed data.
+- **FORMAT_ETC2_RGB8** = **34** --- Ericsson Texture Compression format 2 variant RGB8, which is a followup of ETC1 and compresses RGB888 data.
+- **FORMAT_ETC2_RGBA8** = **35** --- Ericsson Texture Compression format 2 variant RGBA8, which compresses RGBA8888 data with full alpha support.
+- **FORMAT_ETC2_RGB8A1** = **36** --- Ericsson Texture Compression format 2 variant RGB8_PUNCHTHROUGH_ALPHA1, which compresses RGBA data to make alpha either fully transparent or fully opaque.
 - **FORMAT_MAX** = **37**
 
 

+ 29 - 23
classes/class_input.rst

@@ -100,7 +100,7 @@ Signals
 
 - **joy_connection_changed** **(** :ref:`int<class_int>` index, :ref:`bool<class_bool>` connected **)**
 
-Emitted when a joypad device has been connected or disconnected
+Emitted when a joypad device has been connected or disconnected.
 
 
 Enums
@@ -113,29 +113,29 @@ enum **MouseMode**
 - **MOUSE_MODE_VISIBLE** = **0** --- Makes the mouse cursor visible if it is hidden.
 - **MOUSE_MODE_HIDDEN** = **1** --- Makes the mouse cursor hidden if it is visible.
 - **MOUSE_MODE_CAPTURED** = **2** --- Captures the mouse. The mouse will be hidden and unable to leave the game window. But it will still register movement and mouse button presses.
-- **MOUSE_MODE_CONFINED** = **3**
+- **MOUSE_MODE_CONFINED** = **3** --- Makes the mouse cursor visible but confines it to the game window.
 
   .. _enum_Input_CursorShape:
 
 enum **CursorShape**
 
-- **CURSOR_ARROW** = **0**
-- **CURSOR_IBEAM** = **1**
-- **CURSOR_POINTING_HAND** = **2**
-- **CURSOR_CROSS** = **3**
-- **CURSOR_WAIT** = **4**
-- **CURSOR_BUSY** = **5**
-- **CURSOR_DRAG** = **6**
-- **CURSOR_CAN_DROP** = **7**
-- **CURSOR_FORBIDDEN** = **8**
-- **CURSOR_VSIZE** = **9**
-- **CURSOR_HSIZE** = **10**
-- **CURSOR_BDIAGSIZE** = **11**
-- **CURSOR_FDIAGSIZE** = **12**
-- **CURSOR_MOVE** = **13**
-- **CURSOR_VSPLIT** = **14**
-- **CURSOR_HSPLIT** = **15**
-- **CURSOR_HELP** = **16**
+- **CURSOR_ARROW** = **0** --- Arrow cursor. Standard, default pointing cursor.
+- **CURSOR_IBEAM** = **1** --- I-beam cursor. Usually used to show where the text cursor will appear when the mouse is clicked.
+- **CURSOR_POINTING_HAND** = **2** --- Pointing hand cursor. Usually used to indicate the pointer is over a link or other interactable item.
+- **CURSOR_CROSS** = **3** --- Cross cursor. Typically appears over regions in which a drawing operation can be performance or for selections.
+- **CURSOR_WAIT** = **4** --- Wait cursor. Indicates that the application is busy performing an operation.
+- **CURSOR_BUSY** = **5** --- Busy cursor. See ``CURSOR_WAIT``.
+- **CURSOR_DRAG** = **6** --- Drag cursor. Usually displayed when dragging something.
+- **CURSOR_CAN_DROP** = **7** --- Can drop cursor. Usually displayed when dragging something to indicate that it can be dropped at the current position.
+- **CURSOR_FORBIDDEN** = **8** --- Forbidden cursor. Indicates that the current action is forbidden (for example, when dragging something) or that the control at a position is disabled.
+- **CURSOR_VSIZE** = **9** --- Vertical resize mouse cursor. A double headed vertical arrow. It tells the user they can resize the window or the panel vertically.
+- **CURSOR_HSIZE** = **10** --- Horizontal resize mouse cursor. A double headed horizontal arrow. It tells the user they can resize the window or the panel horizontally.
+- **CURSOR_BDIAGSIZE** = **11** --- Window resize mouse cursor. The cursor is a double headed arrow that goes from the bottom left to the top right. It tells the user they can resize the window or the panel both horizontally and vertically.
+- **CURSOR_FDIAGSIZE** = **12** --- Window resize mouse cursor. The cursor is a double headed arrow that goes from the top left to the bottom right, the opposite of ``CURSOR_BDIAGSIZE``. It tells the user they can resize the window or the panel both horizontally and vertically.
+- **CURSOR_MOVE** = **13** --- Move cursor. Indicates that something can be moved.
+- **CURSOR_VSPLIT** = **14** --- Vertical split mouse cursor. On Windows, it's the same as ``CURSOR_VSIZE``.
+- **CURSOR_HSPLIT** = **15** --- Horizontal split mouse cursor. On Windows, it's the same as ``CURSOR_HSIZE``.
+- **CURSOR_HELP** = **16** --- Help cursor. Usually a question mark.
 
 
 Description
@@ -168,7 +168,7 @@ Add a new mapping entry (in SDL2 format) to the mapping database. Optionally upd
 
 - :ref:`Vector3<class_vector3>` **get_accelerometer** **(** **)** const
 
-If the device has an accelerometer, this will return the movement.
+If the device has an accelerometer, this will return the acceleration. Otherwise, it returns an empty :ref:`Vector3<class_vector3>`.
 
 .. _class_Input_get_connected_joypads:
 
@@ -180,11 +180,13 @@ Returns an :ref:`Array<class_array>` containing the device IDs of all currently
 
 - :ref:`Vector3<class_vector3>` **get_gravity** **(** **)** const
 
+If the device has an accelerometer, this will return the gravity. Otherwise, it returns an empty :ref:`Vector3<class_vector3>`.
+
 .. _class_Input_get_gyroscope:
 
 - :ref:`Vector3<class_vector3>` **get_gyroscope** **(** **)** const
 
-If the device has a gyroscope, this will return the rate of rotation in rad/s around a device's x, y, and z axis.
+If the device has a gyroscope, this will return the rate of rotation in rad/s around a device's x, y, and z axis. Otherwise, it returns an empty :ref:`Vector3<class_vector3>`.
 
 .. _class_Input_get_joy_axis:
 
@@ -260,13 +262,15 @@ Return the mouse mode. See the constants for more information.
 
 - :ref:`bool<class_bool>` **is_action_just_pressed** **(** :ref:`String<class_string>` action **)** const
 
-Returns ``true`` when you start pressing the action event.
+Returns ``true`` when the user starts pressing the action event, meaning it's true only on the frame that the user pressed down the button.
+
+This is useful for code that needs to run only once when an action is pressed, instead of every frame while it's pressed.
 
 .. _class_Input_is_action_just_released:
 
 - :ref:`bool<class_bool>` **is_action_just_released** **(** :ref:`String<class_string>` action **)** const
 
-Returns ``true`` when you stop pressing the action event.
+Returns ``true`` when the user stops pressing the action event, meaning it's true only on the frame that the user released the button.
 
 .. _class_Input_is_action_pressed:
 
@@ -306,6 +310,8 @@ Returns ``true`` if you are pressing the mouse button. You can pass ``BUTTON_*``
 
 - void **parse_input_event** **(** :ref:`InputEvent<class_inputevent>` event **)**
 
+Feeds an :ref:`InputEvent<class_inputevent>` to the game. Can be used to artificially trigger input events from code.
+
 .. _class_Input_remove_joy_mapping:
 
 - void **remove_joy_mapping** **(** :ref:`String<class_string>` guid **)**

+ 1 - 1
classes/class_instanceplaceholder.rst

@@ -30,7 +30,7 @@ Member Functions
 Description
 -----------
 
-Turning on the option **Load As Placeholder** for an instanced scene in the editor causes it to be replaced by an InstacePlaceholder when running the game. This makes it possible to delay actually loading the scene until calling :ref:`replace_by_instance<class_InstancePlaceholder_replace_by_instance>`. This is useful to avoid loading large scenes all at once by loading parts of it selectively.
+Turning on the option **Load As Placeholder** for an instanced scene in the editor causes it to be replaced by an InstancePlaceholder when running the game. This makes it possible to delay actually loading the scene until calling :ref:`replace_by_instance<class_InstancePlaceholder_replace_by_instance>`. This is useful to avoid loading large scenes all at once by loading parts of it selectively.
 
 The InstancePlaceholder does not have a transform. This causes any child nodes to be positioned relatively to the Viewport from point (0,0), rather than their parent as displayed in the editor. Replacing the placeholder with a scene with a transform will transform children relatively to their parent again.
 

+ 13 - 4
classes/class_interpolatedcamera.rst

@@ -14,7 +14,7 @@ InterpolatedCamera
 Brief Description
 -----------------
 
-
+Camera which moves toward another node.
 
 Member Functions
 ----------------
@@ -28,16 +28,23 @@ Member Variables
 
   .. _class_InterpolatedCamera_enabled:
 
-- :ref:`bool<class_bool>` **enabled**
+- :ref:`bool<class_bool>` **enabled** - If ``true`` and a target is set, the camera will move automatically.
 
   .. _class_InterpolatedCamera_speed:
 
-- :ref:`float<class_float>` **speed**
+- :ref:`float<class_float>` **speed** - How quickly the camera moves toward its target. Higher values will result in tighter camera motion.
 
   .. _class_InterpolatedCamera_target:
 
-- :ref:`NodePath<class_nodepath>` **target**
+- :ref:`NodePath<class_nodepath>` **target** - The target's :ref:`NodePath<class_nodepath>`.
+
+
+Description
+-----------
 
+InterpolatedCamera is a :ref:`Camera<class_camera>` which smoothly moves to match a target node's position and rotation.
+
+If it is not :ref:`enabled<class_InterpolatedCamera_enabled>` or does not have a valid target set, InterpolatedCamera acts like a normal Camera.
 
 Member Function Description
 ---------------------------
@@ -46,4 +53,6 @@ Member Function Description
 
 - void **set_target** **(** :ref:`Object<class_object>` target **)**
 
+Sets the node to move toward and orient with.
+
 

+ 1 - 1
classes/class_linkbutton.rst

@@ -14,7 +14,7 @@ LinkButton
 Brief Description
 -----------------
 
-Simple button used to represent a link to some resource
+Simple button used to represent a link to some resource.
 
 Member Variables
 ----------------

+ 11 - 11
classes/class_navigation.rst

@@ -14,7 +14,7 @@ Navigation
 Brief Description
 -----------------
 
-A collection of ``NavigationMesh`` resources and methods used for pathfinding.
+Mesh-based navigation and pathfinding node.
 
 Member Functions
 ----------------
@@ -42,13 +42,13 @@ Member Variables
 
   .. _class_Navigation_up_vector:
 
-- :ref:`Vector3<class_vector3>` **up_vector** - Defines which direction is up. The default defines 0,1,0 as up which is the world up direction. To make this a ceiling use 0,-1,0 to define down as up.
+- :ref:`Vector3<class_vector3>` **up_vector** - Defines which direction is up. By default this is ``(0, 1, 0)``, which is the world up direction.
 
 
 Description
 -----------
 
-The Navigation node is used for basic or advanced navigation. By default it will automatically collect all child ``NavigationMesh`` resources, but they can also be added on the fly through scripting. It can be used for generating a simple path between two points or it can be used to ensure that a navigation agent is angled perfectly to the terrain it is navigating.
+Provides navigation and pathfinding within a collection of :ref:`NavigationMesh<class_navigationmesh>`\ es. By default these will be automatically collected from child :ref:`NavigationMeshInstance<class_navigationmeshinstance>` nodes, but they can also be added on the fly with :ref:`navmesh_add<class_Navigation_navmesh_add>`. In addition to basic pathfinding, this class also assists with aligning navigation agents with the meshes they are navigating on.
 
 Member Function Description
 ---------------------------
@@ -57,48 +57,48 @@ Member Function Description
 
 - :ref:`Vector3<class_vector3>` **get_closest_point** **(** :ref:`Vector3<class_vector3>` to_point **)**
 
-Returns the closest navigation point to the point passed.
+Returns the navigation point closest to the point given. Points are in local coordinate space.
 
 .. _class_Navigation_get_closest_point_normal:
 
 - :ref:`Vector3<class_vector3>` **get_closest_point_normal** **(** :ref:`Vector3<class_vector3>` to_point **)**
 
-Returns the surface normal of the navigation mesh at the point passed. For instance, if the point passed was at a 45 degree slope it would return something like (0.5,0.5,0). This is useful for rotating a navigation agent in accordance with the ``NavigationMesh``.
+Returns the surface normal at the navigation point closest to the point given. Useful for rotating a navigation agent according to the navigation mesh it moves on.
 
 .. _class_Navigation_get_closest_point_owner:
 
 - :ref:`Object<class_object>` **get_closest_point_owner** **(** :ref:`Vector3<class_vector3>` to_point **)**
 
-Returns the nearest ``NavigationMeshInstance`` to the point passed.
+Returns the owner of the :ref:`NavigationMesh<class_navigationmesh>` which contains the navigation point closest to the point given. This is usually a NavigtionMeshInstance. For meshes added via :ref:`navmesh_add<class_Navigation_navmesh_add>`, returns the owner that was given (or ``null`` if the ``owner`` parameter was omitted).
 
 .. _class_Navigation_get_closest_point_to_segment:
 
 - :ref:`Vector3<class_vector3>` **get_closest_point_to_segment** **(** :ref:`Vector3<class_vector3>` start, :ref:`Vector3<class_vector3>` end, :ref:`bool<class_bool>` use_collision=false **)**
 
-Returns the nearest point to the line segment passed. The third optional parameter takes collisions into account.
+Returns the navigation point closest to the given line segment. When enabling ``use_collision``, only considers intersection points between segment and navigation meshes. If multiple intersection points are found, the one closest to the segment start point is returned.
 
 .. _class_Navigation_get_simple_path:
 
 - :ref:`PoolVector3Array<class_poolvector3array>` **get_simple_path** **(** :ref:`Vector3<class_vector3>` start, :ref:`Vector3<class_vector3>` end, :ref:`bool<class_bool>` optimize=true **)**
 
-Returns a path of points as a ``PoolVector3Array``. If ``optimize`` is false the ``NavigationMesh`` agent properties will be taken into account, otherwise it will return the nearest path and ignore agent radius, height, etc.
+Returns the path between two given points. Points are in local coordinate space. If ``optimize`` is ``true`` (the default), the agent properties associated with each :ref:`NavigationMesh<class_navigationmesh>` (raidus, height, etc.) are considered in the path calculation, otherwise they are ignored.
 
 .. _class_Navigation_navmesh_add:
 
 - :ref:`int<class_int>` **navmesh_add** **(** :ref:`NavigationMesh<class_navigationmesh>` mesh, :ref:`Transform<class_transform>` xform, :ref:`Object<class_object>` owner=null **)**
 
-Adds a ``NavigationMesh`` to the list of NavigationMesh's in this node. Returns an id. Its position, rotation and scale are associated with the ``Transform`` passed. The ``Node`` (or ``Object``) that owns this node is an optional parameter.
+Adds a :ref:`NavigationMesh<class_navigationmesh>`. Returns an ID for use with :ref:`navmesh_remove<class_Navigation_navmesh_remove>` or :ref:`navmesh_set_transform<class_Navigation_navmesh_set_transform>`. If given, a :ref:`Transform2D<class_transform2d>` is applied to the polygon. The optional ``owner`` is used as return value for :ref:`get_closest_point_owner<class_Navigation_get_closest_point_owner>`.
 
 .. _class_Navigation_navmesh_remove:
 
 - void **navmesh_remove** **(** :ref:`int<class_int>` id **)**
 
-Removes a ``NavigationMesh`` from the list of NavigationMesh's in this node.
+Removes the :ref:`NavigationMesh<class_navigationmesh>` with the given ID.
 
 .. _class_Navigation_navmesh_set_transform:
 
 - void **navmesh_set_transform** **(** :ref:`int<class_int>` id, :ref:`Transform<class_transform>` xform **)**
 
-Associates a ``NavigationMesh``'s id with a ``Transform``. Its position, rotation and scale are based on the ``Transform`` passed.
+Sets the transform applied to the :ref:`NavigationMesh<class_navigationmesh>` with the given ID.
 
 

+ 18 - 1
classes/class_navigation2d.rst

@@ -14,7 +14,7 @@ Navigation2D
 Brief Description
 -----------------
 
-
+2D navigation and pathfinding node.
 
 Member Functions
 ----------------
@@ -33,6 +33,11 @@ Member Functions
 | void                                             | :ref:`navpoly_set_transform<class_Navigation2D_navpoly_set_transform>` **(** :ref:`int<class_int>` id, :ref:`Transform2D<class_transform2d>` xform **)**                                                   |
 +--------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 
+Description
+-----------
+
+Navigation2D provides navigation and pathfinding within a 2D area, specified as a collection of :ref:`NavigationPolygon<class_navigationpolygon>` resources. By default these are automatically collected from child :ref:`NavigationPolygonInstance<class_navigationpolygoninstance>` nodes, but they can also be added on the fly with :ref:`navpoly_add<class_Navigation2D_navpoly_add>`.
+
 Member Function Description
 ---------------------------
 
@@ -40,24 +45,36 @@ Member Function Description
 
 - :ref:`Vector2<class_vector2>` **get_closest_point** **(** :ref:`Vector2<class_vector2>` to_point **)**
 
+Returns the navigation point closest to the point given. Points are in local coordinate space.
+
 .. _class_Navigation2D_get_closest_point_owner:
 
 - :ref:`Object<class_object>` **get_closest_point_owner** **(** :ref:`Vector2<class_vector2>` to_point **)**
 
+Returns the owner of the :ref:`NavigationPolygon<class_navigationpolygon>` which contains the navigation point closest to the point given. This is usually a NavigtionPolygonInstance. For polygons added via :ref:`navpoly_add<class_Navigation2D_navpoly_add>`, returns the owner that was given (or ``null`` if the ``owner`` parameter was omitted).
+
 .. _class_Navigation2D_get_simple_path:
 
 - :ref:`PoolVector2Array<class_poolvector2array>` **get_simple_path** **(** :ref:`Vector2<class_vector2>` start, :ref:`Vector2<class_vector2>` end, :ref:`bool<class_bool>` optimize=true **)**
 
+Returns the path between two given points. Points are in local coordinate space. If ``optimize`` is ``true`` (the default), the path is smoothed by merging path segments where possible.
+
 .. _class_Navigation2D_navpoly_add:
 
 - :ref:`int<class_int>` **navpoly_add** **(** :ref:`NavigationPolygon<class_navigationpolygon>` mesh, :ref:`Transform2D<class_transform2d>` xform, :ref:`Object<class_object>` owner=null **)**
 
+Adds a :ref:`NavigationPolygon<class_navigationpolygon>`. Returns an ID for use with :ref:`navpoly_remove<class_Navigation2D_navpoly_remove>` or :ref:`navpoly_set_transform<class_Navigation2D_navpoly_set_transform>`. If given, a :ref:`Transform2D<class_transform2d>` is applied to the polygon. The optional ``owner`` is used as return value for :ref:`get_closest_point_owner<class_Navigation2D_get_closest_point_owner>`.
+
 .. _class_Navigation2D_navpoly_remove:
 
 - void **navpoly_remove** **(** :ref:`int<class_int>` id **)**
 
+Removes the :ref:`NavigationPolygon<class_navigationpolygon>` with the given ID.
+
 .. _class_Navigation2D_navpoly_set_transform:
 
 - void **navpoly_set_transform** **(** :ref:`int<class_int>` id, :ref:`Transform2D<class_transform2d>` xform **)**
 
+Sets the transform applied to the :ref:`NavigationPolygon<class_navigationpolygon>` with the given ID.
+
 

+ 2 - 2
classes/class_networkedmultiplayerenet.rst

@@ -69,13 +69,13 @@ Closes the connection. Ignored if no connection is currently established. If thi
 
 - :ref:`int<class_int>` **create_client** **(** :ref:`String<class_string>` ip, :ref:`int<class_int>` port, :ref:`int<class_int>` in_bandwidth=0, :ref:`int<class_int>` out_bandwidth=0 **)**
 
-Create client that connects to a server at address ``ip`` using specified ``port``. The given IP needs to be in IPv4 or IPv6 address format, for example: ``192.168.1.1``. The ``port`` is the port the server is listening on. The ``in_bandwidth`` and ``out_bandwidth`` parameters can be used to limit the incoming and outgoing bandwidth to the given number of bytes per second. The default of 0 means unlimited bandwidth. Note that ENet will strategically drop packets on specific sides of a connection between peers to ensure the peer's bandwidth is not overwhelmed. The bandwidth parameters also determine the window size of a connection which limits the amount of reliable packets that may be in transit at any given time.
+Create client that connects to a server at address ``ip`` using specified ``port``. The given IP needs to be in IPv4 or IPv6 address format, for example: ``192.168.1.1``. The ``port`` is the port the server is listening on. The ``in_bandwidth`` and ``out_bandwidth`` parameters can be used to limit the incoming and outgoing bandwidth to the given number of bytes per second. The default of 0 means unlimited bandwidth. Note that ENet will strategically drop packets on specific sides of a connection between peers to ensure the peer's bandwidth is not overwhelmed. The bandwidth parameters also determine the window size of a connection which limits the amount of reliable packets that may be in transit at any given time. Returns ``OK`` if a client was created, ``ERR_ALREADY_IN_USE`` if this NetworkedMultiplayerEnet instance already has an open connection (in which case you need to call :ref:`close_connection<class_NetworkedMultiplayerENet_close_connection>` first) or ``ERR_CANT_CREATE`` if the client could not be created.
 
 .. _class_NetworkedMultiplayerENet_create_server:
 
 - :ref:`int<class_int>` **create_server** **(** :ref:`int<class_int>` port, :ref:`int<class_int>` max_clients=32, :ref:`int<class_int>` in_bandwidth=0, :ref:`int<class_int>` out_bandwidth=0 **)**
 
-Create server that listens to connections via ``port``. The port needs to be an available, unused port between 0 and 65535. Note that ports below 1024 are privileged and may require elevated permissions depending on the platform. To change the interface the server listens on, use :ref:`set_bind_ip<class_NetworkedMultiplayerENet_set_bind_ip>`. The default IP is the wildcard ``*``, which listens on all available interfaces. ``max_clients`` is the maximum number of clients that are allowed at once, any number up to 4096 may be used, although the achievable number of simultaneous clients may be far lower and depends on the application. For additional details on the bandwidth parameters, see :ref:`create_client<class_NetworkedMultiplayerENet_create_client>`.
+Create server that listens to connections via ``port``. The port needs to be an available, unused port between 0 and 65535. Note that ports below 1024 are privileged and may require elevated permissions depending on the platform. To change the interface the server listens on, use :ref:`set_bind_ip<class_NetworkedMultiplayerENet_set_bind_ip>`. The default IP is the wildcard ``*``, which listens on all available interfaces. ``max_clients`` is the maximum number of clients that are allowed at once, any number up to 4096 may be used, although the achievable number of simultaneous clients may be far lower and depends on the application. For additional details on the bandwidth parameters, see :ref:`create_client<class_NetworkedMultiplayerENet_create_client>`. Returns ``OK`` if a server was created, ``ERR_ALREADY_IN_USE`` if this NetworkedMultiplayerEnet instance already has an open connection (in which case you need to call :ref:`close_connection<class_NetworkedMultiplayerENet_close_connection>` first) or ``ERR_CANT_CREATE`` if the server could not be created.
 
 .. _class_NetworkedMultiplayerENet_set_bind_ip:
 

+ 97 - 37
classes/class_node.rst

@@ -120,6 +120,8 @@ Member Functions
 +------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                               | :ref:`print_tree<class_Node_print_tree>` **(** **)**                                                                                                                                         |
 +------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                               | :ref:`print_tree_pretty<class_Node_print_tree_pretty>` **(** **)**                                                                                                                           |
++------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                               | :ref:`propagate_call<class_Node_propagate_call>` **(** :ref:`String<class_string>` method, :ref:`Array<class_array>` args=[  ], :ref:`bool<class_bool>` parent_first=false **)**             |
 +------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                               | :ref:`propagate_notification<class_Node_propagate_notification>` **(** :ref:`int<class_int>` what **)**                                                                                      |
@@ -204,7 +206,7 @@ Emitted after the node exits the tree and is no longer active.
 
 - **tree_exiting** **(** **)**
 
-Emitted when the node is still active but about to exit the tree. This is the right place for de-initialization.
+Emitted when the node is still active but about to exit the tree. This is the right place for de-initialization (or a "destructor", if you will).
 
 
 Member Variables
@@ -216,17 +218,15 @@ Member Variables
 
   .. _class_Node_name:
 
-- :ref:`String<class_string>` **name** - The name of the node. This name is unique among the siblings (other child nodes from the same parent).
-
-When set to an existing name, the node will be automatically renamed
+- :ref:`String<class_string>` **name** - The name of the node. This name is unique among the siblings (other child nodes from the same parent). When set to an existing name, the node will be automatically renamed
 
   .. _class_Node_owner:
 
-- :ref:`Node<class_node>` **owner** - The node owner. A node can have any other node as owner (as long as it is a valid parent, grandparent, etc. ascending in the tree). When saving a node (using SceneSaver) all the nodes it owns will be saved with it. This allows for the creation of complex :ref:`SceneTree<class_scenetree>`\ s, with instancing and subinstancing.
+- :ref:`Node<class_node>` **owner** - The node owner. A node can have any other node as owner (as long as it is a valid parent, grandparent, etc. ascending in the tree). When saving a node (using :ref:`PackedScene<class_packedscene>`) all the nodes it owns will be saved with it. This allows for the creation of complex :ref:`SceneTree<class_scenetree>`\ s, with instancing and subinstancing.
 
   .. _class_Node_pause_mode:
 
-- :ref:`PauseMode<enum_node_pausemode>` **pause_mode**
+- :ref:`PauseMode<enum_node_pausemode>` **pause_mode** - Pause mode. How the node will behave if the :ref:`SceneTree<class_scenetree>` is paused.
 
 
 Numeric Constants
@@ -246,9 +246,9 @@ Numeric Constants
 - **NOTIFICATION_DRAG_BEGIN** = **21** --- Notification received when a drag begins.
 - **NOTIFICATION_DRAG_END** = **22** --- Notification received when a drag ends.
 - **NOTIFICATION_PATH_CHANGED** = **23** --- Notification received when the node's :ref:`NodePath<class_nodepath>` changed.
-- **NOTIFICATION_TRANSLATION_CHANGED** = **24**
-- **NOTIFICATION_INTERNAL_PROCESS** = **25**
-- **NOTIFICATION_INTERNAL_PHYSICS_PROCESS** = **26**
+- **NOTIFICATION_TRANSLATION_CHANGED** = **24** --- Notification received when translations may have changed. Can be triggered by the user changing the locale. Can be used to respond to language changes, for example to change the UI strings on the fly. Useful when working with the built-in translation support, like :ref:`Object.tr<class_Object_tr>`.
+- **NOTIFICATION_INTERNAL_PROCESS** = **25** --- Notification received every frame when the internal process flag is set (see :ref:`set_process_internal<class_Node_set_process_internal>`).
+- **NOTIFICATION_INTERNAL_PHYSICS_PROCESS** = **26** --- Notification received every frame when the internal physics process flag is set (see :ref:`set_physics_process_internal<class_Node_set_physics_process_internal>`).
 
 Enums
 -----
@@ -257,19 +257,19 @@ Enums
 
 enum **PauseMode**
 
-- **PAUSE_MODE_INHERIT** = **0** --- Inherits pause mode from parent. For root node, it is equivalent to PAUSE_MODE_STOP.
-- **PAUSE_MODE_STOP** = **1** --- Stop processing when SceneTree is paused.
-- **PAUSE_MODE_PROCESS** = **2** --- Continue to process regardless of SceneTree pause state.
+- **PAUSE_MODE_INHERIT** = **0** --- Inherits pause mode from the node's parent. For the root node, it is equivalent to PAUSE_MODE_STOP. Default.
+- **PAUSE_MODE_STOP** = **1** --- Stop processing when the :ref:`SceneTree<class_scenetree>` is paused.
+- **PAUSE_MODE_PROCESS** = **2** --- Continue to process regardless of the :ref:`SceneTree<class_scenetree>` pause state.
 
   .. _enum_Node_RPCMode:
 
 enum **RPCMode**
 
-- **RPC_MODE_DISABLED** = **0**
-- **RPC_MODE_REMOTE** = **1** --- Call a method remotely.
-- **RPC_MODE_SYNC** = **2** --- Call a method both remotely and locally.
-- **RPC_MODE_MASTER** = **3** --- Call a method if the Node is Master.
-- **RPC_MODE_SLAVE** = **4** --- Call a method if the Node is Slave.
+- **RPC_MODE_DISABLED** = **0** --- Used with :ref:`rpc_config<class_Node_rpc_config>` or :ref:`rset_config<class_Node_rset_config>` to disable a method or property for all RPC calls, making it unavailable. Default for all methods.
+- **RPC_MODE_REMOTE** = **1** --- Used with :ref:`rpc_config<class_Node_rpc_config>` or :ref:`rset_config<class_Node_rset_config>` to set a method to be called or a property to be changed only on the remote end, not locally. Analogous to the ``remote`` keyword.
+- **RPC_MODE_SYNC** = **2** --- Used with :ref:`rpc_config<class_Node_rpc_config>` or :ref:`rset_config<class_Node_rset_config>` to set a method to be called or a property to be changed both on the remote end and locally. Analogous to the ``sync`` keyword.
+- **RPC_MODE_MASTER** = **3** --- Used with :ref:`rpc_config<class_Node_rpc_config>` or :ref:`rset_config<class_Node_rset_config>` to set a method to be called or a property to be changed only on the network master for this node. Analogous to the ``master`` keyword. See :ref:`set_network_master<class_Node_set_network_master>`.
+- **RPC_MODE_SLAVE** = **4** --- Used with :ref:`rpc_config<class_Node_rpc_config>` or :ref:`rset_config<class_Node_rset_config>` to set a method to be called or a property to be changed only on slaves for this node. Analogous to the ``slave`` keyword. See :ref:`set_network_master<class_Node_set_network_master>`.
 
   .. _enum_Node_DuplicateFlags:
 
@@ -302,7 +302,9 @@ To keep track of the scene hierarchy (especially when instancing scenes into oth
 
 Finally, when a node is freed with :ref:`free<class_Node_free>` or :ref:`queue_free<class_Node_queue_free>`, it will also free all its children.
 
-**Networking with nodes:** After connecting to a server (or making one, see :ref:`NetworkedMultiplayerENet<class_networkedmultiplayerenet>`) it is possible to use the built-in RPC (remote procedure call) system to communicate over the network. By calling :ref:`rpc<class_Node_rpc>` with a method name, it will be called locally and in all connected peers (peers = clients and the server that accepts connections), with behaviour varying depending on the network mode (:ref:`set_network_mode<class_Node_set_network_mode>`) of the receiving peer. To identify which node receives the RPC call Godot will use its :ref:`NodePath<class_nodepath>` (make sure node names are the same on all peers).
+**Groups:** Nodes can be added to as many groups as you want to be easy to manage, you could create groups like "enemies" or "collectables" for example, depending on your game. See :ref:`add_to_group<class_Node_add_to_group>`, :ref:`is_in_group<class_Node_is_in_group>` and :ref:`remove_from_group<class_Node_remove_from_group>`. You can then retrieve all nodes in these groups, iterate them and even call methods on groups via the methods on :ref:`SceneTree<class_scenetree>`.
+
+**Networking with nodes:** After connecting to a server (or making one, see :ref:`NetworkedMultiplayerENet<class_networkedmultiplayerenet>`) it is possible to use the built-in RPC (remote procedure call) system to communicate over the network. By calling :ref:`rpc<class_Node_rpc>` with a method name, it will be called locally and in all connected peers (peers = clients and the server that accepts connections). To identify which node receives the RPC call Godot will use its :ref:`NodePath<class_nodepath>` (make sure node names are the same on all peers). Also take a look at the high-level networking tutorial and corresponding demos.
 
 Member Function Description
 ---------------------------
@@ -331,6 +333,10 @@ Called when there is an input event. The input event propagates through the node
 
 It is only called if input processing is enabled, which is done automatically if this method is overridden, and can be toggled with :ref:`set_process_input<class_Node_set_process_input>`.
 
+To consume the input event and stop it propagating further to other nodes, :ref:`SceneTree.set_input_as_handled<class_SceneTree_set_input_as_handled>` can be called.
+
+For gameplay input, :ref:`_unhandled_input<class_Node__unhandled_input>` and :ref:`_unhandled_key_input<class_Node__unhandled_key_input>` are usually a better fit as they allow the GUI to intercept the events first.
+
 .. _class_Node__physics_process:
 
 - void **_physics_process** **(** :ref:`float<class_float>` delta **)** virtual
@@ -357,20 +363,34 @@ Corresponds to the NOTIFICATION_PROCESS notification in :ref:`Object._notificati
 
 Called when the node is "ready", i.e. when both the node and its children have entered the scene tree. If the node has children, their :ref:`_ready<class_Node__ready>` callbacks get triggered first, and the parent node will receive the ready notification afterwards.
 
-Corresponds to the NOTIFICATION_READY notification in :ref:`Object._notification<class_Object__notification>`.
+Corresponds to the NOTIFICATION_READY notification in :ref:`Object._notification<class_Object__notification>`. See also the ``onready`` keyword for variables.
+
+Usually used for initialization. For even earlier initialization, :ref:`Object._init<class_Object__init>` may be used. Also see :ref:`_enter_tree<class_Node__enter_tree>`.
 
 .. _class_Node__unhandled_input:
 
 - void **_unhandled_input** **(** :ref:`InputEvent<class_inputevent>` event **)** virtual
 
-Propagated to all nodes when the previous InputEvent is not consumed by any nodes.
+Propagated to all nodes when the previous :ref:`InputEvent<class_inputevent>` is not consumed by any nodes.
 
 It is only called if unhandled input processing is enabled, which is done automatically if this method is overridden, and can be toggled with :ref:`set_process_unhandled_input<class_Node_set_process_unhandled_input>`.
 
+To consume the input event and stop it propagating further to other nodes, :ref:`SceneTree.set_input_as_handled<class_SceneTree_set_input_as_handled>` can be called.
+
+For gameplay input, this and :ref:`_unhandled_key_input<class_Node__unhandled_key_input>` are usually a better fit than :ref:`_input<class_Node__input>` as they allow the GUI to intercept the events first.
+
 .. _class_Node__unhandled_key_input:
 
 - void **_unhandled_key_input** **(** :ref:`InputEventKey<class_inputeventkey>` event **)** virtual
 
+Propagated to all nodes when the previous :ref:`InputEventKey<class_inputeventkey>` is not consumed by any nodes.
+
+It is only called if unhandled key input processing is enabled, which is done automatically if this method is overridden, and can be toggled with :ref:`set_process_unhandled_key_input<class_Node_set_process_unhandled_key_input>`.
+
+To consume the input event and stop it propagating further to other nodes, :ref:`SceneTree.set_input_as_handled<class_SceneTree_set_input_as_handled>` can be called.
+
+For gameplay input, this and :ref:`_unhandled_input<class_Node__unhandled_input>` are usually a better fit than :ref:`_input<class_Node__input>` as they allow the GUI to intercept the events first.
+
 .. _class_Node_add_child:
 
 - void **add_child** **(** :ref:`Node<class_node>` node, :ref:`bool<class_bool>` legible_unique_name=false **)**
@@ -391,7 +411,7 @@ Setting "legible_unique_name" ``true`` creates child nodes with human-readable n
 
 - void **add_to_group** **(** :ref:`String<class_string>` group, :ref:`bool<class_bool>` persistent=false **)**
 
-Adds the node to a group. Groups are helpers to name and organize a subset of nodes, for example "enemies" or "collectables". A node can be in any number of groups. Nodes can be assigned a group at any time, but will not be added until they are inside the scene tree (see :ref:`is_inside_tree<class_Node_is_inside_tree>`).
+Adds the node to a group. Groups are helpers to name and organize a subset of nodes, for example "enemies" or "collectables". A node can be in any number of groups. Nodes can be assigned a group at any time, but will not be added until they are inside the scene tree (see :ref:`is_inside_tree<class_Node_is_inside_tree>`). See notes in the description, and the group methods in :ref:`SceneTree<class_scenetree>`.
 
 .. _class_Node_can_process:
 
@@ -447,7 +467,7 @@ Returns the node's index, i.e. its position among the siblings of its parent.
 
 - :ref:`int<class_int>` **get_network_master** **(** **)** const
 
-Returns the peer ID of the network master for this node.
+Returns the peer ID of the network master for this node. See :ref:`set_network_master<class_Node_set_network_master>`.
 
 .. _class_Node_get_node:
 
@@ -499,7 +519,7 @@ Returns the absolute path of the current node. This only works if the current no
 
 - :ref:`NodePath<class_nodepath>` **get_path_to** **(** :ref:`Node<class_node>` node **)** const
 
-Returns the relative path from the current node to the specified node in "node" argument. Both nodes must be in the same scene, or the function will fail.
+Returns the relative :ref:`NodePath<class_nodepath>` from this node to the specified ``node``. Both nodes must be in the same scene or the function will fail.
 
 .. _class_Node_get_physics_process_delta_time:
 
@@ -523,6 +543,8 @@ Returns the time elapsed (in seconds) since the last process callback. This valu
 
 - :ref:`bool<class_bool>` **get_scene_instance_load_placeholder** **(** **)** const
 
+Returns ``true`` if this is an instance load placeholder. See :ref:`InstancePlaceholder<class_instanceplaceholder>`.
+
 .. _class_Node_get_tree:
 
 - :ref:`SceneTree<class_scenetree>` **get_tree** **(** **)** const
@@ -567,7 +589,7 @@ Returns ``true`` if the given node occurs later in the scene hierarchy than the
 
 - :ref:`bool<class_bool>` **is_in_group** **(** :ref:`String<class_string>` group **)** const
 
-Returns ``true`` if this node is in the specified group.
+Returns ``true`` if this node is in the specified group. See notes in the description, and the group methods in :ref:`SceneTree<class_scenetree>`.
 
 .. _class_Node_is_inside_tree:
 
@@ -579,6 +601,8 @@ Returns ``true`` if this node is currently inside a :ref:`SceneTree<class_scenet
 
 - :ref:`bool<class_bool>` **is_network_master** **(** **)** const
 
+Returns ``true`` if the local system is the master of this node.
+
 .. _class_Node_is_physics_processing:
 
 - :ref:`bool<class_bool>` **is_physics_processing** **(** **)** const
@@ -589,6 +613,8 @@ Returns ``true`` if physics processing is enabled (see :ref:`set_physics_process
 
 - :ref:`bool<class_bool>` **is_physics_processing_internal** **(** **)** const
 
+Returns ``true`` if internal physics processing is enabled (see :ref:`set_physics_process_internal<class_Node_set_physics_process_internal>`).
+
 .. _class_Node_is_processing:
 
 - :ref:`bool<class_bool>` **is_processing** **(** **)** const
@@ -605,6 +631,8 @@ Returns ``true`` if the node is processing input (see :ref:`set_process_input<cl
 
 - :ref:`bool<class_bool>` **is_processing_internal** **(** **)** const
 
+Returns ``true`` if internal processing is enabled (see :ref:`set_process_internal<class_Node_set_process_internal>`).
+
 .. _class_Node_is_processing_unhandled_input:
 
 - :ref:`bool<class_bool>` **is_processing_unhandled_input** **(** **)** const
@@ -627,11 +655,37 @@ Moves a child node to a different position (order) amongst the other children. S
 
 - void **print_stray_nodes** **(** **)**
 
+Prints all stray nodes (nodes outside the :ref:`SceneTree<class_scenetree>`). Used for debugging. Works only in debug builds.
+
 .. _class_Node_print_tree:
 
 - void **print_tree** **(** **)**
 
-Prints the scene to stdout. Used mainly for debugging purposes.
+Prints the tree to stdout. Used mainly for debugging purposes. This version displays the path relative to the current node, and is good for copy/pasting into the :ref:`get_node<class_Node_get_node>` function. Example output:
+
+::
+
+    TheGame
+    TheGame/Menu
+    TheGame/Menu/Label
+    TheGame/Menu/Camera2D
+    TheGame/SplashScreen
+    TheGame/SplashScreen/Camera2D
+
+.. _class_Node_print_tree_pretty:
+
+- void **print_tree_pretty** **(** **)**
+
+Similar to :ref:`print_tree<class_Node_print_tree>`, this prints the tree to stdout. This version displays a more graphical representation similar to what is displayed in the scene inspector. It is useful for inspecting larger trees. Example output:
+
+::
+
+     ┖╴TheGame
+        ┠╴Menu
+        ┃  ┠╴Label
+        ┃  ┖╴Camera2D
+        ┖-SplashScreen
+           ┖╴Camera2D
 
 .. _class_Node_propagate_call:
 
@@ -673,7 +727,7 @@ Removes a child node. The node is NOT deleted and must be deleted manually.
 
 - void **remove_from_group** **(** :ref:`String<class_string>` group **)**
 
-Removes a node from a group.
+Removes a node from a group. See notes in the description, and the group methods in :ref:`SceneTree<class_scenetree>`.
 
 .. _class_Node_replace_by:
 
@@ -691,61 +745,61 @@ Requests that ``_ready`` be called again.
 
 - :ref:`Variant<class_variant>` **rpc** **(** :ref:`String<class_string>` method **)** vararg
 
-Sends a remote procedure call request to all peers on the network (and locally), optionally sending additional data as arguments. Call request will be received by nodes with the same :ref:`NodePath<class_nodepath>`.
+Sends a remote procedure call request for the given ``method`` to peers on the network (and locally), optionally sending all additional arguments as arguments to the method called by the RPC. The call request will only be received by nodes with the same :ref:`NodePath<class_nodepath>`, including the exact same node name. Behaviour depends on the RPC configuration for the given method, see :ref:`rpc_config<class_Node_rpc_config>`. Methods are not exposed to RPCs by default. Also see :ref:`rset<class_Node_rset>` and :ref:`rset_config<class_Node_rset_config>` for properties. Returns an empty :ref:`Variant<class_variant>`. Note that you can only safely use RPCs on clients after you received the ``connected_to_server`` signal from the :ref:`SceneTree<class_scenetree>`. You also need to keep track of the connection state, either by the :ref:`SceneTree<class_scenetree>` signals like ``server_disconnected`` or by checking ``SceneTree.network_peer.get_connection_status() == CONNECTION_CONNECTED``.
 
 .. _class_Node_rpc_config:
 
 - void **rpc_config** **(** :ref:`String<class_string>` method, :ref:`int<class_int>` mode **)**
 
-Changes the method's RPC mode (one of RPC_MODE\_\* constants).
+Changes the RPC mode for the given ``method`` to the given ``mode``. See enum RPCMode. An alternative is annotating methods and properties with the corresponding keywords (``remote``, ``sync``, ``master``, ``slave``). By default, methods are not exposed to networking (and RPCs). Also see :ref:`rset<class_Node_rset>` and :ref:`rset_config<class_Node_rset_config>` for properties.
 
 .. _class_Node_rpc_id:
 
 - :ref:`Variant<class_variant>` **rpc_id** **(** :ref:`int<class_int>` peer_id, :ref:`String<class_string>` method **)** vararg
 
-Sends a :ref:`rpc<class_Node_rpc>` to a specific peer identified by *peer_id*.
+Sends a :ref:`rpc<class_Node_rpc>` to a specific peer identified by ``peer_id``. Returns an empty :ref:`Variant<class_variant>`.
 
 .. _class_Node_rpc_unreliable:
 
 - :ref:`Variant<class_variant>` **rpc_unreliable** **(** :ref:`String<class_string>` method **)** vararg
 
-Sends a :ref:`rpc<class_Node_rpc>` using an unreliable protocol.
+Sends a :ref:`rpc<class_Node_rpc>` using an unreliable protocol. Returns an empty :ref:`Variant<class_variant>`.
 
 .. _class_Node_rpc_unreliable_id:
 
 - :ref:`Variant<class_variant>` **rpc_unreliable_id** **(** :ref:`int<class_int>` peer_id, :ref:`String<class_string>` method **)** vararg
 
-Sends a :ref:`rpc<class_Node_rpc>` to a specific peer identified by *peer_id* using an unreliable protocol.
+Sends a :ref:`rpc<class_Node_rpc>` to a specific peer identified by ``peer_id`` using an unreliable protocol. Returns an empty :ref:`Variant<class_variant>`.
 
 .. _class_Node_rset:
 
 - void **rset** **(** :ref:`String<class_string>` property, :ref:`Variant<class_variant>` value **)**
 
-Remotely changes property's value on other peers (and locally).
+Remotely changes a property's value on other peers (and locally). Behaviour depends on the RPC configuration for the given property, see :ref:`rset_config<class_Node_rset_config>`. Also see :ref:`rpc<class_Node_rpc>` for RPCs for methods, most information applies to this method as well.
 
 .. _class_Node_rset_config:
 
 - void **rset_config** **(** :ref:`String<class_string>` property, :ref:`int<class_int>` mode **)**
 
-Changes the property's RPC mode (one of RPC_MODE\_\* constants).
+Changes the RPC mode for the given ``property`` to the given ``mode``. See enum RPCMode. An alternative is annotating methods and properties with the corresponding keywords (``remote``, ``sync``, ``master``, ``slave``). By default, properties are not exposed to networking (and RPCs). Also see :ref:`rpc<class_Node_rpc>` and :ref:`rpc_config<class_Node_rpc_config>` for methods.
 
 .. _class_Node_rset_id:
 
 - void **rset_id** **(** :ref:`int<class_int>` peer_id, :ref:`String<class_string>` property, :ref:`Variant<class_variant>` value **)**
 
-Remotely changes property's value on a specific peer identified by *peer_id*.
+Remotely changes the property's value on a specific peer identified by ``peer_id``.
 
 .. _class_Node_rset_unreliable:
 
 - void **rset_unreliable** **(** :ref:`String<class_string>` property, :ref:`Variant<class_variant>` value **)**
 
-Remotely changes property's value on other peers (and locally) using an unreliable protocol.
+Remotely changes the property's value on other peers (and locally) using an unreliable protocol.
 
 .. _class_Node_rset_unreliable_id:
 
 - void **rset_unreliable_id** **(** :ref:`int<class_int>` peer_id, :ref:`String<class_string>` property, :ref:`Variant<class_variant>` value **)**
 
-Remotely changes property's value on a specific peer identified by *peer_id* using an unreliable protocol.
+Remotely changes property's value on a specific peer identified by ``peer_id`` using an unreliable protocol.
 
 .. _class_Node_set_display_folded:
 
@@ -757,7 +811,7 @@ Sets the folded state of the node in the Scene dock.
 
 - void **set_network_master** **(** :ref:`int<class_int>` id, :ref:`bool<class_bool>` recursive=true **)**
 
-Sets the node network master to the peer with the given peer ID. The network master is the peer that has authority over it on the network. Inherited from the parent node by default, which ultimately defaults to peer ID 1 (the server).
+Sets the node's network master to the peer with the given peer ID. The network master is the peer that has authority over the node on the network. Useful in conjunction with the ``master`` and ``slave`` keywords. Inherited from the parent node by default, which ultimately defaults to peer ID 1 (the server). If ``recursive``, the given peer is recursively set as the master for all children of this node.
 
 .. _class_Node_set_physics_process:
 
@@ -769,6 +823,8 @@ Enables or disables physics (i.e. fixed framerate) processing. When a node is be
 
 - void **set_physics_process_internal** **(** :ref:`bool<class_bool>` enable **)**
 
+Enables or disables internal physics for this node. Internal physics processing happens in isolation from the normal :ref:`method<class_Node_method>`_physics_process`` calls and is used by some nodes internally to guarantee proper functioning even if the node is paused or physics processing is disabled for scripting (:ref:`set_physics_process<class_Node_set_physics_process>`). Only useful for advanced uses to manipulate built-in nodes behaviour.
+
 .. _class_Node_set_process:
 
 - void **set_process** **(** :ref:`bool<class_bool>` enable **)**
@@ -785,6 +841,8 @@ Enables or disables input processing. This is not required for GUI controls! Ena
 
 - void **set_process_internal** **(** :ref:`bool<class_bool>` enable **)**
 
+Enables or disabled internal processing for this node. Internal processing happens in isolation from the normal :ref:`method<class_Node_method>`_process`` calls and is used by some nodes internally to guarantee proper functioning even if the node is paused or processing is disabled for scripting (:ref:`set_process<class_Node_set_process>`). Only useful for advanced uses to manipulate built-in nodes behaviour.
+
 .. _class_Node_set_process_unhandled_input:
 
 - void **set_process_unhandled_input** **(** :ref:`bool<class_bool>` enable **)**
@@ -801,4 +859,6 @@ Enables unhandled key input processing. Enabled automatically if :ref:`_unhandle
 
 - void **set_scene_instance_load_placeholder** **(** :ref:`bool<class_bool>` load_placeholder **)**
 
+Sets whether this is an instance load placeholder. See :ref:`InstancePlaceholder<class_instanceplaceholder>`.
+
 

+ 2 - 0
classes/class_object.rst

@@ -112,6 +112,8 @@ Signals
 
 - **script_changed** **(** **)**
 
+Emitted whenever the script of the Object is changed.
+
 
 Numeric Constants
 -----------------

+ 93 - 53
classes/class_os.rst

@@ -40,6 +40,10 @@ Member Functions
 +------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`int<class_int>`                          | :ref:`find_scancode_from_string<class_OS_find_scancode_from_string>` **(** :ref:`String<class_string>` string **)** const                                                                                                |
 +------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                          | :ref:`get_audio_driver_count<class_OS_get_audio_driver_count>` **(** **)** const                                                                                                                                         |
++------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_string>`                    | :ref:`get_audio_driver_name<class_OS_get_audio_driver_name>` **(** :ref:`int<class_int>` arg0 **)** const                                                                                                                |
++------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`PoolStringArray<class_poolstringarray>`  | :ref:`get_cmdline_args<class_OS_get_cmdline_args>` **(** **)**                                                                                                                                                           |
 +------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`Dictionary<class_dictionary>`            | :ref:`get_date<class_OS_get_date>` **(** :ref:`bool<class_bool>` utc=false **)** const                                                                                                                                   |
@@ -130,6 +134,8 @@ Member Functions
 +------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`bool<class_bool>`                        | :ref:`is_userfs_persistent<class_OS_is_userfs_persistent>` **(** **)** const                                                                                                                                             |
 +------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                        | :ref:`is_window_always_on_top<class_OS_is_window_always_on_top>` **(** **)** const                                                                                                                                       |
++------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`int<class_int>`                          | :ref:`kill<class_OS_kill>` **(** :ref:`int<class_int>` pid **)**                                                                                                                                                         |
 +------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`bool<class_bool>`                        | :ref:`native_video_is_playing<class_OS_native_video_is_playing>` **(** **)**                                                                                                                                             |
@@ -160,6 +166,8 @@ Member Functions
 +------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                                           | :ref:`set_use_file_access_save_and_swap<class_OS_set_use_file_access_save_and_swap>` **(** :ref:`bool<class_bool>` enabled **)**                                                                                         |
 +------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                           | :ref:`set_window_always_on_top<class_OS_set_window_always_on_top>` **(** :ref:`bool<class_bool>` enabled **)**                                                                                                           |
++------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                                           | :ref:`set_window_title<class_OS_set_window_title>` **(** :ref:`String<class_string>` title **)**                                                                                                                         |
 +------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`int<class_int>`                          | :ref:`shell_open<class_OS_shell_open>` **(** :ref:`String<class_string>` uri **)**                                                                                                                                       |
@@ -180,39 +188,39 @@ Member Variables
 
   .. _class_OS_exit_code:
 
-- :ref:`int<class_int>` **exit_code**
+- :ref:`int<class_int>` **exit_code** - The exit code passed to the OS when the main loop exits.
 
   .. _class_OS_keep_screen_on:
 
-- :ref:`bool<class_bool>` **keep_screen_on**
+- :ref:`bool<class_bool>` **keep_screen_on** - If ``true`` the engine tries to keep the screen on while the game is running. Useful on mobile.
 
   .. _class_OS_low_processor_usage_mode:
 
-- :ref:`bool<class_bool>` **low_processor_usage_mode**
+- :ref:`bool<class_bool>` **low_processor_usage_mode** - If ``true`` the engine optimizes for low processor usage by only refreshing the screen if needed. Can improve battery consumption on mobile.
 
   .. _class_OS_screen_orientation:
 
-- _OS.ScreenOrientation **screen_orientation** - The current screen orientation.
+- :ref:`ScreenOrientation<enum_os_screenorientation>` **screen_orientation** - The current screen orientation.
 
   .. _class_OS_vsync_enabled:
 
-- :ref:`bool<class_bool>` **vsync_enabled**
+- :ref:`bool<class_bool>` **vsync_enabled** - If ``true`` vertical synchronization (Vsync) is enabled.
 
   .. _class_OS_window_borderless:
 
-- :ref:`bool<class_bool>` **window_borderless** - If ``true``, removes the window frame.
+- :ref:`bool<class_bool>` **window_borderless** - If ``true`` removes the window frame.
 
   .. _class_OS_window_fullscreen:
 
-- :ref:`bool<class_bool>` **window_fullscreen** - If ``true``, the window is fullscreen.
+- :ref:`bool<class_bool>` **window_fullscreen** - If ``true`` the window is fullscreen.
 
   .. _class_OS_window_maximized:
 
-- :ref:`bool<class_bool>` **window_maximized** - If ``true``, the window is maximized.
+- :ref:`bool<class_bool>` **window_maximized** - If ``true`` the window is maximized.
 
   .. _class_OS_window_minimized:
 
-- :ref:`bool<class_bool>` **window_minimized** - If ``true``, the window is minimized.
+- :ref:`bool<class_bool>` **window_minimized** - If ``true`` the window is minimized.
 
   .. _class_OS_window_position:
 
@@ -234,65 +242,65 @@ Enums
 
 enum **SystemDir**
 
-- **SYSTEM_DIR_DESKTOP** = **0**
-- **SYSTEM_DIR_DCIM** = **1**
-- **SYSTEM_DIR_DOCUMENTS** = **2**
-- **SYSTEM_DIR_DOWNLOADS** = **3**
-- **SYSTEM_DIR_MOVIES** = **4**
-- **SYSTEM_DIR_MUSIC** = **5**
-- **SYSTEM_DIR_PICTURES** = **6**
-- **SYSTEM_DIR_RINGTONES** = **7**
+- **SYSTEM_DIR_DESKTOP** = **0** --- Desktop directory path.
+- **SYSTEM_DIR_DCIM** = **1** --- DCIM (Digital Camera Images) directory path.
+- **SYSTEM_DIR_DOCUMENTS** = **2** --- Documents directory path.
+- **SYSTEM_DIR_DOWNLOADS** = **3** --- Downloads directory path.
+- **SYSTEM_DIR_MOVIES** = **4** --- Movies directory path.
+- **SYSTEM_DIR_MUSIC** = **5** --- Music directory path.
+- **SYSTEM_DIR_PICTURES** = **6** --- Pictures directory path.
+- **SYSTEM_DIR_RINGTONES** = **7** --- Ringtones directory path.
 
   .. _enum_OS_ScreenOrientation:
 
 enum **ScreenOrientation**
 
-- **SCREEN_ORIENTATION_LANDSCAPE** = **0**
-- **SCREEN_ORIENTATION_PORTRAIT** = **1**
-- **SCREEN_ORIENTATION_REVERSE_LANDSCAPE** = **2**
-- **SCREEN_ORIENTATION_REVERSE_PORTRAIT** = **3**
-- **SCREEN_ORIENTATION_SENSOR_LANDSCAPE** = **4**
-- **SCREEN_ORIENTATION_SENSOR_PORTRAIT** = **5**
-- **SCREEN_ORIENTATION_SENSOR** = **6**
+- **SCREEN_ORIENTATION_LANDSCAPE** = **0** --- Landscape screen orientation.
+- **SCREEN_ORIENTATION_PORTRAIT** = **1** --- Portrait screen orientation.
+- **SCREEN_ORIENTATION_REVERSE_LANDSCAPE** = **2** --- Reverse landscape screen orientation.
+- **SCREEN_ORIENTATION_REVERSE_PORTRAIT** = **3** --- Reverse portrait screen orientation.
+- **SCREEN_ORIENTATION_SENSOR_LANDSCAPE** = **4** --- Uses landscape or reverse landscape based on the hardware sensor.
+- **SCREEN_ORIENTATION_SENSOR_PORTRAIT** = **5** --- Uses portrait or reverse portrait based on the hardware sensor.
+- **SCREEN_ORIENTATION_SENSOR** = **6** --- Uses most suitable orientation based on the hardware sensor.
 
   .. _enum_OS_PowerState:
 
 enum **PowerState**
 
-- **POWERSTATE_UNKNOWN** = **0**
-- **POWERSTATE_ON_BATTERY** = **1**
-- **POWERSTATE_NO_BATTERY** = **2**
-- **POWERSTATE_CHARGING** = **3**
-- **POWERSTATE_CHARGED** = **4**
+- **POWERSTATE_UNKNOWN** = **0** --- Unknown powerstate.
+- **POWERSTATE_ON_BATTERY** = **1** --- Unplugged, running on battery.
+- **POWERSTATE_NO_BATTERY** = **2** --- Plugged in, no battery available.
+- **POWERSTATE_CHARGING** = **3** --- Plugged in, battery charging.
+- **POWERSTATE_CHARGED** = **4** --- Plugged in, battery fully charged.
 
   .. _enum_OS_Weekday:
 
 enum **Weekday**
 
-- **DAY_SUNDAY** = **0**
-- **DAY_MONDAY** = **1**
-- **DAY_TUESDAY** = **2**
-- **DAY_WEDNESDAY** = **3**
-- **DAY_THURSDAY** = **4**
-- **DAY_FRIDAY** = **5**
-- **DAY_SATURDAY** = **6**
+- **DAY_SUNDAY** = **0** --- Sunday.
+- **DAY_MONDAY** = **1** --- Monday.
+- **DAY_TUESDAY** = **2** --- Tuesday.
+- **DAY_WEDNESDAY** = **3** --- Wednesday.
+- **DAY_THURSDAY** = **4** --- Thursday.
+- **DAY_FRIDAY** = **5** --- Friday.
+- **DAY_SATURDAY** = **6** --- Saturday.
 
   .. _enum_OS_Month:
 
 enum **Month**
 
-- **MONTH_JANUARY** = **1**
-- **MONTH_FEBRUARY** = **2**
-- **MONTH_MARCH** = **3**
-- **MONTH_APRIL** = **4**
-- **MONTH_MAY** = **5**
-- **MONTH_JUNE** = **6**
-- **MONTH_JULY** = **7**
-- **MONTH_AUGUST** = **8**
-- **MONTH_SEPTEMBER** = **9**
-- **MONTH_OCTOBER** = **10**
-- **MONTH_NOVEMBER** = **11**
-- **MONTH_DECEMBER** = **12**
+- **MONTH_JANUARY** = **1** --- January.
+- **MONTH_FEBRUARY** = **2** --- February.
+- **MONTH_MARCH** = **3** --- March.
+- **MONTH_APRIL** = **4** --- April.
+- **MONTH_MAY** = **5** --- May.
+- **MONTH_JUNE** = **6** --- June.
+- **MONTH_JULY** = **7** --- July.
+- **MONTH_AUGUST** = **8** --- August.
+- **MONTH_SEPTEMBER** = **9** --- September.
+- **MONTH_OCTOBER** = **10** --- October.
+- **MONTH_NOVEMBER** = **11** --- November.
+- **MONTH_DECEMBER** = **12** --- December.
 
 
 Description
@@ -325,17 +333,19 @@ Returns ``true`` if the current host platform is using multiple threads.
 
 - void **center_window** **(** **)**
 
+Centers the window on the screen if in windowed mode.
+
 .. _class_OS_delay_msec:
 
 - void **delay_msec** **(** :ref:`int<class_int>` msec **)** const
 
-Delay executing of the current thread by given milliseconds.
+Delay execution of the current thread by given milliseconds.
 
 .. _class_OS_delay_usec:
 
 - void **delay_usec** **(** :ref:`int<class_int>` usec **)** const
 
-Delay executing of the current thread by given microseconds.
+Delay execution of the current thread by given microseconds.
 
 .. _class_OS_dump_memory_to_file:
 
@@ -343,7 +353,7 @@ Delay executing of the current thread by given microseconds.
 
 Dumps the memory allocation ringlist to a file (only works in debug).
 
-Entry format per line: "Address - Size - Description"
+Entry format per line: "Address - Size - Description".
 
 .. _class_OS_dump_resources_to_file:
 
@@ -351,7 +361,7 @@ Entry format per line: "Address - Size - Description"
 
 Dumps all used resources to file (only works in debug).
 
-Entry format per line: "Resource Type : Resource Location"
+Entry format per line: "Resource Type : Resource Location".
 
 At the end of the file is a statistic of all used Resource Types.
 
@@ -384,6 +394,18 @@ If you wish to access a shell built-in or perform a composite command, a platfor
 
 Returns the scancode of the given string (e.g. "Escape")
 
+.. _class_OS_get_audio_driver_count:
+
+- :ref:`int<class_int>` **get_audio_driver_count** **(** **)** const
+
+Returns the total number of available audio drivers.
+
+.. _class_OS_get_audio_driver_name:
+
+- :ref:`String<class_string>` **get_audio_driver_name** **(** :ref:`int<class_int>` arg0 **)** const
+
+Returns the audio driver name for the given index.
+
 .. _class_OS_get_cmdline_args:
 
 - :ref:`PoolStringArray<class_poolstringarray>` **get_cmdline_args** **(** **)**
@@ -488,6 +510,8 @@ Returns the number of cores available in the host machine.
 
 - :ref:`Vector2<class_vector2>` **get_real_window_size** **(** **)** const
 
+Returns the window size including decorations like window borders.
+
 .. _class_OS_get_scancode_string:
 
 - :ref:`String<class_string>` **get_scancode_string** **(** :ref:`int<class_int>` code **)** const
@@ -590,7 +614,7 @@ Returns a string that is unique to the device. Currently only works on Android a
 
 - :ref:`int<class_int>` **get_unix_time** **(** **)** const
 
-Return	the current unix timestamp.
+Returns the current unix epoch timestamp.
 
 .. _class_OS_get_unix_time_from_datetime:
 
@@ -620,6 +644,8 @@ If the project name is empty, ``user://`` falls back to ``res://``.
 
 - :ref:`int<class_int>` **get_virtual_keyboard_height** **(** **)**
 
+Returns the on-screen keyboard's height in pixels. Returns 0 if there is no keyboard or it is currently hidden.
+
 .. _class_OS_has_environment:
 
 - :ref:`bool<class_bool>` **has_environment** **(** :ref:`String<class_string>` environment **)** const
@@ -630,6 +656,8 @@ Returns ``true`` if an environment variable exists.
 
 - :ref:`bool<class_bool>` **has_feature** **(** :ref:`String<class_string>` tag_name **)** const
 
+Returns ``true`` if the feature for the given feature tag is supported in the currently running instance, depending on platform, build etc. Can be used to check whether you're currently running a debug build, on a certain platform or arch, etc. See feature tags documentation.
+
 .. _class_OS_has_touchscreen_ui_hint:
 
 - :ref:`bool<class_bool>` **has_touchscreen_ui_hint** **(** **)** const
@@ -682,6 +710,12 @@ Returns ``true`` if the engine was executed with -v (verbose stdout).
 
 If ``true``, the ``user://`` file system is persistent, so that its state is the same after a player quits and starts the game again. Relevant to the HTML5 platform, where this persistence may be unavailable.
 
+.. _class_OS_is_window_always_on_top:
+
+- :ref:`bool<class_bool>` **is_window_always_on_top** **(** **)** const
+
+Returns ``true`` if the window should always be on top of other windows.
+
 .. _class_OS_kill:
 
 - :ref:`int<class_int>` **kill** **(** :ref:`int<class_int>` pid **)**
@@ -770,6 +804,12 @@ Sets the name of the current thread.
 
 Enables backup saves if ``enabled`` is ``true``.
 
+.. _class_OS_set_window_always_on_top:
+
+- void **set_window_always_on_top** **(** :ref:`bool<class_bool>` enabled **)**
+
+Sets whether the window should always be on top.
+
 .. _class_OS_set_window_title:
 
 - void **set_window_title** **(** :ref:`String<class_string>` title **)**

+ 10 - 1
classes/class_packedscene.rst

@@ -56,7 +56,16 @@ Description
 
 A simplified interface to a scene file. Provides access to operations and checks that can be performed on the scene resource itself.
 
-TODO: explain ownership, and that node does not need to own itself
+Can be used to save a node to a file. When saving, the node as well as all the node it owns get saved (see ``owner`` property on :ref:`Node<class_node>`). Note that the node doesn't need to own itself.
+
+Example of saving a node:
+
+::
+
+    var scene = PackedScene.new()
+    var result = scene.pack(child)
+    if result == OK:
+        ResourceSaver.save("res://path/name.scn", scene) // or user://...
 
 Member Function Description
 ---------------------------

+ 1 - 1
classes/class_particlesmaterial.rst

@@ -185,7 +185,7 @@ Member Variables
 
   .. _class_ParticlesMaterial_radial_accel:
 
-- :ref:`float<class_float>` **radial_accel** - Linear acceleration applied to each particle.
+- :ref:`float<class_float>` **radial_accel** - Radial acceleration applied to each particle.
 
   .. _class_ParticlesMaterial_radial_accel_curve:
 

+ 1 - 1
classes/class_poolbytearray.rst

@@ -52,7 +52,7 @@ Member Functions
 Description
 -----------
 
-Raw byte array. Contains bytes. Optimized for memory usage, can't fragment the memory.
+Raw byte array. Contains bytes. Optimized for memory usage, can't fragment the memory. Note that this type is passed by value and not by reference.
 
 Member Function Description
 ---------------------------

+ 1 - 1
classes/class_poolcolorarray.rst

@@ -42,7 +42,7 @@ Member Functions
 Description
 -----------
 
-Array of Color, Contains colors. Optimized for memory usage, can't fragment the memory.
+Array of Color, Contains colors. Optimized for memory usage, can't fragment the memory. Note that this type is passed by value and not by reference.
 
 Member Function Description
 ---------------------------

+ 1 - 1
classes/class_poolintarray.rst

@@ -42,7 +42,7 @@ Member Functions
 Description
 -----------
 
-Integer Array. Contains integers. Optimized for memory usage, can't fragment the memory.
+Integer Array. Contains integers. Optimized for memory usage, can't fragment the memory. Note that this type is passed by value and not by reference.
 
 Member Function Description
 ---------------------------

+ 1 - 1
classes/class_poolrealarray.rst

@@ -42,7 +42,7 @@ Member Functions
 Description
 -----------
 
-Real Array. Array of floating point values. Can only contain floats. Optimized for memory usage, can't fragment the memory.
+Real Array. Array of floating point values. Can only contain floats. Optimized for memory usage, can't fragment the memory. Note that this type is passed by value and not by reference.
 
 Member Function Description
 ---------------------------

+ 1 - 1
classes/class_poolstringarray.rst

@@ -44,7 +44,7 @@ Member Functions
 Description
 -----------
 
-String Array. Array of strings. Can only contain strings. Optimized for memory usage, can't fragment the memory.
+String Array. Array of strings. Can only contain strings. Optimized for memory usage, can't fragment the memory. Note that this type is passed by value and not by reference.
 
 Member Function Description
 ---------------------------

+ 1 - 1
classes/class_poolvector2array.rst

@@ -42,7 +42,7 @@ Member Functions
 Description
 -----------
 
-An Array specifically designed to hold Vector2.
+An Array specifically designed to hold Vector2. Note that this type is passed by value and not by reference.
 
 Member Function Description
 ---------------------------

+ 1 - 1
classes/class_poolvector3array.rst

@@ -42,7 +42,7 @@ Member Functions
 Description
 -----------
 
-An Array specifically designed to hold Vector3.
+An Array specifically designed to hold Vector3. Note that this type is passed by value and not by reference.
 
 Member Function Description
 ---------------------------

+ 1 - 1
classes/class_popup.rst

@@ -52,7 +52,7 @@ Member Variables
 
   .. _class_Popup_popup_exclusive:
 
-- :ref:`bool<class_bool>` **popup_exclusive**
+- :ref:`bool<class_bool>` **popup_exclusive** - If ``true`` the popup will not be hidden when a click event occurs outside of it, or when it receives the ``ui_cancel`` action event.
 
 
 Numeric Constants

+ 42 - 2
classes/class_popupmenu.rst

@@ -22,10 +22,16 @@ Member Functions
 +----------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                             | :ref:`add_check_item<class_PopupMenu_add_check_item>` **(** :ref:`String<class_string>` label, :ref:`int<class_int>` id=-1, :ref:`int<class_int>` accel=0 **)**                                                                        |
 +----------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                             | :ref:`add_radio_check_item<class_PopupMenu_add_radio_check_item>` **(** :ref:`String<class_string>` label, :ref:`int<class_int>` id=-1, :ref:`int<class_int>` accel=0 **)**                                                            |
++----------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                             | :ref:`add_check_shortcut<class_PopupMenu_add_check_shortcut>` **(** :ref:`ShortCut<class_shortcut>` shortcut, :ref:`int<class_int>` id=-1, :ref:`bool<class_bool>` global=false **)**                                                  |
 +----------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                             | :ref:`add_radio_check_shortcut<class_PopupMenu_add_radio_check_shortcut>` **(** :ref:`ShortCut<class_shortcut>` shortcut, :ref:`int<class_int>` id=-1, :ref:`bool<class_bool>` global=false **)**                                      |
++----------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                             | :ref:`add_icon_check_item<class_PopupMenu_add_icon_check_item>` **(** :ref:`Texture<class_texture>` texture, :ref:`String<class_string>` label, :ref:`int<class_int>` id=-1, :ref:`int<class_int>` accel=0 **)**                       |
 +----------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                             | :ref:`add_icon_radio_check_item<class_PopupMenu_add_icon_radio_check_item>` **(** :ref:`Texture<class_texture>` texture, :ref:`String<class_string>` label, :ref:`int<class_int>` id=-1, :ref:`int<class_int>` accel=0 **)**           |
++----------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                             | :ref:`add_icon_check_shortcut<class_PopupMenu_add_icon_check_shortcut>` **(** :ref:`Texture<class_texture>` texture, :ref:`ShortCut<class_shortcut>` shortcut, :ref:`int<class_int>` id=-1, :ref:`bool<class_bool>` global=false **)** |
 +----------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                             | :ref:`add_icon_item<class_PopupMenu_add_icon_item>` **(** :ref:`Texture<class_texture>` texture, :ref:`String<class_string>` label, :ref:`int<class_int>` id=-1, :ref:`int<class_int>` accel=0 **)**                                   |
@@ -64,6 +70,8 @@ Member Functions
 +----------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`bool<class_bool>`          | :ref:`is_item_checkable<class_PopupMenu_is_item_checkable>` **(** :ref:`int<class_int>` idx **)** const                                                                                                                                |
 +----------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`          | :ref:`is_item_radio_checkable<class_PopupMenu_is_item_radio_checkable>` **(** :ref:`int<class_int>` idx **)** const                                                                                                                    |
++----------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`bool<class_bool>`          | :ref:`is_item_checked<class_PopupMenu_is_item_checked>` **(** :ref:`int<class_int>` idx **)** const                                                                                                                                    |
 +----------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`bool<class_bool>`          | :ref:`is_item_disabled<class_PopupMenu_is_item_disabled>` **(** :ref:`int<class_int>` idx **)** const                                                                                                                                  |
@@ -76,6 +84,8 @@ Member Functions
 +----------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                             | :ref:`set_item_as_checkable<class_PopupMenu_set_item_as_checkable>` **(** :ref:`int<class_int>` idx, :ref:`bool<class_bool>` enable **)**                                                                                              |
 +----------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                             | :ref:`set_item_as_radio_checkable<class_PopupMenu_set_item_as_radio_checkable>` **(** :ref:`int<class_int>` idx, :ref:`bool<class_bool>` enable **)**                                                                                  |
++----------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                             | :ref:`set_item_as_separator<class_PopupMenu_set_item_as_separator>` **(** :ref:`int<class_int>` idx, :ref:`bool<class_bool>` enable **)**                                                                                              |
 +----------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                             | :ref:`set_item_checked<class_PopupMenu_set_item_checked>` **(** :ref:`int<class_int>` idx, :ref:`bool<class_bool>` checked **)**                                                                                                       |
@@ -149,10 +159,20 @@ Member Function Description
 
 Add a new checkable item with text "label". An id can optionally be provided, as well as an accelerator. If no id is provided, one will be created from the index. Note that checkable items just display a checkmark, but don't have any built-in checking behavior and must be checked/unchecked manually.
 
+.. _class_PopupMenu_add_radio_check_item:
+
+- void **add_radio_check_item** **(** :ref:`String<class_string>` label, :ref:`int<class_int>` id=-1, :ref:`int<class_int>` accel=0 **)**
+
+The same as :ref:`add_check_item<class_PopupMenu_add_check_item>` but the inserted item will look as a radio button. Remember this is just cosmetic and you have to add the logic for checking/unchecking items in radio groups.
+
 .. _class_PopupMenu_add_check_shortcut:
 
 - void **add_check_shortcut** **(** :ref:`ShortCut<class_shortcut>` shortcut, :ref:`int<class_int>` id=-1, :ref:`bool<class_bool>` global=false **)**
 
+.. _class_PopupMenu_add_radio_check_shortcut:
+
+- void **add_radio_check_shortcut** **(** :ref:`ShortCut<class_shortcut>` shortcut, :ref:`int<class_int>` id=-1, :ref:`bool<class_bool>` global=false **)**
+
 .. _class_PopupMenu_add_icon_check_item:
 
 - void **add_icon_check_item** **(** :ref:`Texture<class_texture>` texture, :ref:`String<class_string>` label, :ref:`int<class_int>` id=-1, :ref:`int<class_int>` accel=0 **)**
@@ -161,6 +181,12 @@ Add a new checkable item with text "label" and icon "texture". An id can optiona
 
 created from the index. Note that checkable items just display a checkmark, but don't have any built-in checking behavior and must be checked/unchecked manually.
 
+.. _class_PopupMenu_add_icon_radio_check_item:
+
+- void **add_icon_radio_check_item** **(** :ref:`Texture<class_texture>` texture, :ref:`String<class_string>` label, :ref:`int<class_int>` id=-1, :ref:`int<class_int>` accel=0 **)**
+
+The same as :ref:`add_icon_check_item<class_PopupMenu_add_icon_check_item>` but the inserted item will look as a radio button. Remember this is just cosmetic and you have to add the logic for checking/unchecking items in radio groups.
+
 .. _class_PopupMenu_add_icon_check_shortcut:
 
 - void **add_icon_check_shortcut** **(** :ref:`Texture<class_texture>` texture, :ref:`ShortCut<class_shortcut>` shortcut, :ref:`int<class_int>` id=-1, :ref:`bool<class_bool>` global=false **)**
@@ -263,13 +289,19 @@ Return the text of the item at index "idx".
 
 - :ref:`bool<class_bool>` **is_item_checkable** **(** :ref:`int<class_int>` idx **)** const
 
-Return whether the item at index "idx" has a checkbox. Note that checkable items just display a checkmark, but don't have any built-in checking behavior and must be checked/unchecked manually.
+Return whether the item at index "idx" is checkable in some way, i.e., whether has a checkbox or radio button. Note that checkable items just display a checkmark or radio button, but don't have any built-in checking behavior and must be checked/unchecked manually.
+
+.. _class_PopupMenu_is_item_radio_checkable:
+
+- :ref:`bool<class_bool>` **is_item_radio_checkable** **(** :ref:`int<class_int>` idx **)** const
+
+Return whether the item at index "idx" has radio-button-style checkability. Remember this is just cosmetic and you have to add the logic for checking/unchecking items in radio groups.
 
 .. _class_PopupMenu_is_item_checked:
 
 - :ref:`bool<class_bool>` **is_item_checked** **(** :ref:`int<class_int>` idx **)** const
 
-Return the checkstate status of the item at index "idx".
+Return whether the item at index "idx" is checked.
 
 .. _class_PopupMenu_is_item_disabled:
 
@@ -301,6 +333,14 @@ Set the accelerator of the item at index "idx". Accelerators are special combina
 
 Set whether the item at index "idx" has a checkbox. Note that checkable items just display a checkmark, but don't have any built-in checking behavior and must be checked/unchecked manually.
 
+.. _class_PopupMenu_set_item_as_radio_checkable:
+
+- void **set_item_as_radio_checkable** **(** :ref:`int<class_int>` idx, :ref:`bool<class_bool>` enable **)**
+
+The same as :ref:`set_item_as_checkable<class_PopupMenu_set_item_as_checkable>` but placing a radio button in case of enabling. If used for disabling, it's the same.
+
+Remember this is just cosmetic and you have to add the logic for checking/unchecking items in radio groups.
+
 .. _class_PopupMenu_set_item_as_separator:
 
 - void **set_item_as_separator** **(** :ref:`int<class_int>` idx, :ref:`bool<class_bool>` enable **)**

+ 1 - 1
classes/class_position3d.rst

@@ -14,7 +14,7 @@ Position3D
 Brief Description
 -----------------
 
-Generic 3D Position hint for editing
+Generic 3D Position hint for editing.
 
 Description
 -----------

+ 1 - 1
classes/class_prismmesh.rst

@@ -21,7 +21,7 @@ Member Variables
 
   .. _class_PrismMesh_left_to_right:
 
-- :ref:`float<class_float>` **left_to_right** - Displacement of the upper edge along the x-axis. 0.0 positions edge straight above the bottom left edge. Defaults to 0.5 (positioned on the midpoint).
+- :ref:`float<class_float>` **left_to_right** - Displacement of of the upper edge along the x-axis. 0.0 positions edge straight above the bottome left edge. Defaults to 0.5 (positioned on the midpoint).
 
   .. _class_PrismMesh_size:
 

+ 90 - 13
classes/class_scenetree.rst

@@ -14,7 +14,7 @@ SceneTree
 Brief Description
 -----------------
 
-
+SceneTree manages a hierarchy of nodes.
 
 Member Functions
 ----------------
@@ -80,61 +80,87 @@ Signals
 
 - **connected_to_server** **(** **)**
 
+Emitted whenever this SceneTree's :ref:`network_peer<class_SceneTree_network_peer>` successfully connected to a server. Only emitted on clients.
+
 .. _class_SceneTree_connection_failed:
 
 - **connection_failed** **(** **)**
 
+Emitted whenever this SceneTree's :ref:`network_peer<class_SceneTree_network_peer>` fails to establish a connection to a server. Only emitted on clients.
+
 .. _class_SceneTree_files_dropped:
 
 - **files_dropped** **(** :ref:`PoolStringArray<class_poolstringarray>` files, :ref:`int<class_int>` screen **)**
 
+Emitted whenever files are drag-and-dropped onto the window.
+
 .. _class_SceneTree_idle_frame:
 
 - **idle_frame** **(** **)**
 
+Emitted immediately before :ref:`Node._process<class_Node__process>` is called on every node in the SceneTree.
+
 .. _class_SceneTree_network_peer_connected:
 
 - **network_peer_connected** **(** :ref:`int<class_int>` id **)**
 
+Emitted whenever this SceneTree's :ref:`network_peer<class_SceneTree_network_peer>` connects with a new peer. ID is the peer ID of the new peer. Clients get notified when other clients connect to the same server. Upon connecting to a server, a client also receives this signal for the server (with ID being 1).
+
 .. _class_SceneTree_network_peer_disconnected:
 
 - **network_peer_disconnected** **(** :ref:`int<class_int>` id **)**
 
+Emitted whenever this SceneTree's :ref:`network_peer<class_SceneTree_network_peer>` disconnects from a peer. Clients get notified when other clients disconnect from the same server.
+
 .. _class_SceneTree_node_added:
 
 - **node_added** **(** :ref:`Object<class_object>` node **)**
 
+Emitted whenever a node is added to the SceneTree.
+
 .. _class_SceneTree_node_configuration_warning_changed:
 
 - **node_configuration_warning_changed** **(** :ref:`Object<class_object>` node **)**
 
+Emitted when a node's configuration changed. Only emitted in tool mode.
+
 .. _class_SceneTree_node_removed:
 
 - **node_removed** **(** :ref:`Object<class_object>` node **)**
 
+Emitted whenever a node is removed from the SceneTree.
+
 .. _class_SceneTree_physics_frame:
 
 - **physics_frame** **(** **)**
 
+Emitted immediately before :ref:`Node._physics_process<class_Node__physics_process>` is called on every node in the SceneTree.
+
 .. _class_SceneTree_screen_resized:
 
 - **screen_resized** **(** **)**
 
+Emitted whenever the screen resolution (fullscreen) or window size (windowed) changes.
+
 .. _class_SceneTree_server_disconnected:
 
 - **server_disconnected** **(** **)**
 
+Emitted whenever this SceneTree's :ref:`network_peer<class_SceneTree_network_peer>` disconnected from server. Only emitted on clients.
+
 .. _class_SceneTree_tree_changed:
 
 - **tree_changed** **(** **)**
 
+Emitted whenever the SceneTree hierarchy changed (children being moved or renamed, etc.).
+
 
 Member Variables
 ----------------
 
   .. _class_SceneTree_current_scene:
 
-- :ref:`Node<class_node>` **current_scene**
+- :ref:`Node<class_node>` **current_scene** - The current scene.
 
   .. _class_SceneTree_debug_collisions_hint:
 
@@ -146,7 +172,7 @@ Member Variables
 
   .. _class_SceneTree_edited_scene_root:
 
-- :ref:`Node<class_node>` **edited_scene_root**
+- :ref:`Node<class_node>` **edited_scene_root** - The root of the edited scene.
 
   .. _class_SceneTree_network_peer:
 
@@ -154,19 +180,19 @@ Member Variables
 
   .. _class_SceneTree_paused:
 
-- :ref:`bool<class_bool>` **paused**
+- :ref:`bool<class_bool>` **paused** - If ``true`` the SceneTree is paused.
 
   .. _class_SceneTree_refuse_new_network_connections:
 
-- :ref:`bool<class_bool>` **refuse_new_network_connections**
+- :ref:`bool<class_bool>` **refuse_new_network_connections** - If ``true`` the SceneTree's :ref:`network_peer<class_SceneTree_network_peer>` refuses new incoming connections.
 
   .. _class_SceneTree_root:
 
-- :ref:`Viewport<class_viewport>` **root**
+- :ref:`Viewport<class_viewport>` **root** - The SceneTree's :ref:`Viewport<class_viewport>`.
 
   .. _class_SceneTree_use_font_oversampling:
 
-- :ref:`bool<class_bool>` **use_font_oversampling**
+- :ref:`bool<class_bool>` **use_font_oversampling** - If ``true`` font oversampling is used.
 
 
 Enums
@@ -176,10 +202,10 @@ Enums
 
 enum **GroupCallFlags**
 
-- **GROUP_CALL_DEFAULT** = **0**
-- **GROUP_CALL_REVERSE** = **1**
-- **GROUP_CALL_REALTIME** = **2**
-- **GROUP_CALL_UNIQUE** = **4**
+- **GROUP_CALL_DEFAULT** = **0** --- Call a group with no flags (default).
+- **GROUP_CALL_REVERSE** = **1** --- Call a group in reverse scene order.
+- **GROUP_CALL_REALTIME** = **2** --- Call a group immediately (calls are normally made on idle).
+- **GROUP_CALL_UNIQUE** = **4** --- Call a group only once even if the call is executed many times.
 
   .. _enum_SceneTree_StretchMode:
 
@@ -200,6 +226,11 @@ enum **StretchAspect**
 - **STRETCH_ASPECT_EXPAND** = **4**
 
 
+Description
+-----------
+
+As one of the most important classes, the ``SceneTree`` manages the hierarchy of nodes in a scene as well as scenes themselves. Nodes can be added, retrieved and removed. The whole scene tree (and thus the current scene) can be paused. Scenes can be loaded, switched and reloaded. You can also use the SceneTree to organize your nodes into groups: every node can be assigned as many groups as you want to create, e.g. a "enemy" group. You can then iterate these groups or even call methods and set properties on all the group's members at once.
+
 Member Function Description
 ---------------------------
 
@@ -207,22 +238,32 @@ Member Function Description
 
 - :ref:`Variant<class_variant>` **call_group** **(** :ref:`String<class_string>` group, :ref:`String<class_string>` method **)** vararg
 
+Calls ``method`` on each member of the given group.
+
 .. _class_SceneTree_call_group_flags:
 
 - :ref:`Variant<class_variant>` **call_group_flags** **(** :ref:`int<class_int>` flags, :ref:`String<class_string>` group, :ref:`String<class_string>` method **)** vararg
 
+Calls ``method`` on each member of the given group, respecting the given enum GROUP_CALL flags.
+
 .. _class_SceneTree_change_scene:
 
 - :ref:`int<class_int>` **change_scene** **(** :ref:`String<class_string>` path **)**
 
+Changes to the scene at the given ``path``.
+
 .. _class_SceneTree_change_scene_to:
 
 - :ref:`int<class_int>` **change_scene_to** **(** :ref:`PackedScene<class_packedscene>` packed_scene **)**
 
+Changes to the given :ref:`PackedScene<class_packedscene>`.
+
 .. _class_SceneTree_create_timer:
 
 - :ref:`SceneTreeTimer<class_scenetreetimer>` **create_timer** **(** :ref:`float<class_float>` time_sec, :ref:`bool<class_bool>` pause_mode_process=true **)**
 
+Returns a :ref:`SceneTreeTimer<class_scenetreetimer>` which will :ref:`SceneTreeTimer.timeout<class_SceneTreeTimer_timeout>` after the given time in seconds elapsed in this SceneTree. If ``pause_mode_process`` is set to false, pausing the SceneTree will also pause the timer.
+
 .. _class_SceneTree_get_frame:
 
 - :ref:`int<class_int>` **get_frame** **(** **)** const
@@ -231,84 +272,120 @@ Member Function Description
 
 - :ref:`PoolIntArray<class_poolintarray>` **get_network_connected_peers** **(** **)** const
 
+Returns the peer IDs of all connected peers of this SceneTree's :ref:`network_peer<class_SceneTree_network_peer>`.
+
 .. _class_SceneTree_get_network_unique_id:
 
 - :ref:`int<class_int>` **get_network_unique_id** **(** **)** const
 
+Returns the unique peer ID of this SceneTree's :ref:`network_peer<class_SceneTree_network_peer>`.
+
 .. _class_SceneTree_get_node_count:
 
 - :ref:`int<class_int>` **get_node_count** **(** **)** const
 
+Returns the number of nodes in this SceneTree.
+
 .. _class_SceneTree_get_nodes_in_group:
 
 - :ref:`Array<class_array>` **get_nodes_in_group** **(** :ref:`String<class_string>` group **)**
 
+Returns all nodes assigned to the given group.
+
 .. _class_SceneTree_get_rpc_sender_id:
 
 - :ref:`int<class_int>` **get_rpc_sender_id** **(** **)** const
 
+Returns the sender's peer ID for the most recently received RPC call.
+
 .. _class_SceneTree_has_group:
 
 - :ref:`bool<class_bool>` **has_group** **(** :ref:`String<class_string>` name **)** const
 
+Returns ``true`` if the given group exists.
+
 .. _class_SceneTree_has_network_peer:
 
 - :ref:`bool<class_bool>` **has_network_peer** **(** **)** const
 
-Returns true if there is a :ref:`NetworkedMultiplayerPeer<class_networkedmultiplayerpeer>` set (with :ref:`SceneTree.set_network_peer<class_SceneTree_set_network_peer>`).
+Returns ``true`` if there is a :ref:`network_peer<class_SceneTree_network_peer>` set.
 
 .. _class_SceneTree_is_input_handled:
 
 - :ref:`bool<class_bool>` **is_input_handled** **(** **)**
 
+Returns ``true`` if the most recent InputEvent was marked as handled with :ref:`set_input_as_handled<class_SceneTree_set_input_as_handled>`.
+
 .. _class_SceneTree_is_network_server:
 
 - :ref:`bool<class_bool>` **is_network_server** **(** **)** const
 
-Returns true if this SceneTree's :ref:`NetworkedMultiplayerPeer<class_networkedmultiplayerpeer>` is in server mode (listening for connections).
+Returns ``true`` if this SceneTree's :ref:`network_peer<class_SceneTree_network_peer>` is in server mode (listening for connections).
 
 .. _class_SceneTree_notify_group:
 
 - void **notify_group** **(** :ref:`String<class_string>` group, :ref:`int<class_int>` notification **)**
 
+Sends the given notification to all members of the ``group``.
+
 .. _class_SceneTree_notify_group_flags:
 
 - void **notify_group_flags** **(** :ref:`int<class_int>` call_flags, :ref:`String<class_string>` group, :ref:`int<class_int>` notification **)**
 
+Sends the given notification to all members of the ``group``, respecting the given enum GROUP_CALL flags.
+
 .. _class_SceneTree_queue_delete:
 
 - void **queue_delete** **(** :ref:`Object<class_object>` obj **)**
 
+Queues the given object for deletion, delaying the call to :ref:`Object.free<class_Object_free>` to after the current frame.
+
 .. _class_SceneTree_quit:
 
 - void **quit** **(** **)**
 
+Quits the application.
+
 .. _class_SceneTree_reload_current_scene:
 
 - :ref:`int<class_int>` **reload_current_scene** **(** **)**
 
+Reloads the currently active scene.
+
 .. _class_SceneTree_set_auto_accept_quit:
 
 - void **set_auto_accept_quit** **(** :ref:`bool<class_bool>` enabled **)**
 
+If ``true`` the application automatically accepts quitting.
+
 .. _class_SceneTree_set_group:
 
 - void **set_group** **(** :ref:`String<class_string>` group, :ref:`String<class_string>` property, :ref:`Variant<class_variant>` value **)**
 
+Sets the given ``property`` to ``value`` on all members of the given group.
+
 .. _class_SceneTree_set_group_flags:
 
 - void **set_group_flags** **(** :ref:`int<class_int>` call_flags, :ref:`String<class_string>` group, :ref:`String<class_string>` property, :ref:`Variant<class_variant>` value **)**
 
+Sets the given ``property`` to ``value`` on all members of the given group, respecting the given enum GROUP_CALL flags.
+
 .. _class_SceneTree_set_input_as_handled:
 
 - void **set_input_as_handled** **(** **)**
 
+Marks the most recent input event as handled.
+
 .. _class_SceneTree_set_quit_on_go_back:
 
 - void **set_quit_on_go_back** **(** :ref:`bool<class_bool>` enabled **)**
 
+If ``true`` the application quits automatically on going back (e.g. on Android).
+
 .. _class_SceneTree_set_screen_stretch:
 
 - void **set_screen_stretch** **(** :ref:`int<class_int>` mode, :ref:`int<class_int>` aspect, :ref:`Vector2<class_vector2>` minsize, :ref:`float<class_float>` shrink=1 **)**
 
+Configures screen stretching to the given enum StretchMode, enum StretchAspect, minimum size and ``shrink``.
+
 

+ 2 - 0
classes/class_script.rst

@@ -67,6 +67,8 @@ Returns true if the script can be instanced.
 
 - :ref:`Script<class_script>` **get_base_script** **(** **)** const
 
+Returns the script directly inherited by this script.
+
 .. _class_Script_get_instance_base_type:
 
 - :ref:`String<class_string>` **get_instance_base_type** **(** **)** const

+ 2 - 0
classes/class_scrollbar.rst

@@ -25,6 +25,8 @@ Signals
 
 - **scrolling** **(** **)**
 
+Emitted whenever the scrollbar is being scrolled.
+
 
 Member Variables
 ----------------

+ 16 - 0
classes/class_scrollcontainer.rst

@@ -16,6 +16,22 @@ Brief Description
 
 A helper node for displaying scrollable elements (e.g. lists).
 
+Signals
+-------
+
+.. _class_ScrollContainer_scroll_ended:
+
+- **scroll_ended** **(** **)**
+
+Emitted whenever scrolling stops.
+
+.. _class_ScrollContainer_scroll_started:
+
+- **scroll_started** **(** **)**
+
+Emitted whenever scrolling is started.
+
+
 Member Variables
 ----------------
 

+ 6 - 2
classes/class_spatial.rst

@@ -217,13 +217,17 @@ Returns whether the node is visible, taking into consideration that its parents
 
 - void **look_at** **(** :ref:`Vector3<class_vector3>` target, :ref:`Vector3<class_vector3>` up **)**
 
-Rotates itself to point into direction of target position. Operations take place in global space.
+Rotates itself so that the local -Z axis points towards the ``target`` position.
+
+The transform will first be rotated around the given ``up`` vector, and then fully aligned to the target by a further rotation around an axis perpendicular to both the ``target`` and ``up`` vectors.
+
+Operations take place in global space.
 
 .. _class_Spatial_look_at_from_position:
 
 - void **look_at_from_position** **(** :ref:`Vector3<class_vector3>` position, :ref:`Vector3<class_vector3>` target, :ref:`Vector3<class_vector3>` up **)**
 
-Moves the node to specified position and then rotates itself to point into direction of target position. Operations take place in global space.
+Moves the node to the specified ``position``, and then rotates itself to point toward the ``target`` as per :ref:`look_at<class_Spatial_look_at>`. Operations take place in global space.
 
 .. _class_Spatial_orthonormalize:
 

+ 1 - 1
classes/class_splitcontainer.rst

@@ -37,7 +37,7 @@ Member Variables
 
   .. _class_SplitContainer_dragger_visibility:
 
-- :ref:`DraggerVisibility<enum_splitcontainer_draggervisibility>` **dragger_visibility**
+- :ref:`DraggerVisibility<enum_splitcontainer_draggervisibility>` **dragger_visibility** - Determines whether the dragger is visible.
 
   .. _class_SplitContainer_split_offset:
 

+ 1 - 1
classes/class_spriteframes.rst

@@ -71,7 +71,7 @@ Member Function Description
 
 - void **add_animation** **(** :ref:`String<class_string>` anim **)**
 
-Adds a new animation to the library.
+Adds a new animation to the the library.
 
 .. _class_SpriteFrames_add_frame:
 

+ 3 - 1
classes/class_tilemap.rst

@@ -155,7 +155,7 @@ enum **TileOrigin**
 
 - **TILE_ORIGIN_TOP_LEFT** = **0** --- Tile origin at its top-left corner.
 - **TILE_ORIGIN_CENTER** = **1** --- Tile origin at its center.
-- **TILE_ORIGIN_BOTTOM_LEFT** = **2**
+- **TILE_ORIGIN_BOTTOM_LEFT** = **2** --- Tile origin at its bottom-left corner.
 
   .. _enum_TileMap_Mode:
 
@@ -264,6 +264,8 @@ Optionally, the tile can also be flipped over the X and Y axes or transposed.
 
 - void **set_collision_layer_bit** **(** :ref:`int<class_int>` bit, :ref:`bool<class_bool>` value **)**
 
+Set any collision layer to be ``true`` or ``false``.
+
 .. _class_TileMap_set_collision_mask_bit:
 
 - void **set_collision_mask_bit** **(** :ref:`int<class_int>` bit, :ref:`bool<class_bool>` value **)**

+ 5 - 1
classes/class_transform.rst

@@ -121,7 +121,11 @@ Returns the inverse of the transform, under the assumption that the transformati
 
 - :ref:`Transform<class_transform>` **looking_at** **(** :ref:`Vector3<class_vector3>` target, :ref:`Vector3<class_vector3>` up **)**
 
-Rotate the transform around the up vector to face the target.
+Returns a copy of the transform rotated such that its -Z axis points towards the ``target`` position.
+
+The transform will first be rotated around the given ``up`` vector, and then fully aligned to the target by a further rotation around an axis perpendicular to both the ``target`` and ``up`` vectors.
+
+Operations take place in global space.
 
 .. _class_Transform_orthonormalized:
 

+ 57 - 55
classes/class_tween.rst

@@ -14,7 +14,7 @@ Tween
 Brief Description
 -----------------
 
-Node useful for animations with unknown start and end points.
+Smoothly animates a node's properties over time.
 
 Member Functions
 ----------------
@@ -72,19 +72,19 @@ Signals
 
 - **tween_completed** **(** :ref:`Object<class_object>` object, :ref:`NodePath<class_nodepath>` key **)**
 
-This signal is emitted when a tween ends.
+Emitted when a tween ends.
 
 .. _class_Tween_tween_started:
 
 - **tween_started** **(** :ref:`Object<class_object>` object, :ref:`NodePath<class_nodepath>` key **)**
 
-This signal is emitted when a tween starts.
+Emitted when a tween starts.
 
 .. _class_Tween_tween_step:
 
 - **tween_step** **(** :ref:`Object<class_object>` object, :ref:`NodePath<class_nodepath>` key, :ref:`float<class_float>` elapsed, :ref:`Object<class_object>` value **)**
 
-This signal is emitted each step of the tweening.
+Emitted at each step of the animation.
 
 
 Member Variables
@@ -92,15 +92,15 @@ Member Variables
 
   .. _class_Tween_playback_process_mode:
 
-- :ref:`TweenProcessMode<enum_tween_tweenprocessmode>` **playback_process_mode**
+- :ref:`TweenProcessMode<enum_tween_tweenprocessmode>` **playback_process_mode** - The tween's animation process thread. See enum TweenProcessMode. Default value: enum TWEEN_PROCESS_IDLE.
 
   .. _class_Tween_playback_speed:
 
-- :ref:`float<class_float>` **playback_speed** - The speed multiplier of the tween. Set it to 1 for normal speed, 2 for two times nromal speed, and 0.5 for half of the normal speed. Setting it to 0 would pause the animation, but you might consider using :ref:`set_active<class_Tween_set_active>` or :ref:`stop_all<class_Tween_stop_all>` and :ref:`resume_all<class_Tween_resume_all>` for this.
+- :ref:`float<class_float>` **playback_speed** - The tween's speed multiplier. For example, set it to ``1.0`` for normal speed, ``2.0`` for two times normal speed, or ``0.5`` for half of the normal speed. A value of ``0`` pauses the animation, but see also :ref:`set_active<class_Tween_set_active>` or :ref:`stop_all<class_Tween_stop_all>` for this.
 
   .. _class_Tween_repeat:
 
-- :ref:`bool<class_bool>` **repeat** - If ``true``, the tween will repeat.
+- :ref:`bool<class_bool>` **repeat** - If ``true`` the tween loops.
 
 
 Enums
@@ -110,51 +110,53 @@ Enums
 
 enum **TweenProcessMode**
 
-- **TWEEN_PROCESS_PHYSICS** = **0** --- The ``Tween`` should use ``_physics_process`` for timekeeping when this is enabled.
-- **TWEEN_PROCESS_IDLE** = **1** --- The ``Tween`` should use ``_process`` for timekeeping when this is enabled (default).
+- **TWEEN_PROCESS_PHYSICS** = **0** --- The tween updates with the ``_physics_process`` callback.
+- **TWEEN_PROCESS_IDLE** = **1** --- The tween updates with the ``_process`` callback.
 
   .. _enum_Tween_EaseType:
 
 enum **EaseType**
 
-- **EASE_IN** = **0** --- Signifies that the interpolation should be focused in the beginning.
-- **EASE_OUT** = **1** --- Signifies that the interpolation should be focused in the end.
-- **EASE_IN_OUT** = **2** --- Signifies that the interpolation should be focused in both ends.
-- **EASE_OUT_IN** = **3** --- Signifies that the interpolation should be focused in both ends, but they should be switched (a bit hard to explain, try it for yourself to be sure).
+- **EASE_IN** = **0** --- The interpolation starts slowly and speeds up towards the end.
+- **EASE_OUT** = **1** --- The interpolation starts quickly and slows down towards the end.
+- **EASE_IN_OUT** = **2** --- A combination of EASE_IN and EASE_OUT. The interpolation is slowest at both ends.
+- **EASE_OUT_IN** = **3** --- A combination of EASE_IN and EASE_OUT. The interpolation is fastest at both ends.
 
   .. _enum_Tween_TransitionType:
 
 enum **TransitionType**
 
-- **TRANS_LINEAR** = **0** --- Means that the animation is interpolated linearly.
-- **TRANS_SINE** = **1** --- Means that the animation is interpolated using a sine wave.
-- **TRANS_QUINT** = **2** --- Means that the animation is interpolated with a quinary (to the power of 5) function.
-- **TRANS_QUART** = **3** --- Means that the animation is interpolated with a quartic (to the power of 4) function.
-- **TRANS_QUAD** = **4** --- Means that the animation is interpolated with a quadratic (to the power of 2) function.
-- **TRANS_EXPO** = **5** --- Means that the animation is interpolated with an exponential (some number to the power of x) function.
-- **TRANS_ELASTIC** = **6** --- Means that the animation is interpolated with elasticity, wiggling around the edges.
-- **TRANS_CUBIC** = **7** --- Means that the animation is interpolated with a cubic (to the power of 3) function.
-- **TRANS_CIRC** = **8** --- Means that the animation is interpolated with a function using square roots.
-- **TRANS_BOUNCE** = **9** --- Means that the animation is interpolated by bouncing at, but never surpassing, the end.
-- **TRANS_BACK** = **10** --- Means that the animation is interpolated backing out at edges.
+- **TRANS_LINEAR** = **0** --- The animation is interpolated linearly.
+- **TRANS_SINE** = **1** --- The animation is interpolated using a sine function.
+- **TRANS_QUINT** = **2** --- The animation is interpolated with a quintic (to the power of 5) function.
+- **TRANS_QUART** = **3** --- The animation is interpolated with a quartic (to the power of 4) function.
+- **TRANS_QUAD** = **4** --- The animation is interpolated with a quadratic (to the power of 2) function.
+- **TRANS_EXPO** = **5** --- The animation is interpolated with an exponential (to the power of x) function.
+- **TRANS_ELASTIC** = **6** --- The animation is interpolated with elasticity, wiggling around the edges.
+- **TRANS_CUBIC** = **7** --- The animation is interpolated with a cubic (to the power of 3) function.
+- **TRANS_CIRC** = **8** --- The animation is interpolated with a function using square roots.
+- **TRANS_BOUNCE** = **9** --- The animation is interpolated by bouncing at the end.
+- **TRANS_BACK** = **10** --- The animation is interpolated backing out at ends.
 
 
 Description
 -----------
 
-Node useful for animations with unknown start and end points, procedural animations, making one node follow another, and other simple behavior.
+Tweens are useful for animations requiring a numerical property to be interpolated over a range of values. The name \*tween\* comes from \*in-betweening\*, an animation technique where you specify \*keyframes\* and the computer interpolates the frames that appear between them.
 
-Because it is easy to get it wrong, here is a quick usage example:
+Here is a brief usage example that causes a 2D node to move smoothly between two positions:
 
 ::
 
     var tween = get_node("Tween")
-    tween.interpolate_property(get_node("Node2D_to_move"), "transform/origin", Vector2(0,0), Vector2(100,100), 1, Tween.TRANS_LINEAR, Tween.EASE_IN_OUT)
+    tween.interpolate_property($Node2D, "position",
+                    Vector2(0, 0), Vector2(100, 100), 1,
+                    Tween.TRANS_LINEAR, Tween.EASE_IN_OUT)
     tween.start()
 
-Some of the methods of this class require a property name. You can get the property name by hovering over the property in the inspector of the editor.
+Many methods require a property name, such as "position" above. You can find the correct property name by hovering over the property in the Inspector.
 
-Many of the methods accept ``trans_type`` and ``ease_type``. The first accepts an TRANS\_\* constant, and refers to the way the timing of the animation is handled (you might want to see ``http://easings.net/`` for some examples). The second accepts an EASE\_\* constant, and controls the where ``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 TRANS\_\* constants with EASE_IN_OUT, and use the one that looks best.
+Many of the methods accept ``trans_type`` and ``ease_type``. The first accepts an enum TransitionType constant, and refers to the way the timing of the animation is handled (see ``http://easings.net/`` for some examples). The second accepts an enum EaseType constant, and controls the where ``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 enum TransitionType constants with enum EASE_IN_OUT, and use the one that looks best.
 
 Member Function Description
 ---------------------------
@@ -163,75 +165,75 @@ Member Function Description
 
 - :ref:`bool<class_bool>` **follow_method** **(** :ref:`Object<class_object>` object, :ref:`String<class_string>` method, :ref:`Variant<class_variant>` initial_val, :ref:`Object<class_object>` target, :ref:`String<class_string>` target_method, :ref:`float<class_float>` duration, :ref:`int<class_int>` trans_type, :ref:`int<class_int>` ease_type, :ref:`float<class_float>` delay=0 **)**
 
-Follow ``method`` of ``object`` and apply the returned value on ``target_method`` of ``target``, beginning from ``initial_val`` for ``duration`` seconds, ``delay`` later. Methods are animated by calling them with consequitive values.
+Follows ``method`` of ``object`` and applies the returned value on ``target_method`` of ``target``, beginning from ``initial_val`` for ``duration`` seconds, ``delay`` later. Methods are called with consecutive values.
 
-``trans_type`` accepts TRANS\_\* constants, and is the way the animation is interpolated, while ``ease_type`` accepts EASE\_\* constants, and controls the place of the interpolation (the beginning, the end, or both). You can read more about them in the class description.
+                Use enum TransitionType for ``trans_type`` and enum EaseType for ``ease_type`` parameters. These values control the timing and direction of the interpolation. See the class description for more information
 
 .. _class_Tween_follow_property:
 
 - :ref:`bool<class_bool>` **follow_property** **(** :ref:`Object<class_object>` object, :ref:`NodePath<class_nodepath>` property, :ref:`Variant<class_variant>` initial_val, :ref:`Object<class_object>` target, :ref:`NodePath<class_nodepath>` target_property, :ref:`float<class_float>` duration, :ref:`int<class_int>` trans_type, :ref:`int<class_int>` ease_type, :ref:`float<class_float>` delay=0 **)**
 
-Follow ``property`` of ``object`` and apply it on ``target_property`` of ``target``, beginning from ``initial_val`` for ``duration`` seconds, ``delay`` seconds later. Note that ``target:target_property`` would equal ``object:property`` at the end of the tween.
+Follows ``property`` of ``object`` and applies it on ``target_property`` of ``target``, beginning from ``initial_val`` for ``duration`` seconds, ``delay`` seconds later.
 
-``trans_type`` accepts TRANS\_\* constants, and is the way the animation is interpolated, while ``ease_type`` accepts EASE\_\* constants, and controls the place of the interpolation (the beginning, the end, or both). You can read more about them in the class description.
+                Use enum TransitionType for ``trans_type`` and enum EaseType for ``ease_type`` parameters. These values control the timing and direction of the interpolation. See the class description for more information
 
 .. _class_Tween_get_runtime:
 
 - :ref:`float<class_float>` **get_runtime** **(** **)** const
 
-Returns the time needed for all tweens to end in seconds, measured from the start. Thus, if you have two tweens, one ending 10 seconds after the start and the other - 20 seconds, it would return 20 seconds, as by that time all tweens would have finished.
+Returns the total time needed for all tweens to end. If you have two tweens, one lasting 10 seconds and the other 20 seconds, it would return 20 seconds, as by that time all tweens would have finished.
 
 .. _class_Tween_interpolate_callback:
 
 - :ref:`bool<class_bool>` **interpolate_callback** **(** :ref:`Object<class_object>` object, :ref:`float<class_float>` duration, :ref:`String<class_string>` callback, :ref:`Variant<class_variant>` arg1=null, :ref:`Variant<class_variant>` arg2=null, :ref:`Variant<class_variant>` arg3=null, :ref:`Variant<class_variant>` arg4=null, :ref:`Variant<class_variant>` arg5=null **)**
 
-Call ``callback`` of ``object`` after ``duration``. ``arg1``-``arg5`` are arguments to be passed to the callback.
+Calls ``callback`` of ``object`` after ``duration``. ``arg1``-``arg5`` are arguments to be passed to the callback.
 
 .. _class_Tween_interpolate_deferred_callback:
 
 - :ref:`bool<class_bool>` **interpolate_deferred_callback** **(** :ref:`Object<class_object>` object, :ref:`float<class_float>` duration, :ref:`String<class_string>` callback, :ref:`Variant<class_variant>` arg1=null, :ref:`Variant<class_variant>` arg2=null, :ref:`Variant<class_variant>` arg3=null, :ref:`Variant<class_variant>` arg4=null, :ref:`Variant<class_variant>` arg5=null **)**
 
-Call ``callback`` of ``object`` after ``duration`` on the main thread (similar to :ref:`Object.call_deferred<class_Object_call_deferred>`). ``arg1``-``arg5`` are arguments to be passed to the callback.
+Calls ``callback`` of ``object`` after ``duration`` on the main thread (similar to :ref:`Object.call_deferred<class_Object_call_deferred>`). ``arg1``-``arg5`` are arguments to be passed to the callback.
 
 .. _class_Tween_interpolate_method:
 
 - :ref:`bool<class_bool>` **interpolate_method** **(** :ref:`Object<class_object>` object, :ref:`String<class_string>` method, :ref:`Variant<class_variant>` initial_val, :ref:`Variant<class_variant>` final_val, :ref:`float<class_float>` duration, :ref:`int<class_int>` trans_type, :ref:`int<class_int>` ease_type, :ref:`float<class_float>` delay=0 **)**
 
-Animate ``method`` of ``object`` from ``initial_val`` to ``final_val`` for ``duration`` seconds, ``delay`` seconds later. Methods are animated by calling them with consecutive values.
+Animates ``method`` of ``object`` from ``initial_val`` to ``final_val`` for ``duration`` seconds, ``delay`` seconds later. Methods are called with consecutive values.
 
-``trans_type`` accepts TRANS\_\* constants, and is the way the animation is interpolated, while ``ease_type`` accepts EASE\_\* constants, and controls the place of the interpolation (the beginning, the end, or both). You can read more about them in the class description.
+                Use enum TransitionType for ``trans_type`` and enum EaseType for ``ease_type`` parameters. These values control the timing and direction of the interpolation. See the class description for more information
 
 .. _class_Tween_interpolate_property:
 
 - :ref:`bool<class_bool>` **interpolate_property** **(** :ref:`Object<class_object>` object, :ref:`NodePath<class_nodepath>` property, :ref:`Variant<class_variant>` initial_val, :ref:`Variant<class_variant>` final_val, :ref:`float<class_float>` duration, :ref:`int<class_int>` trans_type, :ref:`int<class_int>` ease_type, :ref:`float<class_float>` delay=0 **)**
 
-Animate ``property`` of ``object`` from ``initial_val`` to ``final_val`` for ``duration`` seconds, ``delay`` seconds later.
+Animates ``property`` of ``object`` from ``initial_val`` to ``final_val`` for ``duration`` seconds, ``delay`` seconds later.
 
-``trans_type`` accepts TRANS\_\* constants, and is the way the animation is interpolated, while ``ease_type`` accepts EASE\_\* constants, and controls the place of the interpolation (the beginning, the end, or both). You can read more about them in the class description.
+                Use enum TransitionType for ``trans_type`` and enum EaseType for ``ease_type`` parameters. These values control the timing and direction of the interpolation. See the class description for more information
 
 .. _class_Tween_is_active:
 
 - :ref:`bool<class_bool>` **is_active** **(** **)** const
 
-Returns true if any tweens are currently running, and false otherwise. Note that this method doesn't consider tweens that have ended.
+Returns ``true`` if any tweens are currently running. Note that this method doesn't consider tweens that have ended.
 
 .. _class_Tween_remove:
 
 - :ref:`bool<class_bool>` **remove** **(** :ref:`Object<class_object>` object, :ref:`String<class_string>` key="" **)**
 
-Stop animating and completely remove a tween, given its object and property/method pair. Passing empty String as key will remove all tweens for given object.
+Stops animation and removes a tween, given its object and property/method pair. By default, all tweens are removed, unless ``key`` is specified.
 
 .. _class_Tween_remove_all:
 
 - :ref:`bool<class_bool>` **remove_all** **(** **)**
 
-Stop animating and completely remove all tweens.
+Stops animation and removes all tweens.
 
 .. _class_Tween_reset:
 
 - :ref:`bool<class_bool>` **reset** **(** :ref:`Object<class_object>` object, :ref:`String<class_string>` key="" **)**
 
-Resets a tween to the initial value (the one given, not the one before the tween), given its object and property/method pair. Passing empty String as key will reset all tweens for given object.
+Resets a tween to its initial value (the one given, not the one before the tween), given its object and property/method pair. By default, all tweens are removed, unless ``key`` is specified.
 
 .. _class_Tween_reset_all:
 
@@ -243,59 +245,59 @@ Resets all tweens to their initial values (the ones given, not those before the
 
 - :ref:`bool<class_bool>` **resume** **(** :ref:`Object<class_object>` object, :ref:`String<class_string>` key="" **)**
 
-Continue animating a stopped tween, given its object and property/method pair. Passing empty String as key will resume all tweens for given object.
+Continues animating a stopped tween, given its object and property/method pair. By default, all tweens are resumed, unless ``key`` is specified.
 
 .. _class_Tween_resume_all:
 
 - :ref:`bool<class_bool>` **resume_all** **(** **)**
 
-Continue animating all stopped tweens.
+Continues animating all stopped tweens.
 
 .. _class_Tween_seek:
 
 - :ref:`bool<class_bool>` **seek** **(** :ref:`float<class_float>` time **)**
 
-Seek the animation to the given ``time`` in seconds.
+Sets the interpolation to the given ``time`` in seconds.
 
 .. _class_Tween_set_active:
 
 - void **set_active** **(** :ref:`bool<class_bool>` active **)**
 
-Activate/deactivate the tween. You can use this for pausing animations, though :ref:`stop_all<class_Tween_stop_all>` and :ref:`resume_all<class_Tween_resume_all>` might be more fit for this.
+Activates/deactivates the tween. See also :ref:`stop_all<class_Tween_stop_all>` and :ref:`resume_all<class_Tween_resume_all>`.
 
 .. _class_Tween_start:
 
 - :ref:`bool<class_bool>` **start** **(** **)**
 
-Start the tween node. You can define tweens both before and after this.
+Starts the tween. You can define animations both before and after this.
 
 .. _class_Tween_stop:
 
 - :ref:`bool<class_bool>` **stop** **(** :ref:`Object<class_object>` object, :ref:`String<class_string>` key="" **)**
 
-Stop animating a tween, given its object and property/method pair. Passing empty String as key will stop all tweens for given object.
+Stops a tween, given its object and property/method pair. By default, all tweens are stopped, unless ``key`` is specified.
 
 .. _class_Tween_stop_all:
 
 - :ref:`bool<class_bool>` **stop_all** **(** **)**
 
-Stop animating all tweens.
+Stops animating all tweens.
 
 .. _class_Tween_targeting_method:
 
 - :ref:`bool<class_bool>` **targeting_method** **(** :ref:`Object<class_object>` object, :ref:`String<class_string>` method, :ref:`Object<class_object>` initial, :ref:`String<class_string>` initial_method, :ref:`Variant<class_variant>` final_val, :ref:`float<class_float>` duration, :ref:`int<class_int>` trans_type, :ref:`int<class_int>` ease_type, :ref:`float<class_float>` delay=0 **)**
 
-Animate ``method`` of ``object`` from the value returned by ``initial.initial_method`` to ``final_val`` for ``duration`` seconds, ``delay`` seconds later. Methods are animated by calling them with consecutive values.
+Animates ``method`` of ``object`` from the value returned by ``initial_method`` to ``final_val`` for ``duration`` seconds, ``delay`` seconds later. Methods are animated by calling them with consecutive values.
 
-``trans_type`` accepts TRANS\_\* constants, and is the way the animation is interpolated, while ``ease_type`` accepts EASE\_\* constants, and controls the place of the interpolation (the beginning, the end, or both). You can read more about them in the class description.
+                Use enum TransitionType for ``trans_type`` and enum EaseType for ``ease_type`` parameters. These values control the timing and direction of the interpolation. See the class description for more information
 
 .. _class_Tween_targeting_property:
 
 - :ref:`bool<class_bool>` **targeting_property** **(** :ref:`Object<class_object>` object, :ref:`NodePath<class_nodepath>` property, :ref:`Object<class_object>` initial, :ref:`NodePath<class_nodepath>` initial_val, :ref:`Variant<class_variant>` final_val, :ref:`float<class_float>` duration, :ref:`int<class_int>` trans_type, :ref:`int<class_int>` ease_type, :ref:`float<class_float>` delay=0 **)**
 
-Animate ``property`` of ``object`` from the current value of the ``initial_val`` property of ``initial`` to ``final_val`` for ``duration`` seconds, ``delay`` seconds later.
+Animates ``property`` of ``object`` from the current value of the ``initial_val`` property of ``initial`` to ``final_val`` for ``duration`` seconds, ``delay`` seconds later.
 
-``trans_type`` accepts TRANS\_\* constants, and is the way the animation is interpolated, while ``ease_type`` accepts EASE\_\* constants, and controls the place of the interpolation (the beginning, the end, or both). You can read more about them in the class description.
+                Use enum TransitionType for ``trans_type`` and enum EaseType for ``ease_type`` parameters. These values control the timing and direction of the interpolation. See the class description for more information
 
 .. _class_Tween_tell:
 

+ 6 - 6
classes/class_vehiclewheel.rst

@@ -34,19 +34,19 @@ Member Variables
 
   .. _class_VehicleWheel_damping_relaxation:
 
-- :ref:`float<class_float>` **damping_relaxation** - The damping applied to the spring when relaxing. This value should be between 0.0 (no damping) and 1.0. This value should always be slighly higher then the :ref:`damping_compression<class_VehicleWheel_damping_compression>` property. For a :ref:`damping_compression<class_VehicleWheel_damping_compression>` value of 0.3, try a relaxation value of 0.5
+- :ref:`float<class_float>` **damping_relaxation** - The damping applied to the spring when relaxing. This value should be between 0.0 (no damping) and 1.0. This value should always be slightly higher than the :ref:`damping_compression<class_VehicleWheel_damping_compression>` property. For a :ref:`damping_compression<class_VehicleWheel_damping_compression>` value of 0.3, try a relaxation value of 0.5
 
   .. _class_VehicleWheel_suspension_max_force:
 
-- :ref:`float<class_float>` **suspension_max_force** - The maximum force the spring can resist. This value should be higher then a quarter of the :ref:`RigidBody.mass<class_RigidBody_mass>` of the :ref:`VehicleBody<class_vehiclebody>` or the spring will not carry the weight of the vehicle. Good results are often obtained by a value that is about 3x to 4x this number.
+- :ref:`float<class_float>` **suspension_max_force** - The maximum force the spring can resist. This value should be higher than a quarter of the :ref:`RigidBody.mass<class_RigidBody_mass>` of the :ref:`VehicleBody<class_vehiclebody>` or the spring will not carry the weight of the vehicle. Good results are often obtained by a value that is about 3x to 4x this number.
 
   .. _class_VehicleWheel_suspension_stiffness:
 
-- :ref:`float<class_float>` **suspension_stiffness** - This value defines the stiffness of the suspension. Use a value lower then 50 for an offroad car, a value between 50 and 100 for a race car and try something around 200 for something like a Formula 1 car.
+- :ref:`float<class_float>` **suspension_stiffness** - This value defines the stiffness of the suspension. Use a value lower than 50 for an off-road car, a value between 50 and 100 for a race car and try something around 200 for something like a Formula 1 car.
 
   .. _class_VehicleWheel_suspension_travel:
 
-- :ref:`float<class_float>` **suspension_travel** - This is the distance the suspension can travel. As Godots measures are in meters keep this setting relatively low. Try a value between 0.1 and 0.3 depending on the type of car .
+- :ref:`float<class_float>` **suspension_travel** - This is the distance the suspension can travel. As Godot measures are in meters keep this setting relatively low. Try a value between 0.1 and 0.3 depending on the type of car .
 
   .. _class_VehicleWheel_use_as_steering:
 
@@ -58,7 +58,7 @@ Member Variables
 
   .. _class_VehicleWheel_wheel_friction_slip:
 
-- :ref:`float<class_float>` **wheel_friction_slip** - This determines how much grip this wheel has. It is combined with the friction setting of the surface the wheel is in contact with. 0.0 means no grip, 1.0 is normal grip. For a drift car setup, try setting the grip of the rear wheels slightly lower then the front wheels, or use a lower value to simulate tire wear.
+- :ref:`float<class_float>` **wheel_friction_slip** - This determines how much grip this wheel has. It is combined with the friction setting of the surface the wheel is in contact with. 0.0 means no grip, 1.0 is normal grip. For a drift car setup, try setting the grip of the rear wheels slightly lower than the front wheels, or use a lower value to simulate tire wear.
 
 It's best to set this to 1.0 when starting out.
 
@@ -68,7 +68,7 @@ It's best to set this to 1.0 when starting out.
 
   .. _class_VehicleWheel_wheel_rest_length:
 
-- :ref:`float<class_float>` **wheel_rest_length** - This is the distance in meters the wheel is lowered from its origin point. Don't set this to 0.0 and move the wheel into position, instead move the origin point of your wheel (the gizmo in Godot) to the position the wheel will take when bottoming out, then use the rest lenght to move the wheel down to the position it should be in when the car is in rest.
+- :ref:`float<class_float>` **wheel_rest_length** - This is the distance in meters the wheel is lowered from its origin point. Don't set this to 0.0 and move the wheel into position, instead move the origin point of your wheel (the gizmo in Godot) to the position the wheel will take when bottoming out, then use the rest length to move the wheel down to the position it should be in when the car is in rest.
 
   .. _class_VehicleWheel_wheel_roll_influence:
 

+ 1 - 1
classes/class_visualscriptbuiltinfunc.rst

@@ -51,7 +51,7 @@ enum **BuiltinFunc**
 - **MATH_SIGN** = **17** --- Return the sign of the input, turning it into 1, -1, or 0. Useful to determine if the input is positive or negative.
 - **MATH_POW** = **18** --- Return the input raised to a given power.
 - **MATH_LOG** = **19** --- Return the natural logarithm of the input. Note that this is not the typical base-10 logarithm function calculators use.
-- **MATH_EXP** = **20** --- Return **e** raised to the power of the input. **e** sometimes called "Euler's number" is a mathematical constant whose value is approximately 2.71828.
+- **MATH_EXP** = **20** --- Return the mathematical constant **e** raised to the specified power of the input. **e** has an approximate value of 2.71828.
 - **MATH_ISNAN** = **21** --- Return whether the input is NaN (Not a Number) or not. NaN is usually produced by dividing 0 by 0, though other ways exist.
 - **MATH_ISINF** = **22** --- Return whether the input is an infinite floating-point number or not. Infinity is usually produced by dividing a number by 0, though other ways exist.
 - **MATH_EASE** = **23** --- Easing function, based on exponent. 0 is constant, 1 is linear, 0 to 1 is ease-in, 1+ is ease out. Negative values are in-out/out in.

+ 2 - 2
classes/class_visualscriptmathconstant.rst

@@ -35,7 +35,7 @@ enum **MathConstant**
 - **MATH_CONSTANT_PI** = **1** --- Pi: ``3.141593``
 - **MATH_CONSTANT_HALF_PI** = **2** --- Pi divided by two: ``1.570796``
 - **MATH_CONSTANT_TAU** = **3** --- Tau: ``6.283185``
-- **MATH_CONSTANT_E** = **4** --- Natural log: ``2.718282``
+- **MATH_CONSTANT_E** = **4** --- Mathematical constant ``e``, the natural log base: ``2.718282``
 - **MATH_CONSTANT_SQRT2** = **5** --- Square root of two: ``1.414214``
 - **MATH_CONSTANT_INF** = **6** --- Infinity: ``inf``
 - **MATH_CONSTANT_NAN** = **7** --- Not a number: ``nan``
@@ -45,7 +45,7 @@ enum **MathConstant**
 Description
 -----------
 
-Provides common math constants, such as Pi or Euler's constant, on an output Data port.
+Provides common math constants, such as Pi, on an output Data port.
 
 **Input Ports:**
 

+ 1 - 1
classes/class_visualserver.rst

@@ -1260,7 +1260,7 @@ Adds a rectangle to the :ref:`CanvasItem<class_canvasitem>`'s draw commands.
 
 Adds a :ref:`Transform2D<class_transform2d>` command to the :ref:`CanvasItem<class_canvasitem>`'s draw commands.
 
-This sets the extra_matrix uniform when executed. This affects the later command's of the canvas item.
+This sets the extra_matrix uniform when executed. This affects the later commands of the canvas item.
 
 .. _class_VisualServer_canvas_item_add_texture_rect: