Jelajahi Sumber

classref: Sync with current upstream master branch

Rémi Verschelde 7 tahun lalu
induk
melakukan
ace47f729c
100 mengubah file dengan 2068 tambahan dan 1041 penghapusan
  1. 5 0
      classes/[email protected]
  2. 2 2
      classes/class_acceptdialog.rst
  3. 11 11
      classes/class_animatedsprite.rst
  4. 11 6
      classes/class_animatedsprite3d.rst
  5. 2 2
      classes/class_animationplayer.rst
  6. 1 1
      classes/class_animationtreeplayer.rst
  7. 33 33
      classes/class_area.rst
  8. 33 36
      classes/class_area2d.rst
  9. 5 3
      classes/class_array.rst
  10. 8 0
      classes/class_arvranchor.rst
  11. 74 38
      classes/class_arvrinterface.rst
  12. 28 20
      classes/class_arvrscriptinterface.rst
  13. 44 44
      classes/class_arvrserver.rst
  14. 5 0
      classes/class_audiobuslayout.rst
  15. 5 7
      classes/class_audioeffectamplify.rst
  16. 24 7
      classes/class_audioeffectcompressor.rst
  17. 20 13
      classes/class_audioeffectdelay.rst
  18. 18 9
      classes/class_audioeffectdistortion.rst
  19. 13 0
      classes/class_audioeffecteq.rst
  20. 31 0
      classes/class_audioeffecteq10.rst
  21. 53 0
      classes/class_audioeffecteq21.rst
  22. 23 0
      classes/class_audioeffecteq6.rst
  23. 11 4
      classes/class_audioeffectlimiter.rst
  24. 7 2
      classes/class_audioeffectpanner.rst
  25. 12 5
      classes/class_audioeffectphaser.rst
  26. 8 1
      classes/class_audioeffectpitchshift.rst
  27. 15 8
      classes/class_audioeffectreverb.rst
  28. 71 3
      classes/class_audioserver.rst
  29. 5 0
      classes/class_audiostreamplayback.rst
  30. 11 9
      classes/class_audiostreamplayer.rst
  31. 10 2
      classes/class_audiostreamplayer2d.rst
  32. 8 6
      classes/class_audiostreamplayer3d.rst
  33. 6 6
      classes/class_backbuffercopy.rst
  34. 3 1
      classes/class_bitmap.rst
  35. 45 9
      classes/class_camera.rst
  36. 13 13
      classes/class_camera2d.rst
  37. 3 3
      classes/class_canvasmodulate.rst
  38. 33 8
      classes/class_collisionobject.rst
  39. 29 13
      classes/class_collisionobject2d.rst
  40. 8 8
      classes/class_collisionpolygon2d.rst
  41. 4 1
      classes/class_colorrect.rst
  42. 125 103
      classes/class_control.rst
  43. 3 3
      classes/class_convexpolygonshape.rst
  44. 3 3
      classes/class_convexpolygonshape2d.rst
  45. 33 0
      classes/class_csharpscript.rst
  46. 2 2
      classes/class_curve.rst
  47. 2 0
      classes/class_directory.rst
  48. 2 2
      classes/class_editorinterface.rst
  49. 2 2
      classes/class_editorresourcepreview.rst
  50. 53 17
      classes/class_editorsettings.rst
  51. 27 8
      classes/class_engine.rst
  52. 99 84
      classes/class_environment.rst
  53. 51 49
      classes/class_file.rst
  54. 4 2
      classes/class_funcref.rst
  55. 6 0
      classes/class_gdnativelibrary.rst
  56. 3 3
      classes/class_gradient.rst
  57. 1 1
      classes/class_gridcontainer.rst
  58. 6 0
      classes/class_gridmap.rst
  59. 4 2
      classes/class_imagetexture.rst
  60. 14 9
      classes/class_immediategeometry.rst
  61. 6 0
      classes/class_input.rst
  62. 10 1
      classes/class_json.rst
  63. 18 5
      classes/class_jsonparseresult.rst
  64. 32 2
      classes/class_kinematicbody.rst
  65. 30 4
      classes/class_kinematicbody2d.rst
  66. 13 11
      classes/class_label.rst
  67. 13 10
      classes/class_largetexture.rst
  68. 10 10
      classes/class_light2d.rst
  69. 27 21
      classes/class_line2d.rst
  70. 140 0
      classes/class_mobilevrinterface.rst
  71. 49 49
      classes/class_node.rst
  72. 118 28
      classes/class_os.rst
  73. 21 14
      classes/class_particles.rst
  74. 19 17
      classes/class_particles2d.rst
  75. 73 66
      classes/class_particlesmaterial.rst
  76. 40 27
      classes/class_performance.rst
  77. 6 0
      classes/class_physics2dserver.rst
  78. 6 0
      classes/class_physicsserver.rst
  79. 14 14
      classes/class_polygon2d.rst
  80. 15 3
      classes/class_projectsettings.rst
  81. 11 7
      classes/class_range.rst
  82. 2 8
      classes/class_raycast.rst
  83. 2 2
      classes/class_raycast2d.rst
  84. 7 2
      classes/class_rayshape.rst
  85. 5 5
      classes/class_regex.rst
  86. 13 4
      classes/class_regexmatch.rst
  87. 2 1
      classes/class_scenetree.rst
  88. 1 1
      classes/class_script.rst
  89. 5 0
      classes/class_shape.rst
  90. 17 4
      classes/class_spatialmaterial.rst
  91. 15 15
      classes/class_spatialvelocitytracker.rst
  92. 7 2
      classes/class_sphereshape.rst
  93. 17 13
      classes/class_sprite.rst
  94. 14 7
      classes/class_sprite3d.rst
  95. 21 16
      classes/class_spritebase3d.rst
  96. 32 2
      classes/class_spriteframes.rst
  97. 6 8
      classes/class_staticbody2d.rst
  98. 18 18
      classes/class_texturebutton.rst
  99. 21 19
      classes/class_textureprogress.rst
  100. 1 1
      classes/class_timer.rst

+ 5 - 0
classes/[email protected]

@@ -12,5 +12,10 @@
 Brief Description
 -----------------
 
+Built-in visual script functions.
 
+Description
+-----------
+
+A list of built-in visual script functions, see :ref:`VisualScriptBuiltinFunc<class_visualscriptbuiltinfunc>` and :ref:`VisualScript<class_visualscript>`.
 

+ 2 - 2
classes/class_acceptdialog.rst

@@ -54,8 +54,8 @@ Emitted when a custom button is pressed. See :ref:`add_button<class_AcceptDialog
 Member Variables
 ----------------
 
-- :ref:`bool<class_bool>` **dialog_hide_on_ok**
-- :ref:`String<class_string>` **dialog_text**
+- :ref:`bool<class_bool>` **dialog_hide_on_ok** - If [code]true[/code] the dialog is hidden when accepted. Default value: [code]true[/code].
+- :ref:`String<class_string>` **dialog_text** - The text displayed by this dialog.
 
 Description
 -----------

+ 11 - 11
classes/class_animatedsprite.rst

@@ -59,28 +59,28 @@ Signals
 -------
 
 -  **animation_finished**  **(** **)**
-Emitted when the animation is finished (when it plays the last frame). If the animation is looping, this signal is emitted every time the last frame is drawn, before looping.
+Emitted when the animation is finished (when it plays the last frame). If the animation is looping, this signal is emitted every time the last frame is drawn.
 
 -  **frame_changed**  **(** **)**
-Emitted when frame is changed.
+Emitted when member frame changed.
 
 
 Member Variables
 ----------------
 
-- :ref:`String<class_string>` **animation**
-- :ref:`bool<class_bool>` **centered**
-- :ref:`bool<class_bool>` **flip_h**
-- :ref:`bool<class_bool>` **flip_v**
-- :ref:`int<class_int>` **frame**
-- :ref:`SpriteFrames<class_spriteframes>` **frames**
-- :ref:`Vector2<class_vector2>` **offset**
-- :ref:`bool<class_bool>` **playing**
+- :ref:`String<class_string>` **animation** - The current animation from the [code]frames[/code] resource. If this value changes, the [code]frame[/code] counter is reset.
+- :ref:`bool<class_bool>` **centered** - If [code]true[/code] texture will be centered. Default value: [code]true[/code].
+- :ref:`bool<class_bool>` **flip_h** - If [code]true[/code] texture is flipped horizontally. Default value: [code]false[/code].
+- :ref:`bool<class_bool>` **flip_v** - If [code]true[/code] texture is flipped vertically. Default value: [code]false[/code].
+- :ref:`int<class_int>` **frame** - The displayed animation frame's index.
+- :ref:`SpriteFrames<class_spriteframes>` **frames** - The [SpriteFrames] resource containing the animation(s).
+- :ref:`Vector2<class_vector2>` **offset** - The texture's drawing offset.
+- :ref:`bool<class_bool>` **playing** - If [code]true[/code] the [member animation] is currently playing.
 
 Description
 -----------
 
-Sprite node that can use multiple textures for animation.
+Animations are created using a :ref:`SpriteFrames<class_spriteframes>` resource, which can be configured in the editor via the SpriteFrames panel.
 
 Member Function Description
 ---------------------------

+ 11 - 6
classes/class_animatedsprite3d.rst

@@ -14,7 +14,7 @@ AnimatedSprite3D
 Brief Description
 -----------------
 
-
+2D sprite node in 3D world, that can use multiple 2D textures for animation.
 
 Member Functions
 ----------------
@@ -43,16 +43,21 @@ Signals
 -------
 
 -  **frame_changed**  **(** **)**
-Emitted when frame is changed.
+Emitted when member frame changed.
 
 
 Member Variables
 ----------------
 
-- :ref:`String<class_string>` **animation**
-- :ref:`int<class_int>` **frame**
-- :ref:`SpriteFrames<class_spriteframes>` **frames**
-- :ref:`bool<class_bool>` **playing**
+- :ref:`String<class_string>` **animation** - The current animation from the [code]frames[/code] resource. If this value changes, the [code]frame[/code] counter is reset.
+- :ref:`int<class_int>` **frame** - The displayed animation frame's index.
+- :ref:`SpriteFrames<class_spriteframes>` **frames** - The [SpriteFrames] resource containing the animation(s).
+- :ref:`bool<class_bool>` **playing** - If [code]true[/code] the [member animation] is currently playing.
+
+Description
+-----------
+
+Animations are created using a :ref:`SpriteFrames<class_spriteframes>` resource, which can be configured in the editor via the SpriteFrames panel.
 
 Member Function Description
 ---------------------------

+ 2 - 2
classes/class_animationplayer.rst

@@ -120,8 +120,8 @@ Member Variables
 Numeric Constants
 -----------------
 
-- **ANIMATION_PROCESS_FIXED** = **0** --- Process animation on fixed process. This is specially useful when animating kinematic bodies.
-- **ANIMATION_PROCESS_IDLE** = **1** --- Process animation on idle process.
+- **ANIMATION_PROCESS_PHYSICS** = **0** --- Process animation during the physics process. This is specially useful when animating physics bodies.
+- **ANIMATION_PROCESS_IDLE** = **1** --- Process animation during the idle process.
 
 Description
 -----------

+ 1 - 1
classes/class_animationtreeplayer.rst

@@ -167,7 +167,7 @@ Numeric Constants
 - **NODE_TIMESCALE** = **7** --- TimeScale node.
 - **NODE_TIMESEEK** = **8** --- TimeSeek node.
 - **NODE_TRANSITION** = **9** --- Transition node.
-- **ANIMATION_PROCESS_FIXED** = **0**
+- **ANIMATION_PROCESS_PHYSICS** = **0**
 - **ANIMATION_PROCESS_IDLE** = **1**
 
 Description

+ 33 - 33
classes/class_area.rst

@@ -14,7 +14,7 @@ Area
 Brief Description
 -----------------
 
-General purpose area detection and influence for 3D physics.
+General purpose area node for detection and 3D physics influence.
 
 Member Functions
 ----------------
@@ -113,65 +113,65 @@ Signals
 -------
 
 -  **area_entered**  **(** :ref:`Object<class_object>` area  **)**
-This signal is triggered only once when an area enters this area. The only parameter passed is the area that entered this area.
+Emitted when another area enters.
 
 -  **area_exited**  **(** :ref:`Object<class_object>` area  **)**
-This signal is triggered only once when an area exits this area. The only parameter passed is the area that exited this area.
+Emitted when another area exits.
 
 -  **area_shape_entered**  **(** :ref:`int<class_int>` area_id, :ref:`Object<class_object>` area, :ref:`int<class_int>` area_shape, :ref:`int<class_int>` self_shape  **)**
-This signal triggers only once when an area enters this area. The first parameter is the area's :ref:`RID<class_rid>`. The second one is the area as an object. The third one is the index of the shape entering this area, and the fourth one is the index of the shape in this area that reported the entering.
+Emitted when another area enters, reporting which areas overlapped.
 
 -  **area_shape_exited**  **(** :ref:`int<class_int>` area_id, :ref:`Object<class_object>` area, :ref:`int<class_int>` area_shape, :ref:`int<class_int>` self_shape  **)**
-This signal triggers only once when an area exits this area. The first parameter is the area's :ref:`RID<class_rid>`. The second one is the area as an object. The third one is the index of the shape entering this area, and the fourth one is the index of the shape in this area that reported the entering.
+Emitted when another area exits, reporting which areas were overlapping.
 
 -  **body_entered**  **(** :ref:`Object<class_object>` body  **)**
-This signal is triggered only once when a body enters this area. The only parameter passed is the body that entered this area.
+Emitted when a :ref:`PhysicsBody<class_physicsbody>` object enters.
 
 -  **body_exited**  **(** :ref:`Object<class_object>` body  **)**
-This signal is triggered only once when a body exits this area. The only parameter passed is the body that exited this area.
+Emitted when a :ref:`PhysicsBody2D<class_physicsbody2d>` object exits.
 
 -  **body_shape_entered**  **(** :ref:`int<class_int>` body_id, :ref:`Object<class_object>` body, :ref:`int<class_int>` body_shape, :ref:`int<class_int>` area_shape  **)**
-This signal triggers only once when a body enters this area. The first parameter is the body's :ref:`RID<class_rid>`. The second one is the body as an object. The third one is the index of the shape of the body that entered this area, and the fourth one is the index of the shape in this area that reported the entering.
+Emitted when a :ref:`PhysicsBody2D<class_physicsbody2d>` object enters, reporting which shapes overlapped.
 
 -  **body_shape_exited**  **(** :ref:`int<class_int>` body_id, :ref:`Object<class_object>` body, :ref:`int<class_int>` body_shape, :ref:`int<class_int>` area_shape  **)**
-This signal triggers only once when a body exits this area. The first parameter is the body's :ref:`RID<class_rid>`. The second one is the body as an object. The third one is the index of the shape exiting this area, and the fourth one is the index of the shape in this area that reported the exit.
+Emitted when a :ref:`PhysicsBody2D<class_physicsbody2d>` object exits, reporting which shapes were overlapping.
 
 
 Member Variables
 ----------------
 
-- :ref:`float<class_float>` **angular_damp**
-- :ref:`String<class_string>` **audio_bus_name**
-- :ref:`bool<class_bool>` **audio_bus_override**
-- :ref:`int<class_int>` **collision_layer**
-- :ref:`int<class_int>` **collision_mask**
-- :ref:`float<class_float>` **gravity**
-- :ref:`float<class_float>` **gravity_distance_scale**
-- :ref:`bool<class_bool>` **gravity_point**
-- :ref:`Vector3<class_vector3>` **gravity_vec**
-- :ref:`float<class_float>` **linear_damp**
-- :ref:`bool<class_bool>` **monitorable**
-- :ref:`bool<class_bool>` **monitoring**
-- :ref:`float<class_float>` **priority**
+- :ref:`float<class_float>` **angular_damp** - The rate at which objects stop spinning in this area. Represents the angular velocity lost per second. Values range from [code]0[/code] (no damping) to [code]1[/code] (full damping).
+- :ref:`String<class_string>` **audio_bus_name** - The name of the area's audio bus.
+- :ref:`bool<class_bool>` **audio_bus_override** - If [code]true[/code] the area's audio bus overrides the default audio bus. Default value: [code]false[/code].
+- :ref:`int<class_int>` **collision_layer** - The area's physics layer(s). Collidable objects can exist in any of 32 different layers. A contact is detected if object A is in any of the layers that object B scans, or object B is in any layers that object A scans. See also [code]collision_mask[/code].
+- :ref:`int<class_int>` **collision_mask** - The physics layers this area scans to determine collision detection.
+- :ref:`float<class_float>` **gravity** - The area's gravity intensity (ranges from -1024 to 1024). This value multiplies the gravity vector. This is useful to alter the force of gravity without altering its direction.
+- :ref:`float<class_float>` **gravity_distance_scale** - The falloff factor for point gravity. The greater the value, the faster gravity decreases with distance.
+- :ref:`bool<class_bool>` **gravity_point** - If [code]true[/code] gravity is calculated from a point (set via [code]gravity_vec[/code]). Also see [code]space_override[/code]. Default value: [code]false[/code].
+- :ref:`Vector3<class_vector3>` **gravity_vec** - The area's gravity vector (not normalized). If gravity is a point (see [method is_gravity_a_point]), this will be the point of attraction.
+- :ref:`float<class_float>` **linear_damp** - The rate at which objects stop moving in this area. Represents the linear velocity lost per second. Values range from [code]0[/code] (no damping) to [code]1[/code] (full damping).
+- :ref:`bool<class_bool>` **monitorable** - If [code]true[/code] other monitoring areas can detect this area. Default value: [code]true[/code].
+- :ref:`bool<class_bool>` **monitoring** - If [code]true[/code] the area detects bodies or areas entering and exiting it. Default value: [code]true[/code].
+- :ref:`float<class_float>` **priority** - The area's priority. Higher priority areas are processed first. Default value: 0.
 - :ref:`float<class_float>` **reverb_bus_amount**
 - :ref:`bool<class_bool>` **reverb_bus_enable**
 - :ref:`String<class_string>` **reverb_bus_name**
 - :ref:`float<class_float>` **reverb_bus_uniformity**
-- :ref:`int<class_int>` **space_override**
+- :ref:`int<class_int>` **space_override** - Override mode for gravity and damping calculations within this area. See the SPACE_OVERRIDE_* constants for values.
 
 Numeric Constants
 -----------------
 
-- **SPACE_OVERRIDE_DISABLED** = **0**
-- **SPACE_OVERRIDE_COMBINE** = **1**
-- **SPACE_OVERRIDE_COMBINE_REPLACE** = **2**
-- **SPACE_OVERRIDE_REPLACE** = **3**
-- **SPACE_OVERRIDE_REPLACE_COMBINE** = **4**
+- **SPACE_OVERRIDE_DISABLED** = **0** --- This area does not affect gravity/damping.
+- **SPACE_OVERRIDE_COMBINE** = **1** --- This area adds its gravity/damping values to whatever has been calculated so far (in ``priority`` order).
+- **SPACE_OVERRIDE_COMBINE_REPLACE** = **2** --- This area adds its gravity/damping values to whatever has been calculated so far (in ``priority`` order), ignoring any lower priority areas.
+- **SPACE_OVERRIDE_REPLACE** = **3** --- This area replaces any gravity/damping, even the defaults, ignoring any lower priority areas.
+- **SPACE_OVERRIDE_REPLACE_COMBINE** = **4** --- This area replaces any gravity/damping calculated so far (in ``priority`` order), but keeps calculating the rest of the areas.
 
 Description
 -----------
 
-General purpose area detection for 3D physics. Areas can be used for detection of objects that enter/exit them, as well as overriding space parameters (changing gravity, damping, etc). For this, use any space override different from AREA_SPACE_OVERRIDE_DISABLE and point gravity at the center of mass.
+3D area that detects :ref:`CollisionObject<class_collisionobject>` nodes overlapping, entering, or exiting. Can also alter or override local physics parameters (gravity, damping).
 
 Member Function Description
 ---------------------------
@@ -238,13 +238,13 @@ Return the linear damp rate.
 
 - :ref:`Array<class_array>`  **get_overlapping_areas**  **(** **)** const
 
-Return a list of the areas that are totally or partially inside this area.
+Returns a list of intersecting :ref:`Area<class_area>`\ s.
 
 .. _class_Area_get_overlapping_bodies:
 
 - :ref:`Array<class_array>`  **get_overlapping_bodies**  **(** **)** const
 
-Return a list of the bodies (:ref:`PhysicsBody<class_physicsbody>`) that are totally or partially inside this area.
+Returns a list of intersecting :ref:`PhysicsBody<class_physicsbody>`\ s.
 
 .. _class_Area_get_priority:
 
@@ -300,13 +300,13 @@ Return whether this area detects bodies/areas entering/exiting it.
 
 - :ref:`bool<class_bool>`  **overlaps_area**  **(** :ref:`Node<class_node>` area  **)** const
 
-Return whether the area passed is totally or partially inside this area.
+If ``true`` the given area overlaps the Area.
 
 .. _class_Area_overlaps_body:
 
 - :ref:`bool<class_bool>`  **overlaps_body**  **(** :ref:`Node<class_node>` body  **)** const
 
-Return whether the body passed is totally or partially inside this area.
+If ``true`` the given body overlaps the Area.
 
 .. _class_Area_set_angular_damp:
 

+ 33 - 36
classes/class_area2d.rst

@@ -14,7 +14,7 @@ Area2D
 Brief Description
 -----------------
 
-2D area that detects nodes that enter or exit it. Can override 2D physics properties within range.
+2D area for detection and 2D physics influence.
 
 Member Functions
 ----------------
@@ -97,64 +97,61 @@ Signals
 -------
 
 -  **area_entered**  **(** :ref:`Object<class_object>` area  **)**
-This signal is triggered only once when an area enters this area. The only parameter passed is the area that entered this area.
+Emitted when another area enters.
 
 -  **area_exited**  **(** :ref:`Object<class_object>` area  **)**
-This signal is triggered only once when an area exits this area. The only parameter passed is the area that exited this area.
+Emitted when another area exits.
 
 -  **area_shape_entered**  **(** :ref:`int<class_int>` area_id, :ref:`Object<class_object>` area, :ref:`int<class_int>` area_shape, :ref:`int<class_int>` self_shape  **)**
-This signal triggers only once when an area enters this area. The first parameter is the area's :ref:`RID<class_rid>`. The second one is the area as an object. The third one is the index of the shape entering this area, and the fourth one is the index of the shape in this area that reported the entering.
+Emitted when another area enters, reporting which shapes overlapped.
 
 -  **area_shape_exited**  **(** :ref:`int<class_int>` area_id, :ref:`Object<class_object>` area, :ref:`int<class_int>` area_shape, :ref:`int<class_int>` self_shape  **)**
-This signal triggers only once when an area exits this area. The first parameter is the area's :ref:`RID<class_rid>`. The second one is the area as an object. The third one is the index of the shape entering this area, and the fourth one is the index of the shape in this area that reported the entering.
+Emitted when another area exits, reporting which shapes were overlapping.
 
 -  **body_entered**  **(** :ref:`Object<class_object>` body  **)**
-This signal is triggered only once when a body enters this area. The only parameter passed is the body that entered this area.
+Emitted when a :ref:`PhysicsBody2D<class_physicsbody2d>` object enters.
 
 -  **body_exited**  **(** :ref:`Object<class_object>` body  **)**
-This signal is triggered only once when a body exits this area. The only parameter passed is the body that exited this area.
+Emitted when a :ref:`PhysicsBody2D<class_physicsbody2d>` object exits.
 
 -  **body_shape_entered**  **(** :ref:`int<class_int>` body_id, :ref:`Object<class_object>` body, :ref:`int<class_int>` body_shape, :ref:`int<class_int>` area_shape  **)**
-This signal triggers only once when a body enters this area. The first parameter is the body's :ref:`RID<class_rid>`. The second one is the body as an object. The third one is the index of the shape of the body that entered this area, and the fourth one is the index of the shape in this area that reported the entering.
+Emitted when a :ref:`PhysicsBody2D<class_physicsbody2d>` object enters, reporting which shapes overlapped.
 
 -  **body_shape_exited**  **(** :ref:`int<class_int>` body_id, :ref:`Object<class_object>` body, :ref:`int<class_int>` body_shape, :ref:`int<class_int>` area_shape  **)**
-This signal triggers only once when a body exits this area. The first parameter is the body's :ref:`RID<class_rid>`. The second one is the body as an object. The third one is the index of the shape exiting this area, and the fourth one is the index of the shape in this area that reported the exit.
+Emitted when a :ref:`PhysicsBody2D<class_physicsbody2d>` object exits, reporting which shapes were overlapping.
 
 
 Member Variables
 ----------------
 
-- :ref:`float<class_float>` **angular_damp** - The rate at which objects stop spinning in this area. Represents the amount of speed lost per second. If 1.0, physics bodies in the area stop rotating immediately. If 0.0, they never slow down. Does not incorporate external forces. The physics-update's rate affects 'angular_damp'.
-- :ref:`String<class_string>` **audio_bus_name** - The name of the Area2D's audio bus.
-- :ref:`bool<class_bool>` **audio_bus_override** - If [code]true[/code], overrides the default audio bus with the Area2D's. Defaults to [code]false[/code].
-- :ref:`int<class_int>` **collision_layer** - The physics layer this Area2D is in.
-			Collidable objects can exist in any of 32 different layers. These layers are not visual, but more of a tagging system instead. A collidable can use these layers/tags to select with which objects it can collide, using [method set_collision_mask].
-			A contact is detected if object A is in any of the layers that object B scans, or object B is in any layers that object A scans.
-- :ref:`int<class_int>` **collision_mask** - The physics layers this Area2D scans to determine collision detections.
-- :ref:`float<class_float>` **gravity** - The gravity intensity within the Area2D (ranges -1024 to 1024). This is useful to alter the force of gravity without altering its direction.
-			This value multiplies the gravity vector, whether it is the given vector ([method set_gravity_vector]), or a calculated one (when using a center of gravity).
-- :ref:`float<class_float>` **gravity_distance_scale** - The falloff factor for point gravity. The greater this value is, the faster the strength of gravity decreases with the square of distance.
-- :ref:`bool<class_bool>` **gravity_point** - If [code]true[/code], calculates gravity from a particular point during a space override (see [method set_space_override_mode]). If a point, [Vector2] position is set with [method set_gravity_vector]. Defaults to [code]false[/code].
-- :ref:`Vector2<class_vector2>` **gravity_vec** - The gravitational direction/strength as a vector (not normalized). If gravity is a point (see [method is_gravity_a_point]), this will be the attraction center.
-- :ref:`float<class_float>` **linear_damp** - The rate at which objects stop spinning in this area. Represents the amount of speed lost per second. If 1.0, physics bodies in the area stop rotating immediately. If 0.0, they never slow down. Does not incorporate external forces. The physics-update's rate affects 'angular_damp'.
-- :ref:`bool<class_bool>` **monitorable** - If [code]true[/code], other monitoring areas can detect this Area2D (is it undetectable at the moment?). Defaults to [code]true[/code].
-- :ref:`bool<class_bool>` **monitoring** - If [code]true[/code], this detects bodies/areas entering/exiting it (can it detect others at the moment?). Defaults to [code]true[/code].
-- :ref:`float<class_float>` **priority** - The processing order for this priority. Ranges from 0 to 128. Defaults to 0. Higher priorities are processed first.
-- :ref:`int<class_int>` **space_override** - How to override gravity and damping calculations within this Area2D, if at all. Consult the SPACE_OVERRIDE_* constants for available options.
+- :ref:`float<class_float>` **angular_damp** - The rate at which objects stop spinning in this area. Represents the angular velocity lost per second. Values range from [code]0[/code] (no damping) to [code]1[/code] (full damping).
+- :ref:`String<class_string>` **audio_bus_name** - The name of the area's audio bus.
+- :ref:`bool<class_bool>` **audio_bus_override** - If [code]true[/code] the area's audio bus overrides the default audio bus. Default value: [code]false[/code].
+- :ref:`int<class_int>` **collision_layer** - The area's physics layer(s). Collidable objects can exist in any of 32 different layers. A contact is detected if object A is in any of the layers that object B scans, or object B is in any layers that object A scans. See also [code]collision_mask[/code].
+- :ref:`int<class_int>` **collision_mask** - The physics layers this area scans to determine collision detection.
+- :ref:`float<class_float>` **gravity** - The area's gravity intensity (ranges from -1024 to 1024). This value multiplies the gravity vector. This is useful to alter the force of gravity without altering its direction.
+- :ref:`float<class_float>` **gravity_distance_scale** - The falloff factor for point gravity. The greater the value, the faster gravity decreases with distance.
+- :ref:`bool<class_bool>` **gravity_point** - If [code]true[/code] gravity is calculated from a point (set via [code]gravity_vec[/code]). Also see [code]space_override[/code]. Default value: [code]false[/code].
+- :ref:`Vector2<class_vector2>` **gravity_vec** - The area's gravity vector (not normalized). If gravity is a point (see [method is_gravity_a_point]), this will be the point of attraction.
+- :ref:`float<class_float>` **linear_damp** - The rate at which objects stop moving in this area. Represents the linear velocity lost per second. Values range from [code]0[/code] (no damping) to [code]1[/code] (full damping).
+- :ref:`bool<class_bool>` **monitorable** - If [code]true[/code] other monitoring areas can detect this area. Default value: [code]true[/code].
+- :ref:`bool<class_bool>` **monitoring** - If [code]true[/code] the area detects bodies or areas entering and exiting it. Default value: [code]true[/code].
+- :ref:`float<class_float>` **priority** - The area's priority. Higher priority areas are processed first. Default value: 0.
+- :ref:`int<class_int>` **space_override** - Override mode for gravity and damping calculations within this area. See the SPACE_OVERRIDE_* constants for values.
 
 Numeric Constants
 -----------------
 
-- **SPACE_OVERRIDE_DISABLED** = **0** --- This area does not affect gravity/damp. These are areas that exist only to detect collisions and objects entering or exiting them.
-- **SPACE_OVERRIDE_COMBINE** = **1** --- This area adds its gravity/damp values to whatever has been calculated so far. This way, many overlapping areas can combine their physics to make interesting effects.
-- **SPACE_OVERRIDE_COMBINE_REPLACE** = **2** --- This area adds its gravity/damp values to whatever has been calculated so far. Then stops taking into account the rest of the areas, even the default one.
-- **SPACE_OVERRIDE_REPLACE** = **3** --- This area replaces any gravity/damp, even the default one, and stops taking into account the rest of the areas.
-- **SPACE_OVERRIDE_REPLACE_COMBINE** = **4** --- This area replaces any gravity/damp calculated so far, but keeps calculating the rest of the areas, down to the default one.
+- **SPACE_OVERRIDE_DISABLED** = **0** --- This area does not affect gravity/damping.
+- **SPACE_OVERRIDE_COMBINE** = **1** --- This area adds its gravity/damping values to whatever has been calculated so far (in ``priority`` order).
+- **SPACE_OVERRIDE_COMBINE_REPLACE** = **2** --- This area adds its gravity/damping values to whatever has been calculated so far (in ``priority`` order), ignoring any lower priority areas.
+- **SPACE_OVERRIDE_REPLACE** = **3** --- This area replaces any gravity/damping, even the defaults, ignoring any lower priority areas.
+- **SPACE_OVERRIDE_REPLACE_COMBINE** = **4** --- This area replaces any gravity/damping calculated so far (in ``priority`` order), but keeps calculating the rest of the areas.
 
 Description
 -----------
 
-2D area that detects nodes that enter or exit it. Change  the 'space_override' property SPACE_OVERRIDE\_\* to override physics parameters for nodes like Rigidbody2D. E.g. gravity, damping... See :ref:`CollisionObject2D<class_collisionobject2d>` for usage.
+2D area that detects :ref:`CollisionObject2D<class_collisionobject2d>` nodes overlapping, entering, or exiting. Can also alter or override local physics parameters (gravity, damping).
 
 Member Function Description
 ---------------------------
@@ -221,13 +218,13 @@ Return the linear damp rate.
 
 - :ref:`Array<class_array>`  **get_overlapping_areas**  **(** **)** const
 
-Returns a list of the :ref:`Area2D<class_area2d>`s that intersect with this area.
+Returns a list of intersecting :ref:`Area2D<class_area2d>`\ s.
 
 .. _class_Area2D_get_overlapping_bodies:
 
 - :ref:`Array<class_array>`  **get_overlapping_bodies**  **(** **)** const
 
-Return a list of the :ref:`PhysicsBody2D<class_physicsbody2d>`s that intersect with this area.
+Returns a list of intersecting :ref:`PhysicsBody2D<class_physicsbody2d>`\ s.
 
 .. _class_Area2D_get_priority:
 
@@ -267,13 +264,13 @@ Return whether this area detects bodies/areas entering/exiting it.
 
 - :ref:`bool<class_bool>`  **overlaps_area**  **(** :ref:`Node<class_node>` area  **)** const
 
-Return whether the area passed is totally or partially inside this area.
+If ``true`` the given area overlaps the Area2D.
 
 .. _class_Area2D_overlaps_body:
 
 - :ref:`bool<class_bool>`  **overlaps_body**  **(** :ref:`Node<class_node>` body  **)** const
 
-Return whether the body passed is totally or partially inside this area.
+If ``true`` the given body overlaps the Area2D.
 
 .. _class_Area2D_set_angular_damp:
 

+ 5 - 3
classes/class_array.rst

@@ -159,6 +159,8 @@ Return the amount of times an element is in the array.
 
 - :ref:`Array<class_array>`  **duplicate**  **(** **)**
 
+Returns a copy of this ``Array``.
+
 .. _class_Array_empty:
 
 - :ref:`bool<class_bool>`  **empty**  **(** **)**
@@ -218,7 +220,7 @@ Insert a new element at a given position in the array. The position must be vali
 
 - void  **invert**  **(** **)**
 
-Reverse the order of the elements in the array (so first element will now be the last).
+Reverse the order of the elements in the array (so first element will now be the last) and return reference to the array.
 
 .. _class_Array_pop_back:
 
@@ -272,12 +274,12 @@ Return the amount of elements in the array.
 
 - void  **sort**  **(** **)**
 
-Sort the array using natural order.
+Sort the array using natural order and return reference to the array.
 
 .. _class_Array_sort_custom:
 
 - void  **sort_custom**  **(** :ref:`Object<class_object>` obj, :ref:`String<class_string>` func  **)**
 
-Sort the array using a custom method. The arguments are an object that holds the method and the name of such method. The custom method receives two arguments (a pair of elements from the array) and must return true if the first argument is less than the second, and return false otherwise. Note: you cannot randomize the return value as the heapsort algorithm expects a deterministic result. Doing so will result in unexpected behavior.
+Sort the array using a custom method and return reference to the array. The arguments are an object that holds the method and the name of such method. The custom method receives two arguments (a pair of elements from the array) and must return true if the first argument is less than the second, and return false otherwise. Note: you cannot randomize the return value as the heapsort algorithm expects a deterministic result. Doing so will result in unexpected behavior.
 
 

+ 8 - 0
classes/class_arvranchor.rst

@@ -26,6 +26,8 @@ Member Functions
 +--------------------------------+----------------------------------------------------------------------------------------------------+
 | :ref:`bool<class_bool>`        | :ref:`get_is_active<class_ARVRAnchor_get_is_active>`  **(** **)** const                            |
 +--------------------------------+----------------------------------------------------------------------------------------------------+
+| :ref:`Plane<class_plane>`      | :ref:`get_plane<class_ARVRAnchor_get_plane>`  **(** **)** const                                    |
++--------------------------------+----------------------------------------------------------------------------------------------------+
 | :ref:`Vector3<class_vector3>`  | :ref:`get_size<class_ARVRAnchor_get_size>`  **(** **)** const                                      |
 +--------------------------------+----------------------------------------------------------------------------------------------------+
 | void                           | :ref:`set_anchor_id<class_ARVRAnchor_set_anchor_id>`  **(** :ref:`int<class_int>` anchor_id  **)** |
@@ -66,6 +68,12 @@ Returns the name given to this anchor.
 
 Returns true if the anchor is being tracked and false if no anchor with this id is currently known.
 
+.. _class_ARVRAnchor_get_plane:
+
+- :ref:`Plane<class_plane>`  **get_plane**  **(** **)** const
+
+Returns a plane aligned with our anchor, handy for intersection testing
+
 .. _class_ARVRAnchor_get_size:
 
 - :ref:`Vector3<class_vector3>`  **get_size**  **(** **)** const

+ 74 - 38
classes/class_arvrinterface.rst

@@ -9,7 +9,7 @@ ARVRInterface
 
 **Inherits:** :ref:`Reference<class_reference>` **<** :ref:`Object<class_object>`
 
-**Inherited By:** :ref:`ARVRScriptInterface<class_arvrscriptinterface>`
+**Inherited By:** :ref:`ARVRScriptInterface<class_arvrscriptinterface>`, :ref:`MobileVRInterface<class_mobilevrinterface>`
 
 **Category:** Core
 
@@ -21,39 +21,57 @@ Base class for ARVR interface implementation.
 Member Functions
 ----------------
 
-+--------------------------------+--------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_string>`    | :ref:`get_name<class_ARVRInterface_get_name>`  **(** **)** const                                             |
-+--------------------------------+--------------------------------------------------------------------------------------------------------------+
-| :ref:`Vector2<class_vector2>`  | :ref:`get_recommended_render_targetsize<class_ARVRInterface_get_recommended_render_targetsize>`  **(** **)** |
-+--------------------------------+--------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`        | :ref:`hmd_is_present<class_ARVRInterface_hmd_is_present>`  **(** **)**                                       |
-+--------------------------------+--------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`        | :ref:`initialize<class_ARVRInterface_initialize>`  **(** **)**                                               |
-+--------------------------------+--------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`        | :ref:`is_initialized<class_ARVRInterface_is_initialized>`  **(** **)**                                       |
-+--------------------------------+--------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`        | :ref:`is_installed<class_ARVRInterface_is_installed>`  **(** **)**                                           |
-+--------------------------------+--------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`        | :ref:`is_primary<class_ARVRInterface_is_primary>`  **(** **)**                                               |
-+--------------------------------+--------------------------------------------------------------------------------------------------------------+
-| void                           | :ref:`set_is_primary<class_ARVRInterface_set_is_primary>`  **(** :ref:`bool<class_bool>` enable  **)**       |
-+--------------------------------+--------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`        | :ref:`supports_hmd<class_ARVRInterface_supports_hmd>`  **(** **)**                                           |
-+--------------------------------+--------------------------------------------------------------------------------------------------------------+
-| void                           | :ref:`uninitialize<class_ARVRInterface_uninitialize>`  **(** **)**                                           |
-+--------------------------------+--------------------------------------------------------------------------------------------------------------+
++--------------------------------+------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`        | :ref:`get_anchor_detection_is_enabled<class_ARVRInterface_get_anchor_detection_is_enabled>`  **(** **)** const                           |
++--------------------------------+------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`          | :ref:`get_capabilities<class_ARVRInterface_get_capabilities>`  **(** **)** const                                                         |
++--------------------------------+------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_string>`    | :ref:`get_name<class_ARVRInterface_get_name>`  **(** **)** const                                                                         |
++--------------------------------+------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Vector2<class_vector2>`  | :ref:`get_recommended_render_targetsize<class_ARVRInterface_get_recommended_render_targetsize>`  **(** **)**                             |
++--------------------------------+------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`          | :ref:`get_tracking_status<class_ARVRInterface_get_tracking_status>`  **(** **)** const                                                   |
++--------------------------------+------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`        | :ref:`initialize<class_ARVRInterface_initialize>`  **(** **)**                                                                           |
++--------------------------------+------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`        | :ref:`is_initialized<class_ARVRInterface_is_initialized>`  **(** **)**                                                                   |
++--------------------------------+------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`        | :ref:`is_primary<class_ARVRInterface_is_primary>`  **(** **)**                                                                           |
++--------------------------------+------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`        | :ref:`is_stereo<class_ARVRInterface_is_stereo>`  **(** **)**                                                                             |
++--------------------------------+------------------------------------------------------------------------------------------------------------------------------------------+
+| void                           | :ref:`set_anchor_detection_is_enabled<class_ARVRInterface_set_anchor_detection_is_enabled>`  **(** :ref:`bool<class_bool>` enable  **)** |
++--------------------------------+------------------------------------------------------------------------------------------------------------------------------------------+
+| void                           | :ref:`set_is_initialized<class_ARVRInterface_set_is_initialized>`  **(** :ref:`bool<class_bool>` initialized  **)**                      |
++--------------------------------+------------------------------------------------------------------------------------------------------------------------------------------+
+| void                           | :ref:`set_is_primary<class_ARVRInterface_set_is_primary>`  **(** :ref:`bool<class_bool>` enable  **)**                                   |
++--------------------------------+------------------------------------------------------------------------------------------------------------------------------------------+
+| void                           | :ref:`uninitialize<class_ARVRInterface_uninitialize>`  **(** **)**                                                                       |
++--------------------------------+------------------------------------------------------------------------------------------------------------------------------------------+
 
 Member Variables
 ----------------
 
-- :ref:`bool<class_bool>` **primary**
+- :ref:`bool<class_bool>` **ar_is_anchor_detection_enabled** - On an AR interface, is our anchor detection enabled?
+- :ref:`bool<class_bool>` **interface_is_initialized** - Has this interface been initialized?
+- :ref:`bool<class_bool>` **interface_is_primary** - Is this our primary interface?
 
 Numeric Constants
 -----------------
 
+- **ARVR_NONE** = **0** --- No ARVR capabilities.
+- **ARVR_MONO** = **1** --- This interface can work with normal rendering output (non-HMD based AR).
+- **ARVR_STEREO** = **2** --- This interface supports stereoscopic rendering.
+- **ARVR_AR** = **4** --- This interface support AR (video background and real world tracking).
+- **ARVR_EXTERNAL** = **8** --- This interface outputs to an external device, if the main viewport is used the on screen output is an unmodified buffer of either the left or right eye (stretched if the viewport size is not changed to the same aspect ratio of get_recommended_render_targetsize. Using a seperate viewport node frees up the main viewport for other purposes.
 - **EYE_MONO** = **0** --- Mono output, this is mostly used internally when retrieving positioning information for our camera node or when stereo scopic rendering is not supported.
 - **EYE_LEFT** = **1** --- Left eye output, this is mostly used internally when rendering the image for the left eye and obtaining positioning and projection information.
 - **EYE_RIGHT** = **2** --- Right eye output, this is mostly used internally when rendering the image for the right eye and obtaining positioning and projection information.
+- **ARVR_NORMAL_TRACKING** = **0** --- Tracking is behaving as expected.
+- **ARVR_EXCESSIVE_MOTION** = **1** --- Tracking is hindered by excessive motion, player is moving faster then tracking can keep up.
+- **ARVR_INSUFFICIENT_FEATURES** = **2** --- Tracking is hindered by insufficient features, it's too dark (for camera based tracking), player is blocked, etc.
+- **ARVR_UNKNOWN_TRACKING** = **3** --- We don't know the status of the tracking or this interface does not provide feedback.
+- **ARVR_NOT_TRACKING** = **4** --- Tracking is not functional (camera not plugged in or obscured, lighthouses turned off, etc.)
 
 Description
 -----------
@@ -65,6 +83,18 @@ Interfaces should be written in such a way that simply enabling them will give u
 Member Function Description
 ---------------------------
 
+.. _class_ARVRInterface_get_anchor_detection_is_enabled:
+
+- :ref:`bool<class_bool>`  **get_anchor_detection_is_enabled**  **(** **)** const
+
+Returns true if achor detection is enabled (AR only).
+
+.. _class_ARVRInterface_get_capabilities:
+
+- :ref:`int<class_int>`  **get_capabilities**  **(** **)** const
+
+Returns a combination of flags providing information about the capabilities of this interface.
+
 .. _class_ARVRInterface_get_name:
 
 - :ref:`String<class_string>`  **get_name**  **(** **)** const
@@ -77,11 +107,11 @@ Returns the name of this interface (OpenVR, OpenHMD, ARKit, etc).
 
 Returns the resolution at which we should render our intermediate results before things like lens distortion are applied by the VR platform.
 
-.. _class_ARVRInterface_hmd_is_present:
+.. _class_ARVRInterface_get_tracking_status:
 
-- :ref:`bool<class_bool>`  **hmd_is_present**  **(** **)**
+- :ref:`int<class_int>`  **get_tracking_status**  **(** **)** const
 
-Returns true if an HMD is available for this interface.
+If supported, returns the status of our tracking. This will allow you to provide feedback to the user whether there are issues with positional tracking.
 
 .. _class_ARVRInterface_initialize:
 
@@ -103,29 +133,35 @@ While currently not used you can activate additional interfaces, you may wish to
 
 Returns true if this interface is active.
 
-.. _class_ARVRInterface_is_installed:
-
-- :ref:`bool<class_bool>`  **is_installed**  **(** **)**
-
-Returns true if this interface has been installed. Say your game is designed to work with OpenVR so you are using the OpenVR interface but the user hasn't installed SteamVR, this would return false.
-
 .. _class_ARVRInterface_is_primary:
 
 - :ref:`bool<class_bool>`  **is_primary**  **(** **)**
 
 Returns true if this interface is currently the primary interface (the interface responsible for showing the output).
 
-.. _class_ARVRInterface_set_is_primary:
+.. _class_ARVRInterface_is_stereo:
 
-- void  **set_is_primary**  **(** :ref:`bool<class_bool>` enable  **)**
+- :ref:`bool<class_bool>`  **is_stereo**  **(** **)**
 
-Set this interface to the primary interface (unset the old one).
+Returns true if the current output of this interface is in stereo.
+
+.. _class_ARVRInterface_set_anchor_detection_is_enabled:
+
+- void  **set_anchor_detection_is_enabled**  **(** :ref:`bool<class_bool>` enable  **)**
+
+Enables anchor detection, this is used on AR interfaces and enables the extra logic that will detect planes, features, objects, etc. and adds/modifies anchor points.
+
+.. _class_ARVRInterface_set_is_initialized:
 
-.. _class_ARVRInterface_supports_hmd:
+- void  **set_is_initialized**  **(** :ref:`bool<class_bool>` initialized  **)**
 
-- :ref:`bool<class_bool>`  **supports_hmd**  **(** **)**
+Initialise/uninitilise this interface (same effect as calling intialize/uninitialize).
 
-Returns true if this interface supports HMDs and by extension uses stereo scopic rendering.
+.. _class_ARVRInterface_set_is_primary:
+
+- void  **set_is_primary**  **(** :ref:`bool<class_bool>` enable  **)**
+
+Set this interface to the primary interface (unset the old one).
 
 .. _class_ARVRInterface_uninitialize:
 

+ 28 - 20
classes/class_arvrscriptinterface.rst

@@ -24,23 +24,25 @@ Member Functions
 +------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                               | :ref:`commit_for_eye<class_ARVRScriptInterface_commit_for_eye>`  **(** :ref:`int<class_int>` eye, :ref:`RID<class_rid>` render_target  **)** virtual                           |
 +------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`            | :ref:`get_anchor_detection_is_enabled<class_ARVRScriptInterface_get_anchor_detection_is_enabled>`  **(** **)** virtual                                                         |
++------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`              | :ref:`get_capabilities<class_ARVRScriptInterface_get_capabilities>`  **(** **)** virtual                                                                                       |
++------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`Vector2<class_vector2>`      | :ref:`get_recommended_render_targetsize<class_ARVRScriptInterface_get_recommended_render_targetsize>`  **(** **)** virtual                                                     |
 +------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Transform<class_transform>`  | :ref:`get_transform_for_eye<class_ARVRScriptInterface_get_transform_for_eye>`  **(** :ref:`int<class_int>` eye, :ref:`Transform<class_transform>` cam_transform  **)** virtual |
+| :ref:`int<class_int>`              | :ref:`get_tracking_status<class_ARVRScriptInterface_get_tracking_status>`  **(** **)** virtual                                                                                 |
 +------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`            | :ref:`hmd_is_present<class_ARVRScriptInterface_hmd_is_present>`  **(** **)** virtual                                                                                           |
+| :ref:`Transform<class_transform>`  | :ref:`get_transform_for_eye<class_ARVRScriptInterface_get_transform_for_eye>`  **(** :ref:`int<class_int>` eye, :ref:`Transform<class_transform>` cam_transform  **)** virtual |
 +------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`bool<class_bool>`            | :ref:`initialize<class_ARVRScriptInterface_initialize>`  **(** **)** virtual                                                                                                   |
 +------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`bool<class_bool>`            | :ref:`is_initialized<class_ARVRScriptInterface_is_initialized>`  **(** **)** virtual                                                                                           |
 +------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`            | :ref:`is_installed<class_ARVRScriptInterface_is_installed>`  **(** **)** virtual                                                                                               |
-+------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`bool<class_bool>`            | :ref:`is_stereo<class_ARVRScriptInterface_is_stereo>`  **(** **)** virtual                                                                                                     |
 +------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                               | :ref:`process<class_ARVRScriptInterface_process>`  **(** **)** virtual                                                                                                         |
 +------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`            | :ref:`supports_hmd<class_ARVRScriptInterface_supports_hmd>`  **(** **)** virtual                                                                                               |
+| void                               | :ref:`set_anchor_detection_is_enabled<class_ARVRScriptInterface_set_anchor_detection_is_enabled>`  **(** :ref:`bool<class_bool>` enabled  **)** virtual                        |
 +------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                               | :ref:`uninitialize<class_ARVRScriptInterface_uninitialize>`  **(** **)** virtual                                                                                               |
 +------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
@@ -65,23 +67,35 @@ Should return the projection 4x4 matrix for the requested eye.
 
 Outputs a finished render buffer to the AR/VR device for the given eye.
 
+.. _class_ARVRScriptInterface_get_anchor_detection_is_enabled:
+
+- :ref:`bool<class_bool>`  **get_anchor_detection_is_enabled**  **(** **)** virtual
+
+Returns true if achor detection is enabled (AR only).
+
+.. _class_ARVRScriptInterface_get_capabilities:
+
+- :ref:`int<class_int>`  **get_capabilities**  **(** **)** virtual
+
+Returns a combination of flags providing information about the capabilities of this interface.
+
 .. _class_ARVRScriptInterface_get_recommended_render_targetsize:
 
 - :ref:`Vector2<class_vector2>`  **get_recommended_render_targetsize**  **(** **)** virtual
 
 Returns the size at which we should render our scene to get optimal quality on the output device.
 
-.. _class_ARVRScriptInterface_get_transform_for_eye:
+.. _class_ARVRScriptInterface_get_tracking_status:
 
-- :ref:`Transform<class_transform>`  **get_transform_for_eye**  **(** :ref:`int<class_int>` eye, :ref:`Transform<class_transform>` cam_transform  **)** virtual
+- :ref:`int<class_int>`  **get_tracking_status**  **(** **)** virtual
 
-Get the location and orientation transform used when rendering a specific eye.
+If supported, returns the status of our tracking. This will allow you to provide feedback to the user whether there are issues with positional tracking.
 
-.. _class_ARVRScriptInterface_hmd_is_present:
+.. _class_ARVRScriptInterface_get_transform_for_eye:
 
-- :ref:`bool<class_bool>`  **hmd_is_present**  **(** **)** virtual
+- :ref:`Transform<class_transform>`  **get_transform_for_eye**  **(** :ref:`int<class_int>` eye, :ref:`Transform<class_transform>` cam_transform  **)** virtual
 
-Return true is an HMD is available.
+Get the location and orientation transform used when rendering a specific eye.
 
 .. _class_ARVRScriptInterface_initialize:
 
@@ -95,12 +109,6 @@ Initialize this interface.
 
 Returns true if this interface has been initialized and is active.
 
-.. _class_ARVRScriptInterface_is_installed:
-
-- :ref:`bool<class_bool>`  **is_installed**  **(** **)** virtual
-
-Returns true if the required middleware is installed.
-
 .. _class_ARVRScriptInterface_is_stereo:
 
 - :ref:`bool<class_bool>`  **is_stereo**  **(** **)** virtual
@@ -113,11 +121,11 @@ Returns true if we require stereoscopic rendering for this interface.
 
 Gets called before rendering each frame so tracking data gets updated in time.
 
-.. _class_ARVRScriptInterface_supports_hmd:
+.. _class_ARVRScriptInterface_set_anchor_detection_is_enabled:
 
-- :ref:`bool<class_bool>`  **supports_hmd**  **(** **)** virtual
+- void  **set_anchor_detection_is_enabled**  **(** :ref:`bool<class_bool>` enabled  **)** virtual
 
-Returns true if this interface supports HMDs.
+Enables anchor detection, this is used on AR interfaces and enables the extra logic that will detect planes, features, objects, etc. and adds/modifies anchor points.
 
 .. _class_ARVRScriptInterface_uninitialize:
 

+ 44 - 44
classes/class_arvrserver.rst

@@ -19,31 +19,31 @@ This is our AR/VR Server.
 Member Functions
 ----------------
 
-+------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                       | :ref:`add_interface<class_ARVRServer_add_interface>`  **(** :ref:`ARVRInterface<class_arvrinterface>` arg0  **)**                                               |
-+------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`ARVRInterface<class_arvrinterface>`                  | :ref:`find_interface<class_ARVRServer_find_interface>`  **(** :ref:`String<class_string>` name  **)** const                                                     |
-+------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`ARVRInterface<class_arvrinterface>`                  | :ref:`get_interface<class_ARVRServer_get_interface>`  **(** :ref:`int<class_int>` idx  **)** const                                                              |
-+------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                                      | :ref:`get_interface_count<class_ARVRServer_get_interface_count>`  **(** **)** const                                                                             |
-+------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Transform<class_transform>`                          | :ref:`get_reference_frame<class_ARVRServer_get_reference_frame>`  **(** **)** const                                                                             |
-+------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`ARVRPositionalTracker<class_arvrpositionaltracker>`  | :ref:`get_tracker<class_ARVRServer_get_tracker>`  **(** :ref:`int<class_int>` idx  **)** const                                                                  |
-+------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                                      | :ref:`get_tracker_count<class_ARVRServer_get_tracker_count>`  **(** **)** const                                                                                 |
-+------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                                  | :ref:`get_world_scale<class_ARVRServer_get_world_scale>`  **(** **)** const                                                                                     |
-+------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                       | :ref:`remove_interface<class_ARVRServer_remove_interface>`  **(** :ref:`ARVRInterface<class_arvrinterface>` arg0  **)**                                         |
-+------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                       | :ref:`request_reference_frame<class_ARVRServer_request_reference_frame>`  **(** :ref:`bool<class_bool>` ignore_tilt, :ref:`bool<class_bool>` keep_height  **)** |
-+------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                       | :ref:`set_primary_interface<class_ARVRServer_set_primary_interface>`  **(** :ref:`ARVRInterface<class_arvrinterface>` arg0  **)**                               |
-+------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                       | :ref:`set_world_scale<class_ARVRServer_set_world_scale>`  **(** :ref:`float<class_float>` arg0  **)**                                                           |
-+------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
++------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                       | :ref:`add_interface<class_ARVRServer_add_interface>`  **(** :ref:`ARVRInterface<class_arvrinterface>` interface  **)**                      |
++------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                       | :ref:`center_on_hmd<class_ARVRServer_center_on_hmd>`  **(** :ref:`bool<class_bool>` ignore_tilt, :ref:`bool<class_bool>` keep_height  **)** |
++------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`ARVRInterface<class_arvrinterface>`                  | :ref:`find_interface<class_ARVRServer_find_interface>`  **(** :ref:`String<class_string>` name  **)** const                                 |
++------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`ARVRInterface<class_arvrinterface>`                  | :ref:`get_interface<class_ARVRServer_get_interface>`  **(** :ref:`int<class_int>` idx  **)** const                                          |
++------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                                      | :ref:`get_interface_count<class_ARVRServer_get_interface_count>`  **(** **)** const                                                         |
++------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Transform<class_transform>`                          | :ref:`get_reference_frame<class_ARVRServer_get_reference_frame>`  **(** **)** const                                                         |
++------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`ARVRPositionalTracker<class_arvrpositionaltracker>`  | :ref:`get_tracker<class_ARVRServer_get_tracker>`  **(** :ref:`int<class_int>` idx  **)** const                                              |
++------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                                      | :ref:`get_tracker_count<class_ARVRServer_get_tracker_count>`  **(** **)** const                                                             |
++------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                                  | :ref:`get_world_scale<class_ARVRServer_get_world_scale>`  **(** **)** const                                                                 |
++------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                       | :ref:`remove_interface<class_ARVRServer_remove_interface>`  **(** :ref:`ARVRInterface<class_arvrinterface>` interface  **)**                |
++------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                       | :ref:`set_primary_interface<class_ARVRServer_set_primary_interface>`  **(** :ref:`ARVRInterface<class_arvrinterface>` interface  **)**      |
++------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                       | :ref:`set_world_scale<class_ARVRServer_set_world_scale>`  **(** :ref:`float<class_float>` arg0  **)**                                       |
++------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------+
 
 Signals
 -------
@@ -86,10 +86,26 @@ Member Function Description
 
 .. _class_ARVRServer_add_interface:
 
-- void  **add_interface**  **(** :ref:`ARVRInterface<class_arvrinterface>` arg0  **)**
+- void  **add_interface**  **(** :ref:`ARVRInterface<class_arvrinterface>` interface  **)**
 
 Mostly exposed for GDNative based interfaces, this is called to register an available interface with the AR/VR server.
 
+.. _class_ARVRServer_center_on_hmd:
+
+- void  **center_on_hmd**  **(** :ref:`bool<class_bool>` ignore_tilt, :ref:`bool<class_bool>` keep_height  **)**
+
+This is a really important function to understand correctly. AR and VR platforms all handle positioning slightly differently.
+
+For platforms that do not offer spatial tracking our origin point (0,0,0) is the location of our HMD but you have little control over the direction the player is facing in the real world.
+
+For platforms that do offer spatial tracking our origin point depends very much on the system. For OpenVR our origin point is usually the center of the tracking space, on the ground. For other platforms its often the location of the tracking camera.
+
+This method allows you to center our tracker on the location of the HMD, it will take the current location of the HMD and use that to adjust all our tracking data in essence realigning the real world to your players current position in your game world.
+
+For this method to produce usable results tracking information should be available and this often takes a few frames after starting your game.
+
+You should call this method after a few seconds have passed, when the user requests a realignment of the display holding a designated button on a controller for a short period of time, and when implementing a teleport mechanism.
+
 .. _class_ARVRServer_find_interface:
 
 - :ref:`ARVRInterface<class_arvrinterface>`  **find_interface**  **(** :ref:`String<class_string>` name  **)** const
@@ -134,29 +150,13 @@ Returns our world scale (see ARVROrigin for more information).
 
 .. _class_ARVRServer_remove_interface:
 
-- void  **remove_interface**  **(** :ref:`ARVRInterface<class_arvrinterface>` arg0  **)**
+- void  **remove_interface**  **(** :ref:`ARVRInterface<class_arvrinterface>` interface  **)**
 
 Removes a registered interface, again exposed mostly for GDNative based interfaces.
 
-.. _class_ARVRServer_request_reference_frame:
-
-- void  **request_reference_frame**  **(** :ref:`bool<class_bool>` ignore_tilt, :ref:`bool<class_bool>` keep_height  **)**
-
-This is a really important function to understand correctly. AR and VR platforms all handle positioning slightly differently.
-
-For platforms that do not offer spatial tracking our origin point (0,0,0) is the location of our HMD but you have little control over the direction the player is facing in the real world.
-
-For platforms that do offer spatial tracking our origin point depends very much on the system. For OpenVR our origin point is usually the center of the tracking space, on the ground. For other platforms its often the location of the tracking camera.
-
-This method allows you to create a reference frame, it will take the current location of the HMD and use that to adjust all our tracking data in essence realigning the real world to your players current position in your game world.
-
-For this method to produce usable results tracking information should be available and this often takes a few frames after starting your game.
-
-You should call this method after a few seconds have passed, when the user requests a realignment of the display holding a designated button on a controller for a short period of time, and when implementing a teleport mechanism.
-
 .. _class_ARVRServer_set_primary_interface:
 
-- void  **set_primary_interface**  **(** :ref:`ARVRInterface<class_arvrinterface>` arg0  **)**
+- void  **set_primary_interface**  **(** :ref:`ARVRInterface<class_arvrinterface>` interface  **)**
 
 Changes the primary interface to the specified interface. Again mostly exposed for GDNative interfaces.
 

+ 5 - 0
classes/class_audiobuslayout.rst

@@ -14,5 +14,10 @@ AudioBusLayout
 Brief Description
 -----------------
 
+Stores information about the audiobusses.
 
+Description
+-----------
+
+Stores position, muting, solo, bypass, effects, effect position, volume, and the connections between busses. See :ref:`AudioServer<class_audioserver>` for usage.
 

+ 5 - 7
classes/class_audioeffectamplify.rst

@@ -14,7 +14,9 @@ AudioEffectAmplify
 Brief Description
 -----------------
 
-Amplifies the volume of an audio source.
+Adds a Amplify audio effect to an Audio bus.
+
+Increases or decreases the volume of the selected audio bus.
 
 Member Functions
 ----------------
@@ -28,12 +30,12 @@ Member Functions
 Member Variables
 ----------------
 
-- :ref:`float<class_float>` **volume_db** - The effect's volume limit.
+- :ref:`float<class_float>` **volume_db** - Amount of amplification. Positive values make the sound louder, negative values make it quieter. Value can range from -80 to 24. Default value: [code]0[/code].
 
 Description
 -----------
 
-Amplifies the volume of an audio source. Increase gain of the audio being routed through the bus.
+Increases or decreases the volume being routed through the audio bus.
 
 Member Function Description
 ---------------------------
@@ -42,12 +44,8 @@ Member Function Description
 
 - :ref:`float<class_float>`  **get_volume_db**  **(** **)** const
 
-Returns the set maximum volume.
-
 .. _class_AudioEffectAmplify_set_volume_db:
 
 - void  **set_volume_db**  **(** :ref:`float<class_float>` volume  **)**
 
-Sets the maximum volume.
-
 

+ 24 - 7
classes/class_audioeffectcompressor.rst

@@ -14,7 +14,9 @@ AudioEffectCompressor
 Brief Description
 -----------------
 
+Adds a Compressor audio effect to an Audio bus.
 
+Reduces sounds that exceed a certain threshold level, smooths out the dynamics and increases the overall volume.
 
 Member Functions
 ----------------
@@ -52,13 +54,28 @@ Member Functions
 Member Variables
 ----------------
 
-- :ref:`float<class_float>` **attack_us**
-- :ref:`float<class_float>` **gain**
-- :ref:`float<class_float>` **mix**
-- :ref:`float<class_float>` **ratio**
-- :ref:`float<class_float>` **release_ms**
-- :ref:`String<class_string>` **sidechain**
-- :ref:`float<class_float>` **threshold**
+- :ref:`float<class_float>` **attack_us** - Compressor's reaction time when the signal exceeds the threshold. Value can range from 20 to 2000. Default value: [code]20ms[/code].
+- :ref:`float<class_float>` **gain** - Gain applied to the output signal.
+- :ref:`float<class_float>` **mix** - Balance between original signal and effect signal. Value can range from 0 (totally dry) to 1 (totally wet). Default value: [code]1[/code].
+- :ref:`float<class_float>` **ratio** - Amount of compression applied to the audio once it passes the threshold level. The higher the ratio the more the loud parts of the audio will be compressed. Value can range from 1 to 48. Default value: [code]4[/code].
+- :ref:`float<class_float>` **release_ms** - Compressor's delay time to stop reducing the signal after the signal level falls below the threshold. Value can range from 20 to 2000. Default value: [code]250ms[/code].
+- :ref:`String<class_string>` **sidechain** - Reduce the sound level using another audio bus for threshold detection.
+- :ref:`float<class_float>` **threshold** - The level above which compression is applied to the audio. Value can range from -60 to 0. Default value: [code]0[/code].
+
+Description
+-----------
+
+Dynamic range compressor reduces the level of the sound when the amplitude goes over a certain threshold in Decibels. One of the main uses of a compressor is to increase the dynamic range by clipping as little as possible (when sound goes over 0dB).
+
+Compressor has many uses in the mix:
+
+- In the Master bus to compress the whole output (Although a :ref:`AudioEffectLimiter<class_audioeffectlimiter>` is probably better)
+
+- In voice channels to ensure they sound as balanced as possible.
+
+- Sidechained. Sidechained, which can reduce the sound level sidechained with another audio bus for threshold detection.. This technique is very common in video game mixing to download the level of Music/SFX while voices are being heard.
+
+- Accentuates transients by using a wider attack, making effects sound more punchy.
 
 Member Function Description
 ---------------------------

+ 20 - 13
classes/class_audioeffectdelay.rst

@@ -14,7 +14,9 @@ AudioEffectDelay
 Brief Description
 -----------------
 
+Adds a Delay audio effect to an Audio bus. Plays input signal back after a period of time.
 
+Two tap delay and feedback options.
 
 Member Functions
 ----------------
@@ -76,19 +78,24 @@ Member Functions
 Member Variables
 ----------------
 
-- :ref:`float<class_float>` **dry**
-- :ref:`bool<class_bool>` **feedback/active**
-- :ref:`float<class_float>` **feedback/delay_ms**
-- :ref:`float<class_float>` **feedback/level_db**
-- :ref:`float<class_float>` **feedback/lowpass**
-- :ref:`bool<class_bool>` **tap1/active**
-- :ref:`float<class_float>` **tap1/delay_ms**
-- :ref:`float<class_float>` **tap1/level_db**
-- :ref:`float<class_float>` **tap1/pan**
-- :ref:`bool<class_bool>` **tap2/active**
-- :ref:`float<class_float>` **tap2/delay_ms**
-- :ref:`float<class_float>` **tap2/level_db**
-- :ref:`float<class_float>` **tap2/pan**
+- :ref:`float<class_float>` **dry** - Output percent of original sound. At 0, only delayed sounds are output. Value can range from 0 to 1. Default value: [code]1[/code].
+- :ref:`bool<class_bool>` **feedback/active** - If [code]true[/code] feedback is enabled. Default value: [code]false[/code].
+- :ref:`float<class_float>` **feedback/delay_ms** - Feedback delay time in milliseconds. Default value: [code]340[/code].
+- :ref:`float<class_float>` **feedback/level_db** - Sound level for [code]tap1[/code]. Default value: [code]-6 dB[/code].
+- :ref:`float<class_float>` **feedback/lowpass** - Low-pass filter for feedback. Frequencies below the Low Cut value are filtered out of the source signal. Default value: [code]16000[/code].
+- :ref:`bool<class_bool>` **tap1/active** - If [code]true[/code], [code]tap1[/code] will be enabled. Default value: [code]true[/code].
+- :ref:`float<class_float>` **tap1/delay_ms** - [b]Tap1[/b] delay time in milliseconds. Default value: [code]250ms[/code].
+- :ref:`float<class_float>` **tap1/level_db** - Sound level for [code]tap1[/code]. Default value: [code]-6 dB[/code].
+- :ref:`float<class_float>` **tap1/pan** - Pan position for [code]tap1[/code]. Value can range from -1 (fully left) to 1 (fully right). Default value: [code]0.2[/code].
+- :ref:`bool<class_bool>` **tap2/active** - If [code]true[/code], [code]tap2[/code] will be enabled. Default value: [code]true[/code].
+- :ref:`float<class_float>` **tap2/delay_ms** - [b]Tap2[/b] delay time in milliseconds. Default value: [code]500ms[/code].
+- :ref:`float<class_float>` **tap2/level_db** - Sound level for [code]tap2[/code]. Default value: [code]-12 dB[/code].
+- :ref:`float<class_float>` **tap2/pan** - Pan position for [code]tap2[/code]. Value can range from -1 (fully left) to 1 (fully right). Default value: [code]-0.4[/code].
+
+Description
+-----------
+
+Plays input signal back after a period of time. The delayed signal may be played back multiple times to create the sound of a repeating, decaying echo. Delay effects range from a subtle echo effect to a pronounced blending of previous sounds with new sounds.
 
 Member Function Description
 ---------------------------

+ 18 - 9
classes/class_audioeffectdistortion.rst

@@ -14,7 +14,9 @@ AudioEffectDistortion
 Brief Description
 -----------------
 
+Adds a Distortion audio effect to an Audio bus.
 
+Modify the sound to make it dirty.
 
 Member Functions
 ----------------
@@ -44,20 +46,27 @@ Member Functions
 Member Variables
 ----------------
 
-- :ref:`float<class_float>` **drive**
-- :ref:`float<class_float>` **keep_hf_hz**
-- :ref:`int<class_int>` **mode**
-- :ref:`float<class_float>` **post_gain**
-- :ref:`float<class_float>` **pre_gain**
+- :ref:`float<class_float>` **drive** - Distortion power. Value can range from 0 to 1. Default value: [code]0[/code].
+- :ref:`float<class_float>` **keep_hf_hz** - High-pass filter. Frequencies higher than this value will not be affected by the distortion. Value can range from 1 to 20000. Default value: [code]16000[/code].
+- :ref:`int<class_int>` **mode** - Distortion type. Default value: [code]MODE_CLIP[/code].
+- :ref:`float<class_float>` **post_gain** - Increases or decreases the volume after the effect. Value can range from -80 to 24. Default value: [code]0[/code].
+- :ref:`float<class_float>` **pre_gain** - Increases or decreases the volume before the effect. Value can range from -60 to 60. Default value: [code]0[/code].
 
 Numeric Constants
 -----------------
 
-- **MODE_CLIP** = **0**
+- **MODE_CLIP** = **0** --- Digital distortion effect which cuts off peaks at the top and bottom of the waveform.
 - **MODE_ATAN** = **1**
-- **MODE_LOFI** = **2**
-- **MODE_OVERDRIVE** = **3**
-- **MODE_WAVESHAPE** = **4**
+- **MODE_LOFI** = **2** --- Low-resolution digital distortion effect. You can use it to emulate the sound of early digital audio devices.
+- **MODE_OVERDRIVE** = **3** --- Emulates the warm distortion produced by a field effect transistor, which is commonly used in solid-state musical instrument amplifiers.
+- **MODE_WAVESHAPE** = **4** --- Waveshaper distortions are used mainly by electronic musicians to achieve an extra-abrasive sound.
+
+Description
+-----------
+
+Modify the sound and make it dirty. Differents types available : clip, tan, lofi (bit crushing), overdrive, or waveshape.
+
+By distorting the waveform the frequency content change, which will often make the sound "crunchy" or "abrasive". For games, it can simulate sound coming from some saturated device or speaker very efficiently.
 
 Member Function Description
 ---------------------------

+ 13 - 0
classes/class_audioeffecteq.rst

@@ -16,7 +16,9 @@ AudioEffectEQ
 Brief Description
 -----------------
 
+Base class for audio equalizers. Gives you control over frequencies.
 
+Use it to create a custom equalizer if :ref:`AudioEffectEQ6<class_audioeffecteq6>`, :ref:`AudioEffectEQ10<class_audioeffecteq10>` or :ref:`AudioEffectEQ21<class_audioeffecteq21>` don't fit your needs.
 
 Member Functions
 ----------------
@@ -29,6 +31,11 @@ Member Functions
 | void                       | :ref:`set_band_gain_db<class_AudioEffectEQ_set_band_gain_db>`  **(** :ref:`int<class_int>` band_idx, :ref:`float<class_float>` volume_db  **)** |
 +----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------+
 
+Description
+-----------
+
+AudioEffectEQ gives you control over frequencies. Use it to compensate for existing deficiencies in audio. AudioEffectEQ are very useful on the Master Bus to completely master a mix and give it character. They are also very useful when a game is run on a mobile device, to adjust the mix to that kind of speakers (it can be added but disabled when headphones are plugged).
+
 Member Function Description
 ---------------------------
 
@@ -36,12 +43,18 @@ Member Function Description
 
 - :ref:`int<class_int>`  **get_band_count**  **(** **)** const
 
+Returns the number of bands of the equalizer.
+
 .. _class_AudioEffectEQ_get_band_gain_db:
 
 - :ref:`float<class_float>`  **get_band_gain_db**  **(** :ref:`int<class_int>` band_idx  **)** const
 
+Returns the band's gain at the specified index, in dB.
+
 .. _class_AudioEffectEQ_set_band_gain_db:
 
 - void  **set_band_gain_db**  **(** :ref:`int<class_int>` band_idx, :ref:`float<class_float>` volume_db  **)**
 
+Sets band's gain at the specified index, in dB.
+
 

+ 31 - 0
classes/class_audioeffecteq10.rst

@@ -14,5 +14,36 @@ AudioEffectEQ10
 Brief Description
 -----------------
 
+Adds a 10-band equalizer audio effect to an Audio bus. Gives you control over frequencies from 31 Hz to 16000 Hz.
 
+Each frequency can be modulated between -60/+24 dB.
+
+Description
+-----------
+
+Frequency bands :
+
+Band 1 : 31 Hz
+
+Band 2 : 62 Hz
+
+Band 3 : 125 Hz
+
+Band 4 : 250 Hz
+
+Band 5 : 500 Hz
+
+Band 6 : 1000 Hz
+
+Band 7 : 2000 Hz
+
+Band 8 : 4000 Hz
+
+Band 9 : 8000 Hz
+
+Band 10 : 16000 Hz
+
+
+
+See also :ref:`AudioEffectEQ<class_audioeffecteq>`, :ref:`AudioEffectEQ6<class_audioeffecteq6>`, :ref:`AudioEffectEQ21<class_audioeffecteq21>`.
 

+ 53 - 0
classes/class_audioeffecteq21.rst

@@ -14,5 +14,58 @@ AudioEffectEQ21
 Brief Description
 -----------------
 
+Adds a 21-band equalizer audio effect to an Audio bus. Gives you control over frequencies from 22 Hz to 22000 Hz.
 
+Each frequency can be modulated between -60/+24 dB.
+
+Description
+-----------
+
+Frequency bands :
+
+Band 1 : 22 Hz
+
+Band 2 : 32 Hz
+
+Band 3 : 44 Hz
+
+Band 4 : 63 Hz
+
+Band 5 : 90 Hz
+
+Band 6 : 125 Hz
+
+Band 7 : 175 Hz
+
+Band 8 : 250 Hz
+
+Band 9 : 350 Hz
+
+Band 10 : 500 Hz
+
+Band 11 : 700 Hz
+
+Band 12 : 1000 Hz
+
+Band 13 : 1400 Hz
+
+Band 14 : 2000 Hz
+
+Band 15 : 2800 Hz
+
+Band 16 : 4000 Hz
+
+Band 17 : 5600 Hz
+
+Band 18 : 8000 Hz
+
+Band 19 : 11000 Hz
+
+Band 20 : 16000 Hz
+
+Band 21 : 22000 Hz
+
+
+
+See also :ref:`AudioEffectEQ<class_audioeffecteq>`, :ref:`AudioEffectEQ6<class_audioeffecteq6>`, :ref:`AudioEffectEQ10<class_audioeffecteq10>`.
 

+ 23 - 0
classes/class_audioeffecteq6.rst

@@ -14,5 +14,28 @@ AudioEffectEQ6
 Brief Description
 -----------------
 
+Adds a 6-band equalizer audio effect to an Audio bus. Gives you control over frequencies from 32 Hz to 10000 Hz.
 
+Each frequency can be modulated between -60/+24 dB.
+
+Description
+-----------
+
+Frequency bands :
+
+Band 1 : 32 Hz
+
+Band 2 : 100 Hz
+
+Band 3 : 320 Hz
+
+Band 4 : 1000 Hz
+
+Band 5 : 3200 Hz
+
+Band 6 : 10000 Hz
+
+
+
+See also :ref:`AudioEffectEQ<class_audioeffecteq>`, :ref:`AudioEffectEQ10<class_audioeffecteq10>`, :ref:`AudioEffectEQ21<class_audioeffecteq21>`.
 

+ 11 - 4
classes/class_audioeffectlimiter.rst

@@ -14,7 +14,7 @@ AudioEffectLimiter
 Brief Description
 -----------------
 
-
+Adds a soft clip Limiter audio effect to an Audio bus.
 
 Member Functions
 ----------------
@@ -40,10 +40,17 @@ Member Functions
 Member Variables
 ----------------
 
-- :ref:`float<class_float>` **ceiling_db**
-- :ref:`float<class_float>` **soft_clip_db**
+- :ref:`float<class_float>` **ceiling_db** - The waveform's maximum allowed value. Value can range from -20 to -0.1. Default value: [code]-0.1dB[/code].
+- :ref:`float<class_float>` **soft_clip_db** - Applies a gain to the limited waves. Value can range from 0 to 6. Default value: [code]2dB[/code].
 - :ref:`float<class_float>` **soft_clip_ratio**
-- :ref:`float<class_float>` **threshold_db**
+- :ref:`float<class_float>` **threshold_db** - Threshold from which the limiter begins to be active. Value can range from -30 to 0. Default value: [code]0dB[/code].
+
+Description
+-----------
+
+A limiter is similar to a compressor, but it’s less flexible and designed to disallow sound going over a given dB threshold. Adding one in the Master Bus is always recommended to reduce the effects of clipping.
+
+Soft clipping starts to reduce the peaks a little below the threshold level and progressively increases its effect as the input level increases such that the threshold is never exceeded.
 
 Member Function Description
 ---------------------------

+ 7 - 2
classes/class_audioeffectpanner.rst

@@ -14,7 +14,7 @@ AudioEffectPanner
 Brief Description
 -----------------
 
-
+Adds a Panner audio effect to an Audio bus. Pans sound left or right.
 
 Member Functions
 ----------------
@@ -28,7 +28,12 @@ Member Functions
 Member Variables
 ----------------
 
-- :ref:`float<class_float>` **pan**
+- :ref:`float<class_float>` **pan** - Pan position. Value can range from -1 (fully left) to 1 (fully right).
+
+Description
+-----------
+
+Determines how much of an audio signal is sent to the left and right buses.
 
 Member Function Description
 ---------------------------

+ 12 - 5
classes/class_audioeffectphaser.rst

@@ -14,7 +14,9 @@ AudioEffectPhaser
 Brief Description
 -----------------
 
+Adds a Phaser audio effect to an Audio bus.
 
+Combines the original signal with a copy that is slightly out of phase with the original.
 
 Member Functions
 ----------------
@@ -44,11 +46,16 @@ Member Functions
 Member Variables
 ----------------
 
-- :ref:`float<class_float>` **depth**
-- :ref:`float<class_float>` **feedback**
-- :ref:`float<class_float>` **range_max_hz**
-- :ref:`float<class_float>` **range_min_hz**
-- :ref:`float<class_float>` **rate_hz**
+- :ref:`float<class_float>` **depth** - Governs how high the filter frequencies sweep. Low value will primarily affect bass frequencies. High value can sweep high into the treble. Value can range from 0.1 to 4. Default value: [code]1[/code].
+- :ref:`float<class_float>` **feedback** - Output percent of modified sound. Value can range from 0.1 to 0.9. Default value: [code]0.7[/code].
+- :ref:`float<class_float>` **range_max_hz** - Determines the maximum frequency affected by the LFO modulations. Value can range from 10 to 10000. Default value: [code]1600hz[/code].
+- :ref:`float<class_float>` **range_min_hz** - Determines the minimum frequency affected by the LFO modulations. Value can range from 10 to 10000. Default value: [code]440hz[/code].
+- :ref:`float<class_float>` **rate_hz** - Adjusts the rate at which the effect sweeps up and down across the frequency range.
+
+Description
+-----------
+
+Combines phase-shifted signals with the original signal. The movement of the phase-shifted signals is controlled using a Low Frequency Oscillator.
 
 Member Function Description
 ---------------------------

+ 8 - 1
classes/class_audioeffectpitchshift.rst

@@ -14,7 +14,9 @@ AudioEffectPitchShift
 Brief Description
 -----------------
 
+Adds a Pitch shift audio effect to an Audio bus.
 
+Raises or lowers the pitch of original sound.
 
 Member Functions
 ----------------
@@ -28,7 +30,12 @@ Member Functions
 Member Variables
 ----------------
 
-- :ref:`float<class_float>` **pitch_scale**
+- :ref:`float<class_float>` **pitch_scale** - Pitch value. Can range from 0 (-1 octave) to 16 (+16 octaves).
+
+Description
+-----------
+
+Allows modulation of pitch independently of tempo. All frequencies can be increased/decreased with minimal effect on transients.
 
 Member Function Description
 ---------------------------

+ 15 - 8
classes/class_audioeffectreverb.rst

@@ -14,7 +14,9 @@ AudioEffectReverb
 Brief Description
 -----------------
 
+Adds a Reverb audio effect to an Audio bus.
 
+Simulates the sound of acoustic environments such as rooms, concert halls, caverns, or an open spaces.
 
 Member Functions
 ----------------
@@ -56,14 +58,19 @@ Member Functions
 Member Variables
 ----------------
 
-- :ref:`float<class_float>` **damping**
-- :ref:`float<class_float>` **dry**
-- :ref:`float<class_float>` **hipass**
-- :ref:`float<class_float>` **predelay_feedback**
-- :ref:`float<class_float>` **predelay_msec**
-- :ref:`float<class_float>` **room_size**
-- :ref:`float<class_float>` **spread**
-- :ref:`float<class_float>` **wet**
+- :ref:`float<class_float>` **damping** - Widens or narrows the stereo image of the reverb tail. 1 means fully widens. Value can range from 0 to 1. Default value: [code]1[/code].
+- :ref:`float<class_float>` **dry** - Output percent of original sound. At 0, only modified sound is outputted. Value can range from 0 to 1. Default value: [code]1[/code].
+- :ref:`float<class_float>` **hipass** - High-pass filter passes signals with a frequency higher than a certain cutoff frequency and attenuates signals with frequencies lower than the cutoff frequency. Value can range from 0 to 1. Default value: [code]0[/code].
+- :ref:`float<class_float>` **predelay_feedback** - Output percent of predelay. Value can range from 0 to 1. Default value: [code]1[/code].
+- :ref:`float<class_float>` **predelay_msec** - Time between the original signal and the early reflections of the reverb signal. Default value: [code]150ms[/code].
+- :ref:`float<class_float>` **room_size** - Dimensions of simulated room. Bigger means more echoes. Value can range from 0 to 1. Default value: [code]0.8[/code].
+- :ref:`float<class_float>` **spread** - Defines how reflective the imaginary room's walls are. Value can range from 0 to 1. Default value: [code]1[/code].
+- :ref:`float<class_float>` **wet** - Output percent of modified sound. At 0, only original sound is outputted. Value can range from 0 to 1. Default value: [code]0.5[/code].
+
+Description
+-----------
+
+Simulates rooms of different sizes. Its parameters can be adjusted to simulate the sound of a specific room.
 
 Member Function Description
 ---------------------------

+ 71 - 3
classes/class_audioserver.rst

@@ -91,13 +91,15 @@ Signals
 -------
 
 -  **bus_layout_changed**  **(** **)**
+Emitted when the :ref:`AudioBusLayout<class_audiobuslayout>` changes.
+
 
 Numeric Constants
 -----------------
 
-- **SPEAKER_MODE_STEREO** = **0**
-- **SPEAKER_SURROUND_51** = **2**
-- **SPEAKER_SURROUND_71** = **3**
+- **SPEAKER_MODE_STEREO** = **0** --- Two or fewer speakers are detected.
+- **SPEAKER_SURROUND_51** = **2** --- A 5.1 channel surround setup detected.
+- **SPEAKER_SURROUND_71** = **3** --- A 7.1 channel surround setup detected.
 
 Description
 -----------
@@ -111,132 +113,198 @@ Member Function Description
 
 - void  **add_bus**  **(** :ref:`int<class_int>` at_position=-1  **)**
 
+Adds a bus at ``at_position``.
+
 .. _class_AudioServer_add_bus_effect:
 
 - void  **add_bus_effect**  **(** :ref:`int<class_int>` bus_idx, :ref:`AudioEffect<class_audioeffect>` effect, :ref:`int<class_int>` at_position=-1  **)**
 
+Adds an :ref:`AudioEffect<class_audioeffect>` effect to the bus ``bus_idx`` at ``at_position``.
+
 .. _class_AudioServer_generate_bus_layout:
 
 - :ref:`AudioBusLayout<class_audiobuslayout>`  **generate_bus_layout**  **(** **)** const
 
+Generates an :ref:`AudioBusLayout<class_audiobuslayout>` using the available busses and effects.
+
 .. _class_AudioServer_get_bus_count:
 
 - :ref:`int<class_int>`  **get_bus_count**  **(** **)** const
 
+Returns the number of available busses.
+
 .. _class_AudioServer_get_bus_effect:
 
 - :ref:`AudioEffect<class_audioeffect>`  **get_bus_effect**  **(** :ref:`int<class_int>` bus_idx, :ref:`int<class_int>` effect_idx  **)**
 
+Returns the :ref:`AudioEffect<class_audioeffect>` at position ``effect_idx`` in bus ``bus_idx``.
+
 .. _class_AudioServer_get_bus_effect_count:
 
 - :ref:`int<class_int>`  **get_bus_effect_count**  **(** :ref:`int<class_int>` bus_idx  **)**
 
+Returns the number of effects on the bus at ``bus_idx``.
+
 .. _class_AudioServer_get_bus_index:
 
 - :ref:`int<class_int>`  **get_bus_index**  **(** :ref:`String<class_string>` bus_name  **)** const
 
+Returns the index of the bus with the name ``bus_name``.
+
 .. _class_AudioServer_get_bus_name:
 
 - :ref:`String<class_string>`  **get_bus_name**  **(** :ref:`int<class_int>` bus_idx  **)** const
 
+Returns the name of the bus with the index ``bus_idx``.
+
 .. _class_AudioServer_get_bus_peak_volume_left_db:
 
 - :ref:`float<class_float>`  **get_bus_peak_volume_left_db**  **(** :ref:`int<class_int>` bus_idx, :ref:`int<class_int>` channel  **)** const
 
+Returns the peak volume of the left speaker at bus index ``bus_idx`` and channel index ``channel``.
+
 .. _class_AudioServer_get_bus_peak_volume_right_db:
 
 - :ref:`float<class_float>`  **get_bus_peak_volume_right_db**  **(** :ref:`int<class_int>` bus_idx, :ref:`int<class_int>` channel  **)** const
 
+Returns the peak volume of the right speaker at bus index ``bus_idx`` and channel index ``channel``.
+
 .. _class_AudioServer_get_bus_send:
 
 - :ref:`String<class_string>`  **get_bus_send**  **(** :ref:`int<class_int>` bus_idx  **)** const
 
+Returns the name of the bus that the bus at index ``bus_idx`` sends to.
+
 .. _class_AudioServer_get_bus_volume_db:
 
 - :ref:`float<class_float>`  **get_bus_volume_db**  **(** :ref:`int<class_int>` bus_idx  **)** const
 
+Returns the volume of the bus at index ``bus_idx`` in dB.
+
 .. _class_AudioServer_get_mix_rate:
 
 - :ref:`float<class_float>`  **get_mix_rate**  **(** **)** const
 
+Returns the sample rate at the output of the audioserver.
+
 .. _class_AudioServer_get_speaker_mode:
 
 - :ref:`int<class_int>`  **get_speaker_mode**  **(** **)** const
 
+Returns the speaker configuration.
+
 .. _class_AudioServer_is_bus_bypassing_effects:
 
 - :ref:`bool<class_bool>`  **is_bus_bypassing_effects**  **(** :ref:`int<class_int>` bus_idx  **)** const
 
+If ``true`` the bus at index ``bus_idx`` is bypassing effects.
+
 .. _class_AudioServer_is_bus_effect_enabled:
 
 - :ref:`bool<class_bool>`  **is_bus_effect_enabled**  **(** :ref:`int<class_int>` bus_idx, :ref:`int<class_int>` effect_idx  **)** const
 
+If ``true`` the effect at index ``effect_idx`` on the bus at index ``bus_idx`` is enabled.
+
 .. _class_AudioServer_is_bus_mute:
 
 - :ref:`bool<class_bool>`  **is_bus_mute**  **(** :ref:`int<class_int>` bus_idx  **)** const
 
+If ``true`` the bus at index ``bus_idx`` is muted.
+
 .. _class_AudioServer_is_bus_solo:
 
 - :ref:`bool<class_bool>`  **is_bus_solo**  **(** :ref:`int<class_int>` bus_idx  **)** const
 
+If ``true`` the bus at index ``bus_idx`` is in solo mode.
+
 .. _class_AudioServer_lock:
 
 - void  **lock**  **(** **)**
 
+Locks the audio drivers mainloop. Remember to unlock it afterwards.
+
 .. _class_AudioServer_move_bus:
 
 - void  **move_bus**  **(** :ref:`int<class_int>` index, :ref:`int<class_int>` to_index  **)**
 
+Moves the bus from index ``index`` to index ``to_index``.
+
 .. _class_AudioServer_remove_bus:
 
 - void  **remove_bus**  **(** :ref:`int<class_int>` index  **)**
 
+Removes the bus at index ``index``.
+
 .. _class_AudioServer_remove_bus_effect:
 
 - void  **remove_bus_effect**  **(** :ref:`int<class_int>` bus_idx, :ref:`int<class_int>` effect_idx  **)**
 
+Removes the effect at index ``effect_idx`` from the bus at index ``bus_idx``.
+
 .. _class_AudioServer_set_bus_bypass_effects:
 
 - void  **set_bus_bypass_effects**  **(** :ref:`int<class_int>` bus_idx, :ref:`bool<class_bool>` enable  **)**
 
+If ``true`` the bus at index ``bus_idx`` is bypassing effects.
+
 .. _class_AudioServer_set_bus_count:
 
 - void  **set_bus_count**  **(** :ref:`int<class_int>` amount  **)**
 
+Adds and removes busses to make the number of busses match ``amount``.
+
 .. _class_AudioServer_set_bus_effect_enabled:
 
 - void  **set_bus_effect_enabled**  **(** :ref:`int<class_int>` bus_idx, :ref:`int<class_int>` effect_idx, :ref:`bool<class_bool>` enabled  **)**
 
+If ``true`` the effect at index ``effect_idx`` on the bus at index ``bus_idx`` is enabled.
+
 .. _class_AudioServer_set_bus_layout:
 
 - void  **set_bus_layout**  **(** :ref:`AudioBusLayout<class_audiobuslayout>` bus_layout  **)**
 
+Overwrites the currently used :ref:`AudioBusLayout<class_audiobuslayout>`.
+
 .. _class_AudioServer_set_bus_mute:
 
 - void  **set_bus_mute**  **(** :ref:`int<class_int>` bus_idx, :ref:`bool<class_bool>` enable  **)**
 
+If ``true`` the bus at index ``bus_idx`` is muted.
+
 .. _class_AudioServer_set_bus_name:
 
 - void  **set_bus_name**  **(** :ref:`int<class_int>` bus_idx, :ref:`String<class_string>` name  **)**
 
+Sets the name of the bus at index ``bus_idx`` to ``name``.
+
 .. _class_AudioServer_set_bus_send:
 
 - void  **set_bus_send**  **(** :ref:`int<class_int>` bus_idx, :ref:`String<class_string>` send  **)**
 
+Connects the output of the bus at ``bus_idx`` to the bus named ``send[/send].
+
 .. _class_AudioServer_set_bus_solo:
 
 - void  **set_bus_solo**  **(** :ref:`int<class_int>` bus_idx, :ref:`bool<class_bool>` enable  **)**
 
+If ``true`` the bus at index ``bus_idx`` is in solo mode.
+
 .. _class_AudioServer_set_bus_volume_db:
 
 - void  **set_bus_volume_db**  **(** :ref:`int<class_int>` bus_idx, :ref:`float<class_float>` volume_db  **)**
 
+Sets the volume of the bus at index ``bus_idx`` to ``volume_db``.
+
 .. _class_AudioServer_swap_bus_effects:
 
 - void  **swap_bus_effects**  **(** :ref:`int<class_int>` bus_idx, :ref:`int<class_int>` effect_idx, :ref:`int<class_int>` by_effect_idx  **)**
 
+Swaps the position of two effects in bus ``bus_idx``.
+
 .. _class_AudioServer_unlock:
 
 - void  **unlock**  **(** **)**
 
+Unlocks the audiodriver's main loop. After locking it always unlock it.
+
 

+ 5 - 0
classes/class_audiostreamplayback.rst

@@ -14,5 +14,10 @@ AudioStreamPlayback
 Brief Description
 -----------------
 
+Meta class for playing back audio.
 
+Description
+-----------
+
+Can play, loop, pause a scroll through Audio. See :ref:`AudioStream<class_audiostream>` and :ref:`AudioStreamOGGVorbis<class_audiostreamoggvorbis>` for usage.
 

+ 11 - 9
classes/class_audiostreamplayer.rst

@@ -24,7 +24,7 @@ Member Functions
 +----------------------------------------+------------------------------------------------------------------------------------------------------------------+
 | :ref:`int<class_int>`                  | :ref:`get_mix_target<class_AudioStreamPlayer_get_mix_target>`  **(** **)** const                                 |
 +----------------------------------------+------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`              | :ref:`get_position<class_AudioStreamPlayer_get_position>`  **(** **)**                                           |
+| :ref:`float<class_float>`              | :ref:`get_playback_position<class_AudioStreamPlayer_get_playback_position>`  **(** **)**                         |
 +----------------------------------------+------------------------------------------------------------------------------------------------------------------+
 | :ref:`AudioStream<class_audiostream>`  | :ref:`get_stream<class_AudioStreamPlayer_get_stream>`  **(** **)** const                                         |
 +----------------------------------------+------------------------------------------------------------------------------------------------------------------+
@@ -61,19 +61,19 @@ Emitted when the audio stops playing.
 Member Variables
 ----------------
 
-- :ref:`bool<class_bool>` **autoplay** - If [code]true[/code], audio plays when added to scene tree. Default value: [code]false[/code].
+- :ref:`bool<class_bool>` **autoplay** - If [code]true[/code] audio plays when added to scene tree. Default value: [code]false[/code].
 - :ref:`String<class_string>` **bus** - Bus on which this audio is playing.
-- :ref:`int<class_int>` **mix_target**
-- :ref:`bool<class_bool>` **playing** - If [code]true[/code], audio is playing.
+- :ref:`int<class_int>` **mix_target** - If the audio configuration has more than two speakers, this sets the target channels. See [code]MIX_TARGET_*[/code] constants.
+- :ref:`bool<class_bool>` **playing** - If [code]true[/code] audio is playing.
 - :ref:`AudioStream<class_audiostream>` **stream** - The [AudioStream] object to be played.
 - :ref:`float<class_float>` **volume_db** - Volume of sound, in dB.
 
 Numeric Constants
 -----------------
 
-- **MIX_TARGET_STEREO** = **0**
-- **MIX_TARGET_SURROUND** = **1**
-- **MIX_TARGET_CENTER** = **2**
+- **MIX_TARGET_STEREO** = **0** --- The audio will be played only on the first channel.
+- **MIX_TARGET_SURROUND** = **1** --- The audio will be played on all surround channels.
+- **MIX_TARGET_CENTER** = **2** --- The audio will be played on the second channel, which is usually the center.
 
 Description
 -----------
@@ -91,9 +91,11 @@ Member Function Description
 
 - :ref:`int<class_int>`  **get_mix_target**  **(** **)** const
 
-.. _class_AudioStreamPlayer_get_position:
+.. _class_AudioStreamPlayer_get_playback_position:
 
-- :ref:`float<class_float>`  **get_position**  **(** **)**
+- :ref:`float<class_float>`  **get_playback_position**  **(** **)**
+
+Returns the position in the :ref:`AudioStream<class_audiostream>`.
 
 .. _class_AudioStreamPlayer_get_stream:
 

+ 10 - 2
classes/class_audiostreamplayer2d.rst

@@ -28,6 +28,8 @@ Member Functions
 +----------------------------------------+--------------------------------------------------------------------------------------------------------------------+
 | :ref:`float<class_float>`              | :ref:`get_max_distance<class_AudioStreamPlayer2D_get_max_distance>`  **(** **)** const                             |
 +----------------------------------------+--------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`              | :ref:`get_playback_position<class_AudioStreamPlayer2D_get_playback_position>`  **(** **)**                         |
++----------------------------------------+--------------------------------------------------------------------------------------------------------------------+
 | :ref:`AudioStream<class_audiostream>`  | :ref:`get_stream<class_AudioStreamPlayer2D_get_stream>`  **(** **)** const                                         |
 +----------------------------------------+--------------------------------------------------------------------------------------------------------------------+
 | :ref:`float<class_float>`              | :ref:`get_volume_db<class_AudioStreamPlayer2D_get_volume_db>`  **(** **)** const                                   |
@@ -69,10 +71,10 @@ Member Variables
 
 - :ref:`int<class_int>` **area_mask** - Areas in which this sound plays.
 - :ref:`float<class_float>` **attenuation** - Dampens audio over distance with this as an exponent.
-- :ref:`bool<class_bool>` **autoplay** - If [code]true[/code], audio plays when added to scene tree. Default value: [code]false[/code].
+- :ref:`bool<class_bool>` **autoplay** - If [code]true[/code] audio plays when added to scene tree. Default value: [code]false[/code].
 - :ref:`String<class_string>` **bus** - Bus on which this audio is playing.
 - :ref:`float<class_float>` **max_distance** - Maximum distance from which audio is still hearable.
-- :ref:`bool<class_bool>` **playing** - If [code]true[/code], audio is playing.
+- :ref:`bool<class_bool>` **playing** - If [code]true[/code] audio is playing.
 - :ref:`AudioStream<class_audiostream>` **stream** - The [AudioStream] object to be played.
 - :ref:`float<class_float>` **volume_db** - Base volume without dampening.
 
@@ -100,6 +102,12 @@ Member Function Description
 
 - :ref:`float<class_float>`  **get_max_distance**  **(** **)** const
 
+.. _class_AudioStreamPlayer2D_get_playback_position:
+
+- :ref:`float<class_float>`  **get_playback_position**  **(** **)**
+
+Returns the position in the :ref:`AudioStream<class_audiostream>`.
+
 .. _class_AudioStreamPlayer2D_get_stream:
 
 - :ref:`AudioStream<class_audiostream>`  **get_stream**  **(** **)** const

+ 8 - 6
classes/class_audiostreamplayer3d.rst

@@ -42,7 +42,7 @@ Member Functions
 +----------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`int<class_int>`                  | :ref:`get_out_of_range_mode<class_AudioStreamPlayer3D_get_out_of_range_mode>`  **(** **)** const                                                               |
 +----------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`              | :ref:`get_position<class_AudioStreamPlayer3D_get_position>`  **(** **)**                                                                                       |
+| :ref:`float<class_float>`              | :ref:`get_playback_position<class_AudioStreamPlayer3D_get_playback_position>`  **(** **)**                                                                     |
 +----------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`AudioStream<class_audiostream>`  | :ref:`get_stream<class_AudioStreamPlayer3D_get_stream>`  **(** **)** const                                                                                     |
 +----------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
@@ -109,11 +109,11 @@ Member Variables
 - :ref:`float<class_float>` **attenuation_filter_cutoff_hz** - Dampens audio above this frequency, in Hz.
 - :ref:`float<class_float>` **attenuation_filter_db** - Amount how much the filter affects the loudness, in dB.
 - :ref:`int<class_int>` **attenuation_model** - Decides if audio should get quieter with distance linearly, quadratically or logarithmically.
-- :ref:`bool<class_bool>` **autoplay** - If [code]true[/code], audio plays audio plays when added to scene tree. Default value: [code]false[/code].
+- :ref:`bool<class_bool>` **autoplay** - If [code]true[/code] audio plays when added to scene tree. Default value: [code]false[/code].
 - :ref:`String<class_string>` **bus** - Bus on which this audio is playing.
 - :ref:`int<class_int>` **doppler_tracking** - Decides in which step the Doppler effect should be calculated.
 - :ref:`float<class_float>` **emission_angle_degrees** - The angle in which the audio reaches cameras undampened.
-- :ref:`bool<class_bool>` **emission_angle_enabled** - If [code]true[/code], the audio should be dampened according to the direction of the sound.
+- :ref:`bool<class_bool>` **emission_angle_enabled** - If [code]true[/code] the audio should be dampened according to the direction of the sound.
 - :ref:`float<class_float>` **emission_angle_filter_attenuation_db** - dampens audio if camera is outside of 'emission_angle_degrees' and 'emission_angle_enabled' is set by this factor, in dB.
 - :ref:`float<class_float>` **max_db** - Sets the absolute maximum of the soundlevel, in dB.
 - :ref:`float<class_float>` **max_distance** - Sets the distance from wich the 'out_of_range_mode' takes effect. Has no effect if set to 0.
@@ -133,7 +133,7 @@ Numeric Constants
 - **OUT_OF_RANGE_PAUSE** = **1** --- Pause this audio when it gets out of range.
 - **DOPPLER_TRACKING_DISABLED** = **0** --- Disables doppler tracking.
 - **DOPPLER_TRACKING_IDLE_STEP** = **1** --- Executes doppler trackin in idle step.
-- **DOPPLER_TRACKING_FIXED_STEP** = **2** --- Executes doppler tracking in fixed step.
+- **DOPPLER_TRACKING_PHYSICS_STEP** = **2** --- Executes doppler tracking in physics step.
 
 Description
 -----------
@@ -187,9 +187,11 @@ Member Function Description
 
 - :ref:`int<class_int>`  **get_out_of_range_mode**  **(** **)** const
 
-.. _class_AudioStreamPlayer3D_get_position:
+.. _class_AudioStreamPlayer3D_get_playback_position:
 
-- :ref:`float<class_float>`  **get_position**  **(** **)**
+- :ref:`float<class_float>`  **get_playback_position**  **(** **)**
+
+Returns the position in the :ref:`AudioStream<class_audiostream>`.
 
 .. _class_AudioStreamPlayer3D_get_stream:
 

+ 6 - 6
classes/class_backbuffercopy.rst

@@ -32,15 +32,15 @@ Member Functions
 Member Variables
 ----------------
 
-- :ref:`int<class_int>` **copy_mode**
-- :ref:`Rect2<class_rect2>` **rect**
+- :ref:`int<class_int>` **copy_mode** - Buffer mode. See [code]COPY_MODE_*[/code] constants.
+- :ref:`Rect2<class_rect2>` **rect** - The area covered by the BackBufferCopy. Only used if [code]copy_mode[/code] is [code]COPY_MODE_RECT[/code].
 
 Numeric Constants
 -----------------
 
 - **COPY_MODE_DISABLED** = **0** --- Disables the buffering mode. This means the BackBufferCopy node will directly use the portion of screen it covers.
-- **COPY_MODE_RECT** = **1** --- Sets the copy mode to a region.
-- **COPY_MODE_VIEWPORT** = **2** --- Sets the copy mode to the entire screen.
+- **COPY_MODE_RECT** = **1** --- BackBufferCopy buffers a rectangular region.
+- **COPY_MODE_VIEWPORT** = **2** --- BackBufferCopy buffers the entire screen.
 
 Description
 -----------
@@ -54,7 +54,7 @@ Member Function Description
 
 - :ref:`int<class_int>`  **get_copy_mode**  **(** **)** const
 
-Return the copy mode currently applied to the BackBufferCopy (refer to constants section).
+Return the copy mode currently applied to the BackBufferCopy. See ``COPY_MODE\_\*`` constants.
 
 .. _class_BackBufferCopy_get_rect:
 
@@ -66,7 +66,7 @@ Return the area covered by the BackBufferCopy.
 
 - void  **set_copy_mode**  **(** :ref:`int<class_int>` copy_mode  **)**
 
-Set the copy mode of the BackBufferCopy (refer to constants section).
+Set the copy mode of the BackBufferCopy. See ``COPY_MODE\_\*`` constants.
 
 .. _class_BackBufferCopy_set_rect:
 

+ 3 - 1
classes/class_bitmap.rst

@@ -38,7 +38,9 @@ Member Functions
 Member Variables
 ----------------
 
-- :ref:`Dictionary<class_dictionary>` **data**
+- :ref:`Dictionary<class_dictionary>` **data** - Returns a [Dictionary] with two keys :
+			[code]data[/code] : [PoolByteArray] with [code]true[/code]/[code]false[/code] [code]BitMap[/code] data.
+			[code]size[/code] : The [code]Bitmap[/code]'s size.
 
 Description
 -----------

+ 45 - 9
classes/class_camera.rst

@@ -86,11 +86,11 @@ Numeric Constants
 
 - **PROJECTION_PERSPECTIVE** = **0** --- Perspective Projection (object's size on the screen becomes smaller when far away).
 - **PROJECTION_ORTHOGONAL** = **1** --- Orthogonal Projection (objects remain the same size on the screen no matter how far away they are).
-- **KEEP_WIDTH** = **0**
-- **KEEP_HEIGHT** = **1**
-- **DOPPLER_TRACKING_DISABLED** = **0**
-- **DOPPLER_TRACKING_IDLE_STEP** = **1**
-- **DOPPLER_TRACKING_FIXED_STEP** = **2**
+- **KEEP_WIDTH** = **0** --- Try to keep the aspect ratio when scaling the Camera's viewport to the screen. If not possible, preserve the viewport's width by changing the height. Height is ``sizey`` for orthographic projection, ``fovy`` for perspective projection.
+- **KEEP_HEIGHT** = **1** --- Try to keep the aspect ratio when scaling the Camera's viewport to the screen. If not possible, preserve the viewport's height by changing the width. Width is ``sizex`` for orthographic projection, ``fovx`` for perspective projection.
+- **DOPPLER_TRACKING_DISABLED** = **0** --- Disable Doppler effect simulation (default).
+- **DOPPLER_TRACKING_IDLE_STEP** = **1** --- Simulate Doppler effect by tracking positions of objects that are changed in ``_process``. Changes in the relative velocity of this Camera compared to those objects affect how Audio is perceived (changing the Audio's ``pitch shift``).
+- **DOPPLER_TRACKING_PHYSICS_STEP** = **2** --- Simulate Doppler effect by tracking positions of objects that are changed in ``_physics_process``. Changes in the relative velocity of this Camera compared to those objects affect how Audio is perceived (changing the Audio's ``pitch shift``).
 
 Description
 -----------
@@ -104,6 +104,8 @@ Member Function Description
 
 - void  **clear_current**  **(** **)**
 
+If this is the current Camera, remove it from being current. If it is inside the node tree, request to make the next Camera current, if any.
+
 .. _class_Camera_get_camera_transform:
 
 - :ref:`Transform<class_transform>`  **get_camera_transform**  **(** **)** const
@@ -114,6 +116,8 @@ Get the camera transform. Subclassed cameras (such as CharacterCamera) may provi
 
 - :ref:`int<class_int>`  **get_cull_mask**  **(** **)** const
 
+Returns the culling mask, describing which 3D render layers are rendered by this Camera.
+
 .. _class_Camera_get_doppler_tracking:
 
 - :ref:`int<class_int>`  **get_doppler_tracking**  **(** **)** const
@@ -122,22 +126,32 @@ Get the camera transform. Subclassed cameras (such as CharacterCamera) may provi
 
 - :ref:`Environment<class_environment>`  **get_environment**  **(** **)** const
 
+Returns the :ref:`Environment<class_environment>` used by this Camera.
+
 .. _class_Camera_get_fov:
 
 - :ref:`float<class_float>`  **get_fov**  **(** **)** const
 
+Returns the *FOV* Y angle in degrees (FOV means Field of View).
+
 .. _class_Camera_get_h_offset:
 
 - :ref:`float<class_float>`  **get_h_offset**  **(** **)** const
 
+Returns the horizontal (X) offset of the Camera viewport.
+
 .. _class_Camera_get_keep_aspect_mode:
 
 - :ref:`int<class_int>`  **get_keep_aspect_mode**  **(** **)** const
 
+Returns the current mode for keeping the aspect ratio. See ``KEEP\_\*`` constants.
+
 .. _class_Camera_get_projection:
 
 - :ref:`int<class_int>`  **get_projection**  **(** **)** const
 
+Returns the Camera's projection. See PROJECTION\_\* constants.
+
 .. _class_Camera_get_size:
 
 - :ref:`float<class_float>`  **get_size**  **(** **)** const
@@ -146,24 +160,32 @@ Get the camera transform. Subclassed cameras (such as CharacterCamera) may provi
 
 - :ref:`float<class_float>`  **get_v_offset**  **(** **)** const
 
+Returns the vertical (Y) offset of the Camera viewport.
+
 .. _class_Camera_get_zfar:
 
 - :ref:`float<class_float>`  **get_zfar**  **(** **)** const
 
+Returns the far clip plane in world space units.
+
 .. _class_Camera_get_znear:
 
 - :ref:`float<class_float>`  **get_znear**  **(** **)** const
 
+Returns the near clip plane in world space units.
+
 .. _class_Camera_is_current:
 
 - :ref:`bool<class_bool>`  **is_current**  **(** **)** const
 
-Return whether the Camera is the current one in the :ref:`Viewport<class_viewport>`, or plans to become current (if outside the scene tree).
+Returns ``true`` if the Camera is the current one in the :ref:`Viewport<class_viewport>`, or plans to become current (if outside the scene tree).
 
 .. _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.
+
 .. _class_Camera_make_current:
 
 - void  **make_current**  **(** **)**
@@ -178,38 +200,50 @@ Make this camera the current Camera for the :ref:`Viewport<class_viewport>` (see
 
 - :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.
+
 .. _class_Camera_project_ray_normal:
 
 - :ref:`Vector3<class_vector3>`  **project_ray_normal**  **(** :ref:`Vector2<class_vector2>` screen_point  **)** const
 
-Return a normal vector in worldspace, that is the result of projecting a point on the :ref:`Viewport<class_viewport>` rectangle by the camera projection. This is useful for casting rays in the form of (origin,normal) for object intersection or picking.
+Returns a normal vector in worldspace, that is the result of projecting a point on the :ref:`Viewport<class_viewport>` rectangle by the camera projection. This is useful for casting rays in the form of (origin, normal) for object intersection or picking.
 
 .. _class_Camera_project_ray_origin:
 
 - :ref:`Vector3<class_vector3>`  **project_ray_origin**  **(** :ref:`Vector2<class_vector2>` screen_point  **)** const
 
-Return a 3D position in worldspace, that is the result of projecting a point on the :ref:`Viewport<class_viewport>` rectangle by the camera projection. This is useful for casting rays in the form of (origin,normal) for object intersection or picking.
+Returns a 3D position in worldspace, that is the result of projecting a point on the :ref:`Viewport<class_viewport>` rectangle by the camera projection. This is useful for casting rays in the form of (origin, normal) for object intersection or picking.
 
 .. _class_Camera_set_cull_mask:
 
 - void  **set_cull_mask**  **(** :ref:`int<class_int>` mask  **)**
 
+Sets the cull mask, describing which 3D render layers are rendered by this Camera.
+
 .. _class_Camera_set_doppler_tracking:
 
 - void  **set_doppler_tracking**  **(** :ref:`int<class_int>` mode  **)**
 
+Changes Doppler effect tracking. See ``DOPPLER\_\*`` constants.
+
 .. _class_Camera_set_environment:
 
 - void  **set_environment**  **(** :ref:`Environment<class_environment>` env  **)**
 
+Sets the :ref:`Environment<class_environment>` to use for this Camera.
+
 .. _class_Camera_set_h_offset:
 
 - void  **set_h_offset**  **(** :ref:`float<class_float>` ofs  **)**
 
+Sets the horizontal (X) offset of the Camera viewport.
+
 .. _class_Camera_set_keep_aspect_mode:
 
 - void  **set_keep_aspect_mode**  **(** :ref:`int<class_int>` mode  **)**
 
+Sets the mode for keeping the aspect ratio. See ``KEEP\_\*`` constants.
+
 .. _class_Camera_set_orthogonal:
 
 - void  **set_orthogonal**  **(** :ref:`float<class_float>` size, :ref:`float<class_float>` z_near, :ref:`float<class_float>` z_far  **)**
@@ -226,10 +260,12 @@ Set the camera projection to perspective mode, by specifying a *FOV* Y angle in
 
 - void  **set_v_offset**  **(** :ref:`float<class_float>` ofs  **)**
 
+Sets the vertical (Y) offset of the Camera viewport.
+
 .. _class_Camera_unproject_position:
 
 - :ref:`Vector2<class_vector2>`  **unproject_position**  **(** :ref:`Vector3<class_vector3>` world_point  **)** const
 
-Return how a 3D point in worldspace maps to a 2D coordinate in the :ref:`Viewport<class_viewport>` rectangle.
+Returns how a 3D point in worldspace maps to a 2D coordinate in the :ref:`Viewport<class_viewport>` rectangle.
 
 

+ 13 - 13
classes/class_camera2d.rst

@@ -108,27 +108,27 @@ Member Functions
 Member Variables
 ----------------
 
-- :ref:`int<class_int>` **anchor_mode**
-- :ref:`bool<class_bool>` **current**
-- :ref:`float<class_float>` **drag_margin_bottom**
+- :ref:`int<class_int>` **anchor_mode** - The Camera2D's anchor point. See [code]ANCHOR_MODE_*[/code] constants.
+- :ref:`bool<class_bool>` **current** - If [code]true[/code] this camera is the active camera for the current scene. Only one camera can be current, so setting a different camera [code]current[/code] will disable this one.
+- :ref:`float<class_float>` **drag_margin_bottom** - Bottom margin needed to drag the camera. A value of [code]1[/code] makes the camera move only when reaching the edge of the screen.
 - :ref:`bool<class_bool>` **drag_margin_h_enabled**
-- :ref:`float<class_float>` **drag_margin_left**
-- :ref:`float<class_float>` **drag_margin_right**
-- :ref:`float<class_float>` **drag_margin_top**
+- :ref:`float<class_float>` **drag_margin_left** - Left margin needed to drag the camera. A value of [code]1[/code] makes the camera move only when reaching the edge of the screen.
+- :ref:`float<class_float>` **drag_margin_right** - Right margin needed to drag the camera. A value of [code]1[/code] makes the camera move only when reaching the edge of the screen.
+- :ref:`float<class_float>` **drag_margin_top** - Top margin needed to drag the camera. A value of [code]1[/code] makes the camera move only when reaching the edge of the screen.
 - :ref:`bool<class_bool>` **drag_margin_v_enabled**
 - :ref:`bool<class_bool>` **editor_draw_drag_margin**
 - :ref:`bool<class_bool>` **editor_draw_limits**
 - :ref:`bool<class_bool>` **editor_draw_screen**
-- :ref:`int<class_int>` **limit_bottom**
-- :ref:`int<class_int>` **limit_left**
-- :ref:`int<class_int>` **limit_right**
+- :ref:`int<class_int>` **limit_bottom** - Bottom scroll limit in pixels. The camera stops moving when reaching this value.
+- :ref:`int<class_int>` **limit_left** - Left scroll limit in pixels. The camera stops moving when reaching this value.
+- :ref:`int<class_int>` **limit_right** - Right scroll limit in pixels. The camera stops moving when reaching this value.
 - :ref:`bool<class_bool>` **limit_smoothed**
-- :ref:`int<class_int>` **limit_top**
-- :ref:`Vector2<class_vector2>` **offset**
+- :ref:`int<class_int>` **limit_top** - Top scroll limit in pixels. The camera stops moving when reaching this value.
+- :ref:`Vector2<class_vector2>` **offset** - The camera's offset, useful for looking around or camera shake animations.
 - :ref:`bool<class_bool>` **rotating**
 - :ref:`bool<class_bool>` **smoothing_enabled**
 - :ref:`float<class_float>` **smoothing_speed**
-- :ref:`Vector2<class_vector2>` **zoom**
+- :ref:`Vector2<class_vector2>` **zoom** - The camera's zoom relative to the viewport. Values larger than [code]Vector2(1, 1)[/code] zoom out and smaller values zoom in. For an example, use [code]Vector2(0.5, 0.5)[/code] for a 2x zoom in, and [code]Vector2(4, 4)[/code] for a 4x zoom out.
 
 Numeric Constants
 -----------------
@@ -141,7 +141,7 @@ Description
 
 Camera node for 2D scenes. It forces the screen (current layer) to scroll following this node. This makes it easier (and faster) to program scrollable scenes than manually changing the position of :ref:`CanvasItem<class_canvasitem>` based nodes.
 
-This node is intended to be a simple helper get get things going quickly and it may happen often that more functionality is desired to change how the camera works. To make your own custom camera node, simply inherit from :ref:`Node2D<class_node2d>` and change the transform of the canvas by calling get_viewport().set_canvas_transform(m) in :ref:`Viewport<class_viewport>`.
+This node is intended to be a simple helper to get things going quickly and it may happen often that more functionality is desired to change how the camera works. To make your own custom camera node, simply inherit from :ref:`Node2D<class_node2d>` and change the transform of the canvas by calling get_viewport().set_canvas_transform(m) in :ref:`Viewport<class_viewport>`.
 
 Member Function Description
 ---------------------------

+ 3 - 3
classes/class_canvasmodulate.rst

@@ -14,7 +14,7 @@ CanvasModulate
 Brief Description
 -----------------
 
-Tint the entire canvas
+Tint the entire canvas.
 
 Member Functions
 ----------------
@@ -28,12 +28,12 @@ Member Functions
 Member Variables
 ----------------
 
-- :ref:`Color<class_color>` **color**
+- :ref:`Color<class_color>` **color** - The tint color to apply.
 
 Description
 -----------
 
-CanvasModulate tints the canvas elements using its assigned color
+``CanvasModulate`` tints the canvas elements using its assigned ``color``.
 
 Member Function Description
 ---------------------------

+ 33 - 8
classes/class_collisionobject.rst

@@ -16,7 +16,7 @@ CollisionObject
 Brief Description
 -----------------
 
-
+Base node for collision objects.
 
 Member Functions
 ----------------
@@ -70,7 +70,11 @@ Signals
 
 -  **input_event**  **(** :ref:`Object<class_object>` camera, :ref:`Object<class_object>` event, :ref:`Vector3<class_vector3>` click_position, :ref:`Vector3<class_vector3>` click_normal, :ref:`int<class_int>` shape_idx  **)**
 -  **mouse_entered**  **(** **)**
+Emitted when the mouse pointer enters any of this object's shapes.
+
 -  **mouse_exited**  **(** **)**
+Emitted when the mouse pointer exits all this object's shapes.
+
 
 Member Variables
 ----------------
@@ -78,6 +82,11 @@ Member Variables
 - :ref:`bool<class_bool>` **input_capture_on_drag**
 - :ref:`bool<class_bool>` **input_ray_pickable**
 
+Description
+-----------
+
+CollisionObject is the base class for physics objects. It can hold any number of collision :ref:`Shape<class_shape>`\ s. Each shape must be assigned to a *shape owner*. The CollisionObject can have any number of shape owners. Shape owners are not nodes and do not appear in the editor, but are accessible through code using the ``shape_owner\_\*`` methods.
+
 Member Function Description
 ---------------------------
 
@@ -89,7 +98,7 @@ Member Function Description
 
 - :ref:`int<class_int>`  **create_shape_owner**  **(** :ref:`Object<class_object>` owner  **)**
 
-Creates new holder for the shapes. Argument is a :ref:`CollisionShape<class_collisionshape>` node. It will return owner_id which usually you will want to save for later use.
+Creates a new shape owner for the given object. Returns ``owner_id`` of the new owner for future reference.
 
 .. _class_CollisionObject_get_capture_input_on_drag:
 
@@ -99,11 +108,13 @@ Creates new holder for the shapes. Argument is a :ref:`CollisionShape<class_coll
 
 - :ref:`RID<class_rid>`  **get_rid**  **(** **)** const
 
+Returns the object's :ref:`RID<class_rid>`.
+
 .. _class_CollisionObject_get_shape_owners:
 
 - :ref:`Array<class_array>`  **get_shape_owners**  **(** **)**
 
-Shape owner is a node which is holding concrete shape resources. This method will return an array which is holding an integer numbers that are representing unique ID of each owner. You can use those ids when you are using others shape_owner methods.
+Returns an :ref:`Array<class_array>` of ``owner_id`` identifiers. You can use these ids in other methods that take ``owner_id`` as an argument.
 
 .. _class_CollisionObject_is_ray_pickable:
 
@@ -113,10 +124,14 @@ Shape owner is a node which is holding concrete shape resources. This method wil
 
 - :ref:`bool<class_bool>`  **is_shape_owner_disabled**  **(** :ref:`int<class_int>` owner_id  **)** const
 
+If ``true`` the shape owner and its shapes are disabled.
+
 .. _class_CollisionObject_remove_shape_owner:
 
 - void  **remove_shape_owner**  **(** :ref:`int<class_int>` owner_id  **)**
 
+Removes the given shape owner.
+
 .. _class_CollisionObject_set_capture_input_on_drag:
 
 - void  **set_capture_input_on_drag**  **(** :ref:`bool<class_bool>` enable  **)**
@@ -129,31 +144,37 @@ Shape owner is a node which is holding concrete shape resources. This method wil
 
 - :ref:`int<class_int>`  **shape_find_owner**  **(** :ref:`int<class_int>` shape_index  **)** const
 
+Returns the ``owner_id`` of the given shape.
+
 .. _class_CollisionObject_shape_owner_add_shape:
 
 - void  **shape_owner_add_shape**  **(** :ref:`int<class_int>` owner_id, :ref:`Shape<class_shape>` shape  **)**
 
+Adds a :ref:`Shape<class_shape>` to the shape owner.
+
 .. _class_CollisionObject_shape_owner_clear_shapes:
 
 - void  **shape_owner_clear_shapes**  **(** :ref:`int<class_int>` owner_id  **)**
 
-Will remove all the shapes associated with given owner.
+Removes all shapes from the shape owner.
 
 .. _class_CollisionObject_shape_owner_get_owner:
 
 - :ref:`Object<class_object>`  **shape_owner_get_owner**  **(** :ref:`int<class_int>` owner_id  **)** const
 
+Returns the parent object of the given shape owner.
+
 .. _class_CollisionObject_shape_owner_get_shape:
 
 - :ref:`Shape<class_shape>`  **shape_owner_get_shape**  **(** :ref:`int<class_int>` owner_id, :ref:`int<class_int>` shape_id  **)** const
 
-Will return a :ref:`Shape<class_shape>`. First argument owner_id is an integer that can be obtained from :ref:`get_shape_owners<class_CollisionObject_get_shape_owners>`. Shape_id is a position of the shape inside owner; it's a value in range from 0 to :ref:`shape_owner_get_shape_count<class_CollisionObject_shape_owner_get_shape_count>`.
+Returns the :ref:`Shape<class_shape>` with the given id from the given shape owner.
 
 .. _class_CollisionObject_shape_owner_get_shape_count:
 
 - :ref:`int<class_int>`  **shape_owner_get_shape_count**  **(** :ref:`int<class_int>` owner_id  **)** const
 
-Returns number of shapes to which given owner is associated to.
+Returns the number of shapes the given shape owner contains.
 
 .. _class_CollisionObject_shape_owner_get_shape_index:
 
@@ -163,20 +184,24 @@ Returns number of shapes to which given owner is associated to.
 
 - :ref:`Transform<class_transform>`  **shape_owner_get_transform**  **(** :ref:`int<class_int>` owner_id  **)** const
 
-Will return :ref:`Transform<class_transform>` of an owner node.
+Returns the shape owner's :ref:`Transform<class_transform>`.
 
 .. _class_CollisionObject_shape_owner_remove_shape:
 
 - void  **shape_owner_remove_shape**  **(** :ref:`int<class_int>` owner_id, :ref:`int<class_int>` shape_id  **)**
 
-Removes related shape from the owner.
+Removes a shape from the given shape owner.
 
 .. _class_CollisionObject_shape_owner_set_disabled:
 
 - void  **shape_owner_set_disabled**  **(** :ref:`int<class_int>` owner_id, :ref:`bool<class_bool>` disabled  **)**
 
+If ``true`` disables the given shape owner.
+
 .. _class_CollisionObject_shape_owner_set_transform:
 
 - void  **shape_owner_set_transform**  **(** :ref:`int<class_int>` owner_id, :ref:`Transform<class_transform>` transform  **)**
 
+Sets the :ref:`Transform<class_transform>` of the given shape owner.
+
 

+ 29 - 13
classes/class_collisionobject2d.rst

@@ -16,7 +16,7 @@ CollisionObject2D
 Brief Description
 -----------------
 
-Base node for 2D collisionables.
+Base node for 2D collision objects.
 
 Member Functions
 ----------------
@@ -69,22 +69,24 @@ Signals
 -------
 
 -  **input_event**  **(** :ref:`Object<class_object>` viewport, :ref:`Object<class_object>` event, :ref:`int<class_int>` shape_idx  **)**
+Emitted when an input event occurs and ``input_pickable`` is ``true``.
+
 -  **mouse_entered**  **(** **)**
-This event fires only once when the mouse pointer enters any shape of this object.
+Emitted when the mouse pointer enters any of this object's shapes.
 
 -  **mouse_exited**  **(** **)**
-This event fires only once when the mouse pointer exits all shapes of this object.
+Emitted when the mouse pointer exits all this object's shapes.
 
 
 Member Variables
 ----------------
 
-- :ref:`bool<class_bool>` **input_pickable**
+- :ref:`bool<class_bool>` **input_pickable** - If [code]true[/code] this object is pickable. A pickable object can detect the mouse pointer entering/leaving, and if the mouse is inside it, report input events.
 
 Description
 -----------
 
-CollisionObject2D is the base class for 2D physics collisionables. They can hold any number of 2D collision shapes. Usually, they are edited by placing :ref:`CollisionShape2D<class_collisionshape2d>` and/or :ref:`CollisionPolygon2D<class_collisionpolygon2d>` nodes as children. Such nodes are for reference and not present outside the editor, so code should use the regular shape API.
+CollisionObject2D is the base class for 2D physics objects. It can hold any number of 2D collision :ref:`Shape2D<class_shape2d>`\ s. Each shape must be assigned to a *shape owner*. The CollisionObject2D can have any number of shape owners. Shape owners are not nodes and do not appear in the editor, but are accessible through code using the ``shape_owner\_\*`` methods.
 
 Member Function Description
 ---------------------------
@@ -97,19 +99,19 @@ Member Function Description
 
 - :ref:`int<class_int>`  **create_shape_owner**  **(** :ref:`Object<class_object>` owner  **)**
 
-Creates new holder for the shapes. Argument is a :ref:`CollisionShape2D<class_collisionshape2d>` node. It will return owner_id which usually you will want to save for later use.
+Creates a new shape owner for the given object. Returns ``owner_id`` of the new owner for future reference.
 
 .. _class_CollisionObject2D_get_rid:
 
 - :ref:`RID<class_rid>`  **get_rid**  **(** **)** const
 
-Return the RID of this object.
+Returns the object's :ref:`RID<class_rid>`.
 
 .. _class_CollisionObject2D_get_shape_owners:
 
 - :ref:`Array<class_array>`  **get_shape_owners**  **(** **)**
 
-Shape owner is a node which is holding concrete shape resources. This method will return an array which is holding an integer numbers that are representing unique ID of each owner. You can use those ids when you are using others shape_owner methods.
+Returns an :ref:`Array<class_array>` of ``owner_id`` identifiers. You can use these ids in other methods that take ``owner_id`` as an argument.
 
 .. _class_CollisionObject2D_is_pickable:
 
@@ -121,6 +123,8 @@ Return whether this object is pickable.
 
 - :ref:`bool<class_bool>`  **is_shape_owner_disabled**  **(** :ref:`int<class_int>` owner_id  **)** const
 
+If ``true`` the shape owner and its shapes are disabled.
+
 .. _class_CollisionObject2D_is_shape_owner_one_way_collision_enabled:
 
 - :ref:`bool<class_bool>`  **is_shape_owner_one_way_collision_enabled**  **(** :ref:`int<class_int>` owner_id  **)** const
@@ -129,6 +133,8 @@ Return whether this object is pickable.
 
 - void  **remove_shape_owner**  **(** :ref:`int<class_int>` owner_id  **)**
 
+Removes the given shape owner.
+
 .. _class_CollisionObject2D_set_pickable:
 
 - void  **set_pickable**  **(** :ref:`bool<class_bool>` enabled  **)**
@@ -139,31 +145,37 @@ Set whether this object is pickable. A pickable object can detect the mouse poin
 
 - :ref:`int<class_int>`  **shape_find_owner**  **(** :ref:`int<class_int>` shape_index  **)** const
 
+Returns the ``owner_id`` of the given shape.
+
 .. _class_CollisionObject2D_shape_owner_add_shape:
 
 - void  **shape_owner_add_shape**  **(** :ref:`int<class_int>` owner_id, :ref:`Shape2D<class_shape2d>` shape  **)**
 
+Adds a :ref:`Shape2D<class_shape2d>` to the shape owner.
+
 .. _class_CollisionObject2D_shape_owner_clear_shapes:
 
 - void  **shape_owner_clear_shapes**  **(** :ref:`int<class_int>` owner_id  **)**
 
-Will remove all the shapes associated with given owner.
+Removes all shapes from the shape owner.
 
 .. _class_CollisionObject2D_shape_owner_get_owner:
 
 - :ref:`Object<class_object>`  **shape_owner_get_owner**  **(** :ref:`int<class_int>` owner_id  **)** const
 
+Returns the parent object of the given shape owner.
+
 .. _class_CollisionObject2D_shape_owner_get_shape:
 
 - :ref:`Shape2D<class_shape2d>`  **shape_owner_get_shape**  **(** :ref:`int<class_int>` owner_id, :ref:`int<class_int>` shape_id  **)** const
 
-Will return a :ref:`Shape2D<class_shape2d>`. First argument owner_id is an integer that can be obtained from :ref:`get_shape_owners<class_CollisionObject2D_get_shape_owners>`. Shape_id is a position of the shape inside owner; it's a value in range from 0 to :ref:`shape_owner_get_shape_count<class_CollisionObject2D_shape_owner_get_shape_count>`.
+Returns the :ref:`Shape2D<class_shape2d>` with the given id from the given shape owner.
 
 .. _class_CollisionObject2D_shape_owner_get_shape_count:
 
 - :ref:`int<class_int>`  **shape_owner_get_shape_count**  **(** :ref:`int<class_int>` owner_id  **)** const
 
-Returns number of shapes to which given owner is associated to.
+Returns the number of shapes the given shape owner contains.
 
 .. _class_CollisionObject2D_shape_owner_get_shape_index:
 
@@ -173,18 +185,20 @@ Returns number of shapes to which given owner is associated to.
 
 - :ref:`Transform2D<class_transform2d>`  **shape_owner_get_transform**  **(** :ref:`int<class_int>` owner_id  **)** const
 
-Will return :ref:`Transform2D<class_transform2d>` of an owner node.
+Returns the shape owner's :ref:`Transform2D<class_transform2d>`.
 
 .. _class_CollisionObject2D_shape_owner_remove_shape:
 
 - void  **shape_owner_remove_shape**  **(** :ref:`int<class_int>` owner_id, :ref:`int<class_int>` shape_id  **)**
 
-Removes related shape from the owner.
+Removes a shape from the given shape owner.
 
 .. _class_CollisionObject2D_shape_owner_set_disabled:
 
 - void  **shape_owner_set_disabled**  **(** :ref:`int<class_int>` owner_id, :ref:`bool<class_bool>` disabled  **)**
 
+If ``true`` disables the given shape owner.
+
 .. _class_CollisionObject2D_shape_owner_set_one_way_collision:
 
 - void  **shape_owner_set_one_way_collision**  **(** :ref:`int<class_int>` owner_id, :ref:`bool<class_bool>` enable  **)**
@@ -193,4 +207,6 @@ Removes related shape from the owner.
 
 - void  **shape_owner_set_transform**  **(** :ref:`int<class_int>` owner_id, :ref:`Transform2D<class_transform2d>` transform  **)**
 
+Sets the :ref:`Transform2D<class_transform2d>` of the given shape owner.
+
 

+ 8 - 8
classes/class_collisionpolygon2d.rst

@@ -14,7 +14,7 @@ CollisionPolygon2D
 Brief Description
 -----------------
 
-Editor-only class for defining a collision polygon in 2D space.
+Defines a 2D collision polygon.
 
 Member Functions
 ----------------
@@ -40,21 +40,21 @@ Member Functions
 Member Variables
 ----------------
 
-- :ref:`int<class_int>` **build_mode** - If BUILD_SOLIDS, the polygon and the area within it will have collision. If BUILD_SEGMENTS, only the edges of the polygon will have collision.
-- :ref:`bool<class_bool>` **disabled** - If true, no collision will be produced.
-- :ref:`bool<class_bool>` **one_way_collision** - If true, only edges that face up, relative to CollisionPolygon2D's rotation, will collide with other objects.
-- :ref:`PoolVector2Array<class_poolvector2array>` **polygon** - Array of vertices which define the polygon.
+- :ref:`int<class_int>` **build_mode** - Collision build mode. Use one of the [code]BUILD_*[/code] constants. Default value: [code]BUILD_SOLIDS[/code].
+- :ref:`bool<class_bool>` **disabled** - If [code]true[/code] no collisions will be detected.
+- :ref:`bool<class_bool>` **one_way_collision** - If [code]true[/code] only edges that face up, relative to CollisionPolygon2D's rotation, will collide with other objects.
+- :ref:`PoolVector2Array<class_poolvector2array>` **polygon** - The polygon's list of vertices. The final point will be connected to the first.
 
 Numeric Constants
 -----------------
 
-- **BUILD_SOLIDS** = **0**
-- **BUILD_SEGMENTS** = **1**
+- **BUILD_SOLIDS** = **0** --- Collisions will include the polygon and its contained area.
+- **BUILD_SEGMENTS** = **1** --- Collisions will only include the polygon edges.
 
 Description
 -----------
 
-Allows editing a collision polygon's vertices. This class is only available in the editor. It will not appear in the scene tree at runtime. Creates a :ref:`Shape2D<class_shape2d>` for gameplay. Properties modified during gameplay will have no effect.
+Provides a 2D collision polygon to a :ref:`CollisionObject2D<class_collisionobject2d>` parent. Polygon can be drawn in the editor or specified by a list of vertices.
 
 Member Function Description
 ---------------------------

+ 4 - 1
classes/class_colorrect.rst

@@ -28,7 +28,10 @@ Member Functions
 Member Variables
 ----------------
 
-- :ref:`Color<class_color>` **color**
+- :ref:`Color<class_color>` **color** - The color to fill the [code]ColorRect[/code].
+			[codeblock]
+			$ColorRect.color = Color(1, 0, 0, 1) # Set ColorRect node's color to red
+			[/codeblock]
 
 Description
 -----------

+ 125 - 103
classes/class_control.rst

@@ -16,7 +16,7 @@ Control
 Brief Description
 -----------------
 
-Base node for all User Interface components.
+All User Interface nodes inherit from Control. Features anchors and margins to adapt its position and size to its parent.
 
 Member Functions
 ----------------
@@ -158,9 +158,9 @@ Member Functions
 +----------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                             | :ref:`set_anchor_and_margin<class_Control_set_anchor_and_margin>`  **(** :ref:`int<class_int>` margin, :ref:`float<class_float>` anchor, :ref:`float<class_float>` offset, :ref:`bool<class_bool>` push_opposite_anchor=false  **)** |
 +----------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                             | :ref:`set_anchors_preset<class_Control_set_anchors_preset>`  **(** :ref:`int<class_int>` preset, :ref:`bool<class_bool>` keep_margin=false  **)**                                                                                    |
+| void                             | :ref:`set_anchors_and_margins_preset<class_Control_set_anchors_and_margins_preset>`  **(** :ref:`int<class_int>` preset, :ref:`int<class_int>` resize_mode=0, :ref:`int<class_int>` margin=0  **)**                                  |
 +----------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                             | :ref:`set_area_as_parent_rect<class_Control_set_area_as_parent_rect>`  **(** :ref:`int<class_int>` margin=0  **)**                                                                                                                   |
+| void                             | :ref:`set_anchors_preset<class_Control_set_anchors_preset>`  **(** :ref:`int<class_int>` preset, :ref:`bool<class_bool>` keep_margin=false  **)**                                                                                    |
 +----------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                             | :ref:`set_begin<class_Control_set_begin>`  **(** :ref:`Vector2<class_vector2>` position  **)**                                                                                                                                       |
 +----------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
@@ -188,6 +188,8 @@ Member Functions
 +----------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                             | :ref:`set_margin<class_Control_set_margin>`  **(** :ref:`int<class_int>` margin, :ref:`float<class_float>` offset  **)**                                                                                                             |
 +----------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                             | :ref:`set_margins_preset<class_Control_set_margins_preset>`  **(** :ref:`int<class_int>` preset, :ref:`int<class_int>` resize_mode=0, :ref:`int<class_int>` margin=0  **)**                                                          |
++----------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                             | :ref:`set_mouse_filter<class_Control_set_mouse_filter>`  **(** :ref:`int<class_int>` filter  **)**                                                                                                                                   |
 +----------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                             | :ref:`set_pivot_offset<class_Control_set_pivot_offset>`  **(** :ref:`Vector2<class_vector2>` pivot_offset  **)**                                                                                                                     |
@@ -227,129 +229,139 @@ Emitted when the node gains keyboard focus.
 Emitted when the node loses keyboard focus.
 
 -  **gui_input**  **(** :ref:`Object<class_object>` ev  **)**
+Emitted when the node receives an :ref:`InputEvent<class_inputevent>`.
+
 -  **minimum_size_changed**  **(** **)**
 Emitted when the node's minimum size changes.
 
 -  **modal_closed**  **(** **)**
+Emitted when a modal ``Control`` is closed. See :ref:`show_modal<class_Control_show_modal>`.
+
 -  **mouse_entered**  **(** **)**
-Emitted when the mouse enters the control's area.
+Emitted when the mouse enters the control's ``Rect`` area.
 
 -  **mouse_exited**  **(** **)**
-Emitted when the mouse leaves the control's area.
+Emitted when the mouse leaves the control's ``Rect`` area.
 
 -  **resized**  **(** **)**
 Emitted when the control changes size.
 
 -  **size_flags_changed**  **(** **)**
-Emitted when the size flags change.
+Emitted when one of the size flags changes. See member size_flags_horizontal and member size_flags_vertical.
 
 
 Member Variables
 ----------------
 
-- :ref:`float<class_float>` **anchor_bottom**
-- :ref:`float<class_float>` **anchor_left**
-- :ref:`float<class_float>` **anchor_right**
-- :ref:`float<class_float>` **anchor_top**
-- :ref:`NodePath<class_nodepath>` **focus_neighbour_bottom**
-- :ref:`NodePath<class_nodepath>` **focus_neighbour_left**
-- :ref:`NodePath<class_nodepath>` **focus_neighbour_right**
-- :ref:`NodePath<class_nodepath>` **focus_neighbour_top**
+- :ref:`float<class_float>` **anchor_bottom** - Anchors the bottom edge of the node to the origin, the center, or the end of its parent container. It changes how the bottom margin updates when the node moves or changes size. Use one of the [code]ANCHOR_*[/code] constants. Default value: [code]ANCHOR_BEGIN[/code].
+- :ref:`float<class_float>` **anchor_left** - Anchors the left edge of the node to the origin, the center or the end of its parent container. It changes how the left margin updates when the node moves or changes size. Use one of the [code]ANCHOR_*[/code] constants. Default value: [code]ANCHOR_BEGIN[/code].
+- :ref:`float<class_float>` **anchor_right** - Anchors the right edge of the node to the origin, the center or the end of its parent container. It changes how the right margin updates when the node moves or changes size. Use one of the [code]ANCHOR_*[/code] constants. Default value: [code]ANCHOR_BEGIN[/code].
+- :ref:`float<class_float>` **anchor_top** - Anchors the top edge of the node to the origin, the center or the end of its parent container. It changes how the top margin updates when the node moves or changes size. Use one of the [code]ANCHOR_*[/code] constants. Default value: [code]ANCHOR_BEGIN[/code].
+- :ref:`NodePath<class_nodepath>` **focus_neighbour_bottom** - Tells Godot which node it should give keyboard focus to if the user presses Tab, the down arrow on the keyboard, or down on a gamepad. The node must be a [code]Control[/code]. If this property is not set, Godot will give focus to the closest [code]Control[/code] to the bottom of this one.
+			If the user presses Tab, Godot will give focus to the closest node to the right first, then to the bottom. If the user presses Shift+Tab, Godot will look to the left of the node, then above it.
+- :ref:`NodePath<class_nodepath>` **focus_neighbour_left** - Tells Godot which node it should give keyboard focus to if the user presses Shift+Tab, the left arrow on the keyboard or left on a gamepad. The node must be a [code]Control[/code]. If this property is not set, Godot will give focus to the closest [code]Control[/code] to the left of this one.
+- :ref:`NodePath<class_nodepath>` **focus_neighbour_right** - Tells Godot which node it should give keyboard focus to if the user presses Tab, the right arrow on the keyboard or right on a gamepad. The node must be a [code]Control[/code]. If this property is not set, Godot will give focus to the closest [code]Control[/code] to the bottom of this one.
+- :ref:`NodePath<class_nodepath>` **focus_neighbour_top** - Tells Godot which node it should give keyboard focus to if the user presses Shift+Tab, the top arrow on the keyboard or top on a gamepad. The node must be a [code]Control[/code]. If this property is not set, Godot will give focus to the closest [code]Control[/code] to the bottom of this one.
 - :ref:`int<class_int>` **grow_horizontal**
 - :ref:`int<class_int>` **grow_vertical**
-- :ref:`String<class_string>` **hint_tooltip**
-- :ref:`float<class_float>` **margin_bottom**
-- :ref:`float<class_float>` **margin_left**
-- :ref:`float<class_float>` **margin_right**
-- :ref:`float<class_float>` **margin_top**
+- :ref:`String<class_string>` **hint_tooltip** - Changes the tooltip text. The tooltip appears when the user's mouse cursor stays idle over this control for a few moments.
+- :ref:`float<class_float>` **margin_bottom** - Distance between the node's bottom edge and its parent container, based on [member anchor_bottom].
+			Margins are often controlled by one or multiple parent [Container] nodes. Margins update automatically when you move or resize the node.
+- :ref:`float<class_float>` **margin_left** - Distance between the node's left edge and its parent container, based on [member anchor_left].
+- :ref:`float<class_float>` **margin_right** - Distance between the node's right edge and its parent container, based on [member anchor_right].
+- :ref:`float<class_float>` **margin_top** - Distance between the node's top edge and its parent container, based on [member anchor_top].
 - :ref:`int<class_int>` **mouse_filter**
 - :ref:`bool<class_bool>` **rect_clip_content**
-- :ref:`Vector2<class_vector2>` **rect_min_size**
-- :ref:`Vector2<class_vector2>` **rect_pivot_offset**
-- :ref:`Vector2<class_vector2>` **rect_position**
-- :ref:`float<class_float>` **rect_rotation**
-- :ref:`Vector2<class_vector2>` **rect_scale**
-- :ref:`Vector2<class_vector2>` **rect_size**
-- :ref:`int<class_int>` **size_flags_horizontal**
-- :ref:`float<class_float>` **size_flags_stretch_ratio**
-- :ref:`int<class_int>` **size_flags_vertical**
-- :ref:`Theme<class_theme>` **theme**
+- :ref:`Vector2<class_vector2>` **rect_min_size** - The minimum size of the node's bounding rectangle. If you set it to a value greater than (0, 0), the node's bounding rectangle will always have at least this size, even if its content is smaller. If it's set to (0, 0), the node sizes automatically to fit its content, be it a texture or child nodes.
+- :ref:`Vector2<class_vector2>` **rect_pivot_offset** - By default, the node's pivot is its top-left corner. When you change its [member rect_scale], it will scale around this pivot. Set this property to [member rect_size] / 2 to center the pivot in the node's rectangle.
+- :ref:`Vector2<class_vector2>` **rect_position** - The node's position, relative to its parent. It corresponds to the rectangle's top-left corner. The property is not affected by [member rect_pivot_offset].
+- :ref:`float<class_float>` **rect_rotation** - The node's rotation around its pivot, in degrees. See [member rect_pivot_offset] to change the pivot's position.
+- :ref:`Vector2<class_vector2>` **rect_scale** - The node's scale, relative to its [member rect_size]. Change this property to scale the node around its [member rect_pivot_offset].
+- :ref:`Vector2<class_vector2>` **rect_size** - The size of the node's bounding rectangle, in pixels. [Container] nodes update this property automatically.
+- :ref:`int<class_int>` **size_flags_horizontal** - Tells the parent [Container] nodes how they should resize and place the node on the X axis. Use one of the [code]SIZE_*[/code] constants to change the flags. See the constants to learn what each does.
+- :ref:`float<class_float>` **size_flags_stretch_ratio** - If the node and at least one of its neighbours uses the [code]SIZE_EXPAND[/code] size flag, the parent [Container] will let it take more or less space depending on this property. If this node has a stretch ratio of 2 and its neighbour a ratio of 1, this node will take two thirds of the available space.
+- :ref:`int<class_int>` **size_flags_vertical** - Tells the parent [Container] nodes how they should resize and place the node on the Y axis. Use one of the [code]SIZE_*[/code] constants to change the flags. See the constants to learn what each does.
+- :ref:`Theme<class_theme>` **theme** - Changing this property replaces the current [Theme] resource this node and all its [code]Control[/code] children use.
 
 Numeric Constants
 -----------------
 
-- **FOCUS_NONE** = **0** --- Control can't acquire focus.
-- **FOCUS_CLICK** = **1** --- Control can acquire focus only if clicked.
-- **FOCUS_ALL** = **2** --- Control can acquire focus if clicked, or by pressing TAB/Directionals in the keyboard from another Control.
-- **NOTIFICATION_RESIZED** = **40** --- Control changed size (get_size() reports the new size).
-- **NOTIFICATION_MOUSE_ENTER** = **41** --- Mouse pointer entered the area of the Control.
-- **NOTIFICATION_MOUSE_EXIT** = **42** --- Mouse pointer exited the area of the Control.
-- **NOTIFICATION_FOCUS_ENTER** = **43** --- Control gained focus.
-- **NOTIFICATION_FOCUS_EXIT** = **44** --- Control lost focus.
-- **NOTIFICATION_THEME_CHANGED** = **45** --- Theme changed. Redrawing is desired.
-- **NOTIFICATION_MODAL_CLOSE** = **46** --- Modal control was closed.
-- **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**
-- **PRESET_TOP_LEFT** = **0**
-- **PRESET_TOP_RIGHT** = **1**
-- **PRESET_BOTTOM_LEFT** = **2**
-- **PRESET_BOTTOM_RIGHT** = **3**
-- **PRESET_CENTER_LEFT** = **4**
-- **PRESET_CENTER_TOP** = **5**
-- **PRESET_CENTER_RIGHT** = **6**
-- **PRESET_CENTER_BOTTOM** = **7**
-- **PRESET_CENTER** = **8**
-- **PRESET_LEFT_WIDE** = **9**
-- **PRESET_TOP_WIDE** = **10**
-- **PRESET_RIGHT_WIDE** = **11**
-- **PRESET_BOTTOM_WIDE** = **12**
-- **PRESET_VCENTER_WIDE** = **13**
-- **PRESET_HCENTER_WIDE** = **14**
-- **PRESET_WIDE** = **15**
-- **SIZE_EXPAND** = **2**
-- **SIZE_FILL** = **1**
-- **SIZE_EXPAND_FILL** = **3**
-- **SIZE_SHRINK_CENTER** = **4**
-- **SIZE_SHRINK_END** = **8**
+- **FOCUS_NONE** = **0** --- The node cannot grab focus. Use with member set_focus_mode.
+- **FOCUS_CLICK** = **1** --- The node can only grab focus on mouse clicks. Use with member set_focus_mode.
+- **FOCUS_ALL** = **2** --- The node can grab focus on mouse click or using the arrows and the Tab keys on the keyboard. Use with member set_focus_mode.
+- **NOTIFICATION_RESIZED** = **40** --- Sent when the node changes size. Use member rect_size to get the new size.
+- **NOTIFICATION_MOUSE_ENTER** = **41** --- Sent when the mouse pointer enters the node's ``Rect`` area.
+- **NOTIFICATION_MOUSE_EXIT** = **42** --- Sent when the mouse pointer exits the node's ``Rect`` area.
+- **NOTIFICATION_FOCUS_ENTER** = **43** --- Sent when the node grabs focus.
+- **NOTIFICATION_FOCUS_EXIT** = **44** --- Sent when the node loses focus.
+- **NOTIFICATION_THEME_CHANGED** = **45** --- Sent when the node's member theme changes, right before Godot redraws the ``Control``. Happens when you call one of the ``add\_\*_override``
+- **NOTIFICATION_MODAL_CLOSE** = **46** --- Sent when an open modal dialog closes. See member show_modal.
+- **CURSOR_ARROW** = **0** --- Show the system's arrow mouse cursor when the user hovers the node. Use with :ref:`set_default_cursor_shape<class_Control_set_default_cursor_shape>`.
+- **CURSOR_IBEAM** = **1** --- Show the system's I-beam mouse cursor when the user hovers the node. The I-beam pointer has a shape similar to "I". It tells the user they can highlight or insert text.
+- **CURSOR_POINTING_HAND** = **2** --- Show the system's pointing hand mouse cursor when the user hovers the node.
+- **CURSOR_CROSS** = **3** --- Show the system's cross mouse cursor when the user hovers the node.
+- **CURSOR_WAIT** = **4** --- Show the system's wait mouse cursor, often an hourglass, when the user hovers the node.
+- **CURSOR_BUSY** = **5** --- Show the system's busy mouse cursor when the user hovers the node. Often an hourglass.
+- **CURSOR_DRAG** = **6** --- Show the system's drag mouse cursor, often a closed fist or a cross symbol, when the user hovers the node. It tells the user they're currently dragging an item, like a node in the Scene dock.
+- **CURSOR_CAN_DROP** = **7** --- Show the system's drop mouse cursor when the user hovers the node. It can be an open hand. It tells the user they can drop an item they're currently grabbing, like a node in the Scene dock.
+- **CURSOR_FORBIDDEN** = **8** --- Show the system's forbidden mouse cursor when the user hovers the node. Often a crossed circle.
+- **CURSOR_VSIZE** = **9** --- Show the system's vertical resize mouse cursor when the user hovers the node. A double headed vertical arrow. It tells the user they can resize the window or the panel vertically.
+- **CURSOR_HSIZE** = **10** --- Show the system's horizontal resize mouse cursor when the user hovers the node. A double headed horizontal arrow. It tells the user they can resize the window or the panel horizontally.
+- **CURSOR_BDIAGSIZE** = **11** --- Show the system's window resize mouse cursor when the user hovers the node. 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** --- Show the system's window resize mouse cursor when the user hovers the node. 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** --- Show the system's move mouse cursor when the user hovers the node. It shows 2 double-headed arrows at a 90 degree angle. It tells the user they can move a UI element freely.
+- **CURSOR_VSPLIT** = **14** --- Show the system's vertical split mouse cursor when the user hovers the node. On Windows, it's the same as ``CURSOR_VSIZE``.
+- **CURSOR_HSPLIT** = **15** --- Show the system's horizontal split mouse cursor when the user hovers the node. On Windows, it's the same as ``CURSOR_HSIZE``.
+- **CURSOR_HELP** = **16** --- Show the system's help mouse cursor when the user hovers the node, a question mark.
+- **PRESET_TOP_LEFT** = **0** --- Snap all 4 anchors to the top-left of the parent container's bounds. Use with :ref:`set_anchors_preset<class_Control_set_anchors_preset>`.
+- **PRESET_TOP_RIGHT** = **1** --- Snap all 4 anchors to the top-right of the parent container's bounds. Use with :ref:`set_anchors_preset<class_Control_set_anchors_preset>`.
+- **PRESET_BOTTOM_LEFT** = **2** --- Snap all 4 anchors to the bottom-left of the parent container's bounds. Use with :ref:`set_anchors_preset<class_Control_set_anchors_preset>`.
+- **PRESET_BOTTOM_RIGHT** = **3** --- Snap all 4 anchors to the bottom-right of the parent container's bounds. Use with :ref:`set_anchors_preset<class_Control_set_anchors_preset>`.
+- **PRESET_CENTER_LEFT** = **4** --- Snap all 4 anchors to the center of the left edge of the parent container's bounds. Use with :ref:`set_anchors_preset<class_Control_set_anchors_preset>`.
+- **PRESET_CENTER_TOP** = **5** --- Snap all 4 anchors to the center of the top edge of the parent container's bounds. Use with :ref:`set_anchors_preset<class_Control_set_anchors_preset>`.
+- **PRESET_CENTER_RIGHT** = **6** --- Snap all 4 anchors to the center of the right edge of the parent container's bounds. Use with :ref:`set_anchors_preset<class_Control_set_anchors_preset>`.
+- **PRESET_CENTER_BOTTOM** = **7** --- Snap all 4 anchors to the center of the bottom edge of the parent container's bounds. Use with :ref:`set_anchors_preset<class_Control_set_anchors_preset>`.
+- **PRESET_CENTER** = **8** --- Snap all 4 anchors to the center of the parent container's bounds. Use with :ref:`set_anchors_preset<class_Control_set_anchors_preset>`.
+- **PRESET_LEFT_WIDE** = **9** --- Snap all 4 anchors to the left edge of the parent container. The left margin becomes relative to the left edge and the top margin relative to the top left corner of the node's parent. Use with :ref:`set_anchors_preset<class_Control_set_anchors_preset>`.
+- **PRESET_TOP_WIDE** = **10** --- Snap all 4 anchors to the top edge of the parent container. The left margin becomes relative to the top left corner, the top margin relative to the top edge, and the right margin relative to the top right corner of the node's parent. Use with :ref:`set_anchors_preset<class_Control_set_anchors_preset>`.
+- **PRESET_RIGHT_WIDE** = **11** --- Snap all 4 anchors to the right edge of the parent container. The right margin becomes relative to the right edge and the top margin relative to the top right corner of the node's parent. Use with :ref:`set_anchors_preset<class_Control_set_anchors_preset>`.
+- **PRESET_BOTTOM_WIDE** = **12** --- Snap all 4 anchors to the bottom edge of the parent container. The left margin becomes relative to the bottom left corner, the bottom margin relative to the bottom edge, and the right margin relative to the bottom right corner of the node's parent. Use with :ref:`set_anchors_preset<class_Control_set_anchors_preset>`.
+- **PRESET_VCENTER_WIDE** = **13** --- Snap all 4 anchors to a vertical line that cuts the parent container in half. Use with :ref:`set_anchors_preset<class_Control_set_anchors_preset>`.
+- **PRESET_HCENTER_WIDE** = **14** --- Snap all 4 anchors to a horizontal line that cuts the parent container in half. Use with :ref:`set_anchors_preset<class_Control_set_anchors_preset>`.
+- **PRESET_WIDE** = **15** --- Snap all 4 anchors to the respective corners of the parent container. Set all 4 margins to 0 after you applied this preset and the ``Control`` will fit its parent container. Use with :ref:`set_anchors_preset<class_Control_set_anchors_preset>`.
+- **PRESET_MODE_MINSIZE** = **0**
+- **PRESET_MODE_KEEP_HEIGHT** = **2**
+- **PRESET_MODE_KEEP_WIDTH** = **1**
+- **PRESET_MODE_KEEP_SIZE** = **3**
+- **SIZE_EXPAND** = **2** --- Tells the parent :ref:`Container<class_container>` to let this node take all the available space on the axis you flag. If multiple neighboring nodes are set to expand, they'll share the space based on their stretch ratio. See member size_flags_stretch_ratio. Use with member size_flags_horizontal and member size_flags_vertical.
+- **SIZE_FILL** = **1** --- Tells the parent :ref:`Container<class_container>` to expand the bounds of this node to fill all the available space without pushing any other node. Use with member size_flags_horizontal and member size_flags_vertical.
+- **SIZE_EXPAND_FILL** = **3** --- Sets the node's size flags to both fill and expand. See the 2 constants above for more information.
+- **SIZE_SHRINK_CENTER** = **4** --- Tells the parent :ref:`Container<class_container>` to center the node in itself. It centers the ``Control`` based on its bounding box, so it doesn't work with the fill or expand size flags. Use with member size_flags_horizontal and member size_flags_vertical.
+- **SIZE_SHRINK_END** = **8** --- Tells the parent :ref:`Container<class_container>` to align the node with its end, either the bottom or the right edge. It doesn't work with the fill or expand size flags. Use with member size_flags_horizontal and member size_flags_vertical.
 - **MOUSE_FILTER_STOP** = **0**
 - **MOUSE_FILTER_PASS** = **1**
 - **MOUSE_FILTER_IGNORE** = **2**
 - **GROW_DIRECTION_BEGIN** = **0**
 - **GROW_DIRECTION_END** = **1**
-- **ANCHOR_BEGIN** = **0** --- X is relative to MARGIN_LEFT, Y is relative to MARGIN_TOP.
-- **ANCHOR_END** = **1** --- X is relative to -MARGIN_RIGHT, Y is relative to -MARGIN_BOTTOM.
+- **ANCHOR_BEGIN** = **0** --- Snaps one of the 4 anchor's sides to the origin of the node's ``Rect``, in the top left. Use it with one of the ``anchor\_\*`` member variables, like member anchor_left. To change all 4 anchors at once, use :ref:`set_anchors_preset<class_Control_set_anchors_preset>`.
+- **ANCHOR_END** = **1** --- Snaps one of the 4 anchor's sides to the end of the node's ``Rect``, in the bottom right. Use it with one of the ``anchor\_\*`` member variables, like member anchor_left. To change all 4 anchors at once, use :ref:`set_anchors_preset<class_Control_set_anchors_preset>`.
 
 Description
 -----------
 
-The base class Node for all User Interface components. Every UI node inherits from it. Any scene or portion of a scene tree composed of Control nodes is a User Interface.
+Base class for all User Interface or *UI* related nodes. ``Control`` features a bounding rectangle that defines its extents, an anchor position relative to its parent and margins that represent an offset to the anchor. The margins update automatically when the node, any of its parents, or the screen size change.
 
-Controls use anchors and margins to place themselves relative to their parent. They adapt automatically when their parent or the screen size changes. To build flexible UIs, use built-in :ref:`Container<class_container>` nodes or create your own.
+For more information on Godot's UI system, anchors, margins, and containers, see the related tutorials in the manual. To build flexible UIs, you'll need a mix of UI elements that inherit from ``Control`` and :ref:`Container<class_container>` nodes.
 
-Anchors work by defining which margin do they follow, and a value relative to it. Allowed anchoring modes are ANCHOR_BEGIN, where the margin is relative to the top or left margins of the parent (in pixels), ANCHOR_END for the right and bottom margins of the parent and ANCHOR_RATIO, which is a ratio from 0 to 1 in the parent range.
+**User Interface nodes and input**
 
-Godot sends Input events to the root node first, via :ref:`Node._input<class_Node__input>`. The method distributes it through the node tree and delivers the input events to the node under the mouse cursor or on focus with the keyboard. To do so, it calls :ref:`MainLoop._input_event<class_MainLoop__input_event>`. No need to enable :ref:`Node.set_process_input<class_Node_set_process_input>` on Controls to receive input events. Call :ref:`accept_event<class_Control_accept_event>` to ensure no other node receives the event, not even :ref:`Node._unhandled_input<class_Node__unhandled_input>`.
+Godot sends input events to the scene's root node first, by calling :ref:`Node._input<class_Node__input>`. :ref:`Node._input<class_Node__input>` forwards the event down the node tree to the nodes under the mouse cursor, or on keyboard focus. To do so, it calls :ref:`MainLoop._input_event<class_MainLoop__input_event>`. Call :ref:`accept_event<class_Control_accept_event>` so no other node receives the event. Once you accepted an input, it becomes handled so :ref:`Node._unhandled_input<class_Node__unhandled_input>` will not process it.
 
-Only the one Control node in focus receives keyboard events. To do so, the Control must get the focus mode with :ref:`set_focus_mode<class_Control_set_focus_mode>`. It loses focus when another Control gets it, or if the current Control in focus is hidden.
+Only one ``Control`` node can be in keyboard focus. Only the node in focus will receive keyboard events. To get the foucs, call :ref:`set_focus_mode<class_Control_set_focus_mode>`. ``Control`` nodes lose focus when another node grabs it, or if you hide the node in focus.
 
-You'll sometimes want Controls to ignore mouse or touch events. For example, if you place an icon on top of a button. Call :ref:`set_ignore_mouse<class_Control_set_ignore_mouse>` for that.
+Call :ref:`set_ignore_mouse<class_Control_set_ignore_mouse>` to tell a ``Control`` node to ignore mouse or touch events. You'll need it if you place an icon on top of a button.
 
-:ref:`Theme<class_theme>` resources change the Control's appearance. If you change the :ref:`Theme<class_theme>` on a parent Control node, it will propagate to all of its children. You can override parts of the theme on each Control with the add\_\*_override methods, like :ref:`add_font_override<class_Control_add_font_override>`. You can also override the theme from the editor.
+:ref:`Theme<class_theme>` resources change the Control's appearance. If you change the :ref:`Theme<class_theme>` on a ``Control`` node, it affects all of its children. To override some of the theme's parameters, call one of the ``add\_\*_override`` methods, like :ref:`add_font_override<class_Control_add_font_override>`. You can override the theme with the inspector.
 
 Member Function Description
 ---------------------------
@@ -358,49 +370,57 @@ Member Function Description
 
 - :ref:`Vector2<class_vector2>`  **_get_minimum_size**  **(** **)** virtual
 
-Returns the minimum size this Control can shrink to. A control will never be displayed or resized smaller than its minimum size.
+Returns the minimum size this Control can shrink to. The node can never be smaller than this minimum size.
 
 .. _class_Control__gui_input:
 
 - void  **_gui_input**  **(** :ref:`InputEvent<class_inputevent>` event  **)** virtual
 
+The node's parent forwards input events to this method. Use it to process and accept inputs on UI elements. See :ref:`accept_event<class_Control_accept_event>`.
+
+Replaces Godot 2's ``_input_event``.
+
 .. _class_Control_accept_event:
 
 - void  **accept_event**  **(** **)**
 
-Marks the input event as handled. No other Control will receive it, and the input event will not propagate. Not even to nodes listening to :ref:`Node._unhandled_input<class_Node__unhandled_input>` or :ref:`Node._unhandled_key_input<class_Node__unhandled_key_input>`.
+Marks an input event as handled. Once you accept an input event, it stops propagating, even to nodes listening to :ref:`Node._unhandled_input<class_Node__unhandled_input>` or :ref:`Node._unhandled_key_input<class_Node__unhandled_key_input>`.
 
 .. _class_Control_add_color_override:
 
 - void  **add_color_override**  **(** :ref:`String<class_string>` name, :ref:`Color<class_color>` color  **)**
 
+Overrides the color in the theme resource the node uses.
+
 .. _class_Control_add_constant_override:
 
 - void  **add_constant_override**  **(** :ref:`String<class_string>` name, :ref:`int<class_int>` constant  **)**
 
-Override a single constant (integer) in the theme of this Control. If constant equals Theme.INVALID_CONSTANT, override is cleared.
+Overrides an integer constant in the theme resource the node uses. If the ``constant[code] is invalid, Godot clears the override. See [member Theme.INVALID_CONSTANT] for more information.
 
 .. _class_Control_add_font_override:
 
 - void  **add_font_override**  **(** :ref:`String<class_string>` name, :ref:`Font<class_font>` font  **)**
 
-Override a single font (font) in the theme of this Control. If font is empty, override is cleared.
+Overrides the ``name`` font in the theme resource the node uses. If ``font`` is empty, Godot clears the override.
 
 .. _class_Control_add_icon_override:
 
 - void  **add_icon_override**  **(** :ref:`String<class_string>` name, :ref:`Texture<class_texture>` texture  **)**
 
-Override a single icon (:ref:`Texture<class_texture>`) in the theme of this Control. If texture is empty, override is cleared.
+Overrides the ``name`` icon in the theme resource the node uses. If ``icon`` is empty, Godot clears the override.
 
 .. _class_Control_add_shader_override:
 
 - void  **add_shader_override**  **(** :ref:`String<class_string>` name, :ref:`Shader<class_shader>` shader  **)**
 
+Overrides the ``name`` shader in the theme resource the node uses. If ``shader`` is empty, Godot clears the override.
+
 .. _class_Control_add_style_override:
 
 - void  **add_style_override**  **(** :ref:`String<class_string>` name, :ref:`StyleBox<class_stylebox>` stylebox  **)**
 
-Override a single stylebox (Stylebox) in the theme of this Control. If stylebox is empty, override is cleared.
+Overrides the ``name`` Stylebox in the theme resource the node uses. If ``stylebox`` is empty, Godot clears the override.
 
 .. _class_Control_can_drop_data:
 
@@ -440,7 +460,7 @@ Return the anchor type (ANCHOR_BEGIN, ANCHOR_END, ANCHOR_RATIO) for a given marg
 
 - :ref:`int<class_int>`  **get_cursor_shape**  **(** :ref:`Vector2<class_vector2>` position=Vector2( 0, 0 )  **)** const
 
-Return the cursor shape at a certain position in the control.
+Returns the mouse cursor shape the control displays on mouse hover, one of the ``CURSOR\_\*`` constants.
 
 .. _class_Control_get_custom_minimum_size:
 
@@ -450,7 +470,7 @@ Return the cursor shape at a certain position in the control.
 
 - :ref:`int<class_int>`  **get_default_cursor_shape**  **(** **)** const
 
-Return the default cursor shape for this control. See enum CURSOR\_\* for the list of shapes.
+Returns the default cursor shape for this control. See enum ``CURSOR\_\*`` for the list of shapes.
 
 .. _class_Control_get_drag_data:
 
@@ -688,15 +708,13 @@ Give up the focus, no other control will be able to receive keyboard input.
 
 - void  **set_anchor_and_margin**  **(** :ref:`int<class_int>` margin, :ref:`float<class_float>` anchor, :ref:`float<class_float>` offset, :ref:`bool<class_bool>` push_opposite_anchor=false  **)**
 
-.. _class_Control_set_anchors_preset:
-
-- void  **set_anchors_preset**  **(** :ref:`int<class_int>` preset, :ref:`bool<class_bool>` keep_margin=false  **)**
+.. _class_Control_set_anchors_and_margins_preset:
 
-.. _class_Control_set_area_as_parent_rect:
+- void  **set_anchors_and_margins_preset**  **(** :ref:`int<class_int>` preset, :ref:`int<class_int>` resize_mode=0, :ref:`int<class_int>` margin=0  **)**
 
-- void  **set_area_as_parent_rect**  **(** :ref:`int<class_int>` margin=0  **)**
+.. _class_Control_set_anchors_preset:
 
-Change all margins and anchors, so this Control always takes up the same area as the parent Control. This is a helper (see :ref:`set_anchor<class_Control_set_anchor>`, :ref:`set_margin<class_Control_set_margin>`).
+- void  **set_anchors_preset**  **(** :ref:`int<class_int>` preset, :ref:`bool<class_bool>` keep_margin=false  **)**
 
 .. _class_Control_set_begin:
 
@@ -716,7 +734,7 @@ Sets MARGIN_LEFT and MARGIN_TOP at the same time. This is a helper (see :ref:`se
 
 - void  **set_default_cursor_shape**  **(** :ref:`int<class_int>` shape  **)**
 
-Set the default cursor shape for this control. See enum CURSOR\_\* for the list of shapes.
+Sets the default cursor shape for this control. See ``CURSOR\_\*`` for the list of available cursor shapes. Useful for Godot plugins and applications or games that use the system's mouse cursors.
 
 .. _class_Control_set_drag_forwarding:
 
@@ -766,6 +784,10 @@ Hint for containers, set horizontal positioning flags.
 
 Set a margin offset. Margin can be one of (MARGIN_LEFT, MARGIN_TOP, MARGIN_RIGHT, MARGIN_BOTTOM). Offset value being set depends on the anchor mode.
 
+.. _class_Control_set_margins_preset:
+
+- void  **set_margins_preset**  **(** :ref:`int<class_int>` preset, :ref:`int<class_int>` resize_mode=0, :ref:`int<class_int>` margin=0  **)**
+
 .. _class_Control_set_mouse_filter:
 
 - void  **set_mouse_filter**  **(** :ref:`int<class_int>` filter  **)**
@@ -814,13 +836,13 @@ Hint for containers, set the stretch ratio. This value is relative to other stre
 
 - void  **set_theme**  **(** :ref:`Theme<class_theme>` theme  **)**
 
-Override whole the :ref:`Theme<class_theme>` for this Control and all its children controls.
+Overrides the whole :ref:`Theme<class_theme>` for this node and all its ``Control`` children.
 
 .. _class_Control_set_tooltip:
 
 - void  **set_tooltip**  **(** :ref:`String<class_string>` tooltip  **)**
 
-Set a tooltip, which will appear when the cursor is resting over this control.
+Changes the tooltip text. The tooltip appears when the user's mouse cursor stays idle over this control for a few moments.
 
 .. _class_Control_set_v_grow_direction:
 

+ 3 - 3
classes/class_convexpolygonshape.rst

@@ -14,7 +14,7 @@ ConvexPolygonShape
 Brief Description
 -----------------
 
-Convex Polygon Shape.
+Convex polygon shape for 3D physics.
 
 Member Functions
 ----------------
@@ -28,12 +28,12 @@ Member Functions
 Member Variables
 ----------------
 
-- :ref:`PoolVector3Array<class_poolvector3array>` **points**
+- :ref:`PoolVector3Array<class_poolvector3array>` **points** - The list of 3D points forming the convex polygon shape.
 
 Description
 -----------
 
-Convex polygon shape resource, which can be set into a :ref:`PhysicsBody<class_physicsbody>` or area.
+Convex polygon shape resource, which can be added to a :ref:`PhysicsBody<class_physicsbody>` or area.
 
 Member Function Description
 ---------------------------

+ 3 - 3
classes/class_convexpolygonshape2d.rst

@@ -30,7 +30,7 @@ Member Functions
 Member Variables
 ----------------
 
-- :ref:`PoolVector2Array<class_poolvector2array>` **points**
+- :ref:`PoolVector2Array<class_poolvector2array>` **points** - The polygon's list of vertices. Can be in either clockwise or counterclockwise order.
 
 Description
 -----------
@@ -46,7 +46,7 @@ Member Function Description
 
 - :ref:`PoolVector2Array<class_poolvector2array>`  **get_points**  **(** **)** const
 
-Return a list of points in either clockwise or counter clockwise order, forming a convex polygon.
+Returns a list of points in either clockwise or counter clockwise order, forming a convex polygon.
 
 .. _class_ConvexPolygonShape2D_set_point_cloud:
 
@@ -58,6 +58,6 @@ Currently, this method does nothing.
 
 - void  **set_points**  **(** :ref:`PoolVector2Array<class_poolvector2array>` points  **)**
 
-Set a list of points in either clockwise or counter clockwise order, forming a convex polygon.
+Sets a list of points in either clockwise or counter clockwise order, forming a convex polygon.
 
 

+ 33 - 0
classes/class_csharpscript.rst

@@ -0,0 +1,33 @@
+.. Generated automatically by doc/tools/makerst.py in Godot's source tree.
+.. DO NOT EDIT THIS FILE, but the CSharpScript.xml source instead.
+.. The source is found in doc/classes or modules/<name>/doc_classes.
+
+.. _class_CSharpScript:
+
+CSharpScript
+============
+
+**Inherits:** :ref:`Script<class_script>` **<** :ref:`Resource<class_resource>` **<** :ref:`Reference<class_reference>` **<** :ref:`Object<class_object>`
+
+**Category:** Core
+
+Brief Description
+-----------------
+
+
+
+Member Functions
+----------------
+
++------------------------------+--------------------------------------------------------+
+| :ref:`Object<class_object>`  | :ref:`new<class_CSharpScript_new>`  **(** **)** vararg |
++------------------------------+--------------------------------------------------------+
+
+Member Function Description
+---------------------------
+
+.. _class_CSharpScript_new:
+
+- :ref:`Object<class_object>`  **new**  **(** **)** vararg
+
+

+ 2 - 2
classes/class_curve.rst

@@ -60,7 +60,7 @@ Member Functions
 +--------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                           | :ref:`set_point_left_tangent<class_Curve_set_point_left_tangent>`  **(** :ref:`int<class_int>` index, :ref:`float<class_float>` tangent  **)**                                                                                                           |
 +--------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                           | :ref:`set_point_offset<class_Curve_set_point_offset>`  **(** :ref:`int<class_int>` index, :ref:`float<class_float>` offset  **)**                                                                                                                        |
+| :ref:`int<class_int>`          | :ref:`set_point_offset<class_Curve_set_point_offset>`  **(** :ref:`int<class_int>` index, :ref:`float<class_float>` offset  **)**                                                                                                                        |
 +--------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                           | :ref:`set_point_right_mode<class_Curve_set_point_right_mode>`  **(** :ref:`int<class_int>` index, :ref:`int<class_int>` mode  **)**                                                                                                                      |
 +--------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
@@ -174,7 +174,7 @@ Member Function Description
 
 .. _class_Curve_set_point_offset:
 
-- void  **set_point_offset**  **(** :ref:`int<class_int>` index, :ref:`float<class_float>` offset  **)**
+- :ref:`int<class_int>`  **set_point_offset**  **(** :ref:`int<class_int>` index, :ref:`float<class_float>` offset  **)**
 
 .. _class_Curve_set_point_right_mode:
 

+ 2 - 0
classes/class_directory.rst

@@ -127,6 +127,8 @@ Return the absolute path to the currently opened directory (e.g. ``res://folder`
 
 - :ref:`int<class_int>`  **get_current_drive**  **(** **)**
 
+Returns the currently opened directory's drive index. See :ref:`get_drive<class_Directory_get_drive>` to convert returned index to the name of the drive.
+
 .. _class_Directory_get_drive:
 
 - :ref:`String<class_string>`  **get_drive**  **(** :ref:`int<class_int>` idx  **)**

+ 2 - 2
classes/class_editorinterface.rst

@@ -42,7 +42,7 @@ Member Functions
 +------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                                                       | :ref:`inspect_object<class_EditorInterface_inspect_object>`  **(** :ref:`Object<class_object>` object, :ref:`String<class_string>` for_property=""  **)** |
 +------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Array<class_array>`                                  | :ref:`make_mesh_previews<class_EditorInterface_make_mesh_previews>`  **(** :ref:`Array<class_array>` arg0, :ref:`int<class_int>` arg1  **)**              |
+| :ref:`Array<class_array>`                                  | :ref:`make_mesh_previews<class_EditorInterface_make_mesh_previews>`  **(** :ref:`Array<class_array>` meshes, :ref:`int<class_int>` preview_size  **)**    |
 +------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                                                       | :ref:`open_scene_from_path<class_EditorInterface_open_scene_from_path>`  **(** :ref:`String<class_string>` scene_filepath  **)**                          |
 +------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------+
@@ -102,7 +102,7 @@ Member Function Description
 
 .. _class_EditorInterface_make_mesh_previews:
 
-- :ref:`Array<class_array>`  **make_mesh_previews**  **(** :ref:`Array<class_array>` arg0, :ref:`int<class_int>` arg1  **)**
+- :ref:`Array<class_array>`  **make_mesh_previews**  **(** :ref:`Array<class_array>` meshes, :ref:`int<class_int>` preview_size  **)**
 
 .. _class_EditorInterface_open_scene_from_path:
 

+ 2 - 2
classes/class_editorresourcepreview.rst

@@ -62,13 +62,13 @@ Check if the resource changed, if so it will be invalidated and the correspondin
 
 - void  **queue_edited_resource_preview**  **(** :ref:`Resource<class_resource>` resource, :ref:`Object<class_object>` receiver, :ref:`String<class_string>` receiver_func, :ref:`Variant<class_variant>` userdata  **)**
 
-Queue a resource being edited for preview (using an instance). Once the preview is ready, your receiver.receiver_func will be called either containing the preview texture or an empty texure (if no preview was possible). Callback must have the format: (path,texture,userdata). Userdata can be anything.
+Queue a resource being edited for preview (using an instance). Once the preview is ready, your receiver.receiver_func will be called either containing the preview texture or an empty texture (if no preview was possible). Callback must have the format: (path,texture,userdata). Userdata can be anything.
 
 .. _class_EditorResourcePreview_queue_resource_preview:
 
 - void  **queue_resource_preview**  **(** :ref:`String<class_string>` path, :ref:`Object<class_object>` receiver, :ref:`String<class_string>` receiver_func, :ref:`Variant<class_variant>` userdata  **)**
 
-Queue a resource file for preview (using a path). Once the preview is ready, your receiver.receiver_func will be called either containing the preview texture or an empty texure (if no preview was possible). Callback must have the format: (path,texture,userdata). Userdata can be anything.
+Queue a resource file for preview (using a path). Once the preview is ready, your receiver.receiver_func will be called either containing the preview texture or an empty texture (if no preview was possible). Callback must have the format: (path,texture,userdata). Userdata can be anything.
 
 .. _class_EditorResourcePreview_remove_preview_generator:
 

+ 53 - 17
classes/class_editorsettings.rst

@@ -19,23 +19,35 @@ Object that holds the project-independent editor settings.
 Member Functions
 ----------------
 
-+------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------+
-| void                                           | :ref:`add_property_info<class_EditorSettings_add_property_info>`  **(** :ref:`Dictionary<class_dictionary>` info  **)**           |
-+------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------+
-| void                                           | :ref:`erase<class_EditorSettings_erase>`  **(** :ref:`String<class_string>` property  **)**                                       |
-+------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`PoolStringArray<class_poolstringarray>`  | :ref:`get_favorite_dirs<class_EditorSettings_get_favorite_dirs>`  **(** **)** const                                               |
-+------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_string>`                    | :ref:`get_project_settings_path<class_EditorSettings_get_project_settings_path>`  **(** **)** const                               |
-+------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`PoolStringArray<class_poolstringarray>`  | :ref:`get_recent_dirs<class_EditorSettings_get_recent_dirs>`  **(** **)** const                                                   |
-+------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_string>`                    | :ref:`get_settings_path<class_EditorSettings_get_settings_path>`  **(** **)** const                                               |
-+------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------+
-| void                                           | :ref:`set_favorite_dirs<class_EditorSettings_set_favorite_dirs>`  **(** :ref:`PoolStringArray<class_poolstringarray>` dirs  **)** |
-+------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------+
-| void                                           | :ref:`set_recent_dirs<class_EditorSettings_set_recent_dirs>`  **(** :ref:`PoolStringArray<class_poolstringarray>` dirs  **)**     |
-+------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------+
++------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                           | :ref:`add_property_info<class_EditorSettings_add_property_info>`  **(** :ref:`Dictionary<class_dictionary>` info  **)**                              |
++------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                           | :ref:`erase<class_EditorSettings_erase>`  **(** :ref:`String<class_string>` property  **)**                                                          |
++------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`PoolStringArray<class_poolstringarray>`  | :ref:`get_favorite_dirs<class_EditorSettings_get_favorite_dirs>`  **(** **)** const                                                                  |
++------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_string>`                    | :ref:`get_project_settings_path<class_EditorSettings_get_project_settings_path>`  **(** **)** const                                                  |
++------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`PoolStringArray<class_poolstringarray>`  | :ref:`get_recent_dirs<class_EditorSettings_get_recent_dirs>`  **(** **)** const                                                                      |
++------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Variant<class_variant>`                  | :ref:`get_setting<class_EditorSettings_get_setting>`  **(** :ref:`String<class_string>` name  **)** const                                            |
++------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_string>`                    | :ref:`get_settings_path<class_EditorSettings_get_settings_path>`  **(** **)** const                                                                  |
++------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                        | :ref:`has_setting<class_EditorSettings_has_setting>`  **(** :ref:`String<class_string>` name  **)** const                                            |
++------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                        | :ref:`property_can_revert<class_EditorSettings_property_can_revert>`  **(** :ref:`String<class_string>` name  **)**                                  |
++------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Variant<class_variant>`                  | :ref:`property_get_revert<class_EditorSettings_property_get_revert>`  **(** :ref:`String<class_string>` name  **)**                                  |
++------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                           | :ref:`set_favorite_dirs<class_EditorSettings_set_favorite_dirs>`  **(** :ref:`PoolStringArray<class_poolstringarray>` dirs  **)**                    |
++------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                           | :ref:`set_initial_value<class_EditorSettings_set_initial_value>`  **(** :ref:`String<class_string>` name, :ref:`Variant<class_variant>` value  **)** |
++------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                           | :ref:`set_recent_dirs<class_EditorSettings_set_recent_dirs>`  **(** :ref:`PoolStringArray<class_poolstringarray>` dirs  **)**                        |
++------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                           | :ref:`set_setting<class_EditorSettings_set_setting>`  **(** :ref:`String<class_string>` name, :ref:`Variant<class_variant>` value  **)**             |
++------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
 
 Signals
 -------
@@ -103,6 +115,10 @@ Get the specific project settings path. Projects all have a unique sub-directory
 
 Get the list of recently visited folders in the file dialog for this project.
 
+.. _class_EditorSettings_get_setting:
+
+- :ref:`Variant<class_variant>`  **get_setting**  **(** :ref:`String<class_string>` name  **)** const
+
 .. _class_EditorSettings_get_settings_path:
 
 - :ref:`String<class_string>`  **get_settings_path**  **(** **)** const
@@ -113,16 +129,36 @@ settings/tmp - used for temporary storage of files
 
 settings/templates - where export templates are located
 
+.. _class_EditorSettings_has_setting:
+
+- :ref:`bool<class_bool>`  **has_setting**  **(** :ref:`String<class_string>` name  **)** const
+
+.. _class_EditorSettings_property_can_revert:
+
+- :ref:`bool<class_bool>`  **property_can_revert**  **(** :ref:`String<class_string>` name  **)**
+
+.. _class_EditorSettings_property_get_revert:
+
+- :ref:`Variant<class_variant>`  **property_get_revert**  **(** :ref:`String<class_string>` name  **)**
+
 .. _class_EditorSettings_set_favorite_dirs:
 
 - void  **set_favorite_dirs**  **(** :ref:`PoolStringArray<class_poolstringarray>` dirs  **)**
 
 Set the list of favorite directories for this project.
 
+.. _class_EditorSettings_set_initial_value:
+
+- void  **set_initial_value**  **(** :ref:`String<class_string>` name, :ref:`Variant<class_variant>` value  **)**
+
 .. _class_EditorSettings_set_recent_dirs:
 
 - void  **set_recent_dirs**  **(** :ref:`PoolStringArray<class_poolstringarray>` dirs  **)**
 
 Set the list of recently visited folders in the file dialog for this project.
 
+.. _class_EditorSettings_set_setting:
+
+- void  **set_setting**  **(** :ref:`String<class_string>` name, :ref:`Variant<class_variant>` value  **)**
+
 

+ 27 - 8
classes/class_engine.rst

@@ -14,7 +14,7 @@ Engine
 Brief Description
 -----------------
 
-
+Access to basic engine properties.
 
 Member Functions
 ----------------
@@ -36,7 +36,7 @@ Member Functions
 +--------------------------------------+------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`bool<class_bool>`              | :ref:`is_editor_hint<class_Engine_is_editor_hint>`  **(** **)** const                                                              |
 +--------------------------------------+------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`              | :ref:`is_in_fixed_frame<class_Engine_is_in_fixed_frame>`  **(** **)** const                                                        |
+| :ref:`bool<class_bool>`              | :ref:`is_in_physics_frame<class_Engine_is_in_physics_frame>`  **(** **)** const                                                    |
 +--------------------------------------+------------------------------------------------------------------------------------------------------------------------------------+
 | void                                 | :ref:`set_editor_hint<class_Engine_set_editor_hint>`  **(** :ref:`bool<class_bool>` enabled  **)**                                 |
 +--------------------------------------+------------------------------------------------------------------------------------------------------------------------------------+
@@ -47,6 +47,11 @@ Member Functions
 | void                                 | :ref:`set_time_scale<class_Engine_set_time_scale>`  **(** :ref:`float<class_float>` time_scale  **)**                              |
 +--------------------------------------+------------------------------------------------------------------------------------------------------------------------------------+
 
+Description
+-----------
+
+The :ref:`Engine<class_engine>` class allows you to query and modify the game's run-time parameters, such as frames per second, time scale, and others.
+
 Member Function Description
 ---------------------------
 
@@ -54,7 +59,7 @@ Member Function Description
 
 - :ref:`int<class_int>`  **get_frames_drawn**  **(** **)**
 
-Return the total amount of frames drawn.
+Returns the total number of frames drawn.
 
 .. _class_Engine_get_frames_per_second:
 
@@ -66,22 +71,26 @@ Returns the frames per second of the running game.
 
 - :ref:`int<class_int>`  **get_iterations_per_second**  **(** **)** const
 
-Return the amount of fixed iterations per second (for fixed process and physics).
+Returns the number of fixed iterations per second (for fixed process and physics).
 
 .. _class_Engine_get_main_loop:
 
 - :ref:`MainLoop<class_mainloop>`  **get_main_loop**  **(** **)** const
 
-Return the main loop object (see :ref:`MainLoop<class_mainloop>` and :ref:`SceneTree<class_scenetree>`).
+Returns the main loop object (see :ref:`MainLoop<class_mainloop>` and :ref:`SceneTree<class_scenetree>`).
 
 .. _class_Engine_get_target_fps:
 
 - :ref:`float<class_float>`  **get_target_fps**  **(** **)** const
 
+Returns the desired frames per second. If the hardware cannot keep up, this setting may not be respected. It defaults to 0, which indicates no limit.
+
 .. _class_Engine_get_time_scale:
 
 - :ref:`float<class_float>`  **get_time_scale**  **(** **)**
 
+Returns how fast or slow the in-game clock ticks versus the real life one. It defaults to 1.0. A value of 2.0 means the game moves twice as fast as real life, whilst a value of 0.5 means the game moves at half the regular speed.
+
 .. _class_Engine_get_version_info:
 
 - :ref:`Dictionary<class_dictionary>`  **get_version_info**  **(** **)** const
@@ -106,26 +115,36 @@ Returns the current engine version information in a Dictionary.
 
 - :ref:`bool<class_bool>`  **is_editor_hint**  **(** **)** const
 
-.. _class_Engine_is_in_fixed_frame:
+Returns ``true`` if the editor is running.
 
-- :ref:`bool<class_bool>`  **is_in_fixed_frame**  **(** **)** const
+.. _class_Engine_is_in_physics_frame:
+
+- :ref:`bool<class_bool>`  **is_in_physics_frame**  **(** **)** const
+
+Returns ``true`` if the game is inside the fixed process and physics phase of the game loop.
 
 .. _class_Engine_set_editor_hint:
 
 - void  **set_editor_hint**  **(** :ref:`bool<class_bool>` enabled  **)**
 
+Sets the running inside the editor hint if ``enabled`` is ``true``.
+
 .. _class_Engine_set_iterations_per_second:
 
 - void  **set_iterations_per_second**  **(** :ref:`int<class_int>` iterations_per_second  **)**
 
-Set the amount of fixed iterations per second (for fixed process and physics).
+Sets the number of fixed iterations per second (for fixed process and physics).
 
 .. _class_Engine_set_target_fps:
 
 - void  **set_target_fps**  **(** :ref:`int<class_int>` target_fps  **)**
 
+Sets the target frames per second.
+
 .. _class_Engine_set_time_scale:
 
 - void  **set_time_scale**  **(** :ref:`float<class_float>` time_scale  **)**
 
+Sets the time scale.
+
 

+ 99 - 84
classes/class_environment.rst

@@ -14,7 +14,7 @@ Environment
 Brief Description
 -----------------
 
-
+Resource for environment nodes (like :ref:`WorldEnvironment<class_worldenvironment>`) that define multiple rendering options.
 
 Member Functions
 ----------------
@@ -90,7 +90,7 @@ Member Functions
 +--------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`Sky<class_sky>`          | :ref:`get_sky<class_Environment_get_sky>`  **(** **)** const                                                                                           |
 +--------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`      | :ref:`get_sky_scale<class_Environment_get_sky_scale>`  **(** **)** const                                                                               |
+| :ref:`float<class_float>`      | :ref:`get_sky_custom_fov<class_Environment_get_sky_custom_fov>`  **(** **)** const                                                                     |
 +--------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`float<class_float>`      | :ref:`get_ssao_bias<class_Environment_get_ssao_bias>`  **(** **)** const                                                                               |
 +--------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
@@ -248,7 +248,7 @@ Member Functions
 +--------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                           | :ref:`set_sky<class_Environment_set_sky>`  **(** :ref:`Sky<class_sky>` sky  **)**                                                                      |
 +--------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                           | :ref:`set_sky_scale<class_Environment_set_sky_scale>`  **(** :ref:`float<class_float>` scale  **)**                                                    |
+| void                           | :ref:`set_sky_custom_fov<class_Environment_set_sky_custom_fov>`  **(** :ref:`float<class_float>` scale  **)**                                          |
 +--------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                           | :ref:`set_ssao_bias<class_Environment_set_ssao_bias>`  **(** :ref:`float<class_float>` bias  **)**                                                     |
 +--------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
@@ -300,63 +300,63 @@ Member Functions
 Member Variables
 ----------------
 
-- :ref:`float<class_float>` **adjustment_brightness**
-- :ref:`Texture<class_texture>` **adjustment_color_correction**
-- :ref:`float<class_float>` **adjustment_contrast**
-- :ref:`bool<class_bool>` **adjustment_enabled**
-- :ref:`float<class_float>` **adjustment_saturation**
-- :ref:`Color<class_color>` **ambient_light_color**
-- :ref:`float<class_float>` **ambient_light_energy**
-- :ref:`float<class_float>` **ambient_light_sky_contribution**
-- :ref:`bool<class_bool>` **auto_exposure_enabled**
-- :ref:`float<class_float>` **auto_exposure_max_luma**
-- :ref:`float<class_float>` **auto_exposure_min_luma**
-- :ref:`float<class_float>` **auto_exposure_scale**
-- :ref:`float<class_float>` **auto_exposure_speed**
-- :ref:`int<class_int>` **background_canvas_max_layer**
-- :ref:`Color<class_color>` **background_color**
-- :ref:`float<class_float>` **background_energy**
-- :ref:`int<class_int>` **background_mode**
-- :ref:`Sky<class_sky>` **background_sky**
-- :ref:`float<class_float>` **background_sky_scale**
-- :ref:`float<class_float>` **dof_blur_far_amount**
-- :ref:`float<class_float>` **dof_blur_far_distance**
-- :ref:`bool<class_bool>` **dof_blur_far_enabled**
-- :ref:`int<class_int>` **dof_blur_far_quality**
-- :ref:`float<class_float>` **dof_blur_far_transition**
-- :ref:`float<class_float>` **dof_blur_near_amount**
-- :ref:`float<class_float>` **dof_blur_near_distance**
-- :ref:`bool<class_bool>` **dof_blur_near_enabled**
-- :ref:`int<class_int>` **dof_blur_near_quality**
-- :ref:`float<class_float>` **dof_blur_near_transition**
-- :ref:`Color<class_color>` **fog_color**
-- :ref:`float<class_float>` **fog_depth_begin**
-- :ref:`float<class_float>` **fog_depth_curve**
-- :ref:`bool<class_bool>` **fog_depth_enabled**
-- :ref:`bool<class_bool>` **fog_enabled**
-- :ref:`float<class_float>` **fog_height_curve**
-- :ref:`bool<class_bool>` **fog_height_enabled**
-- :ref:`float<class_float>` **fog_height_max**
-- :ref:`float<class_float>` **fog_height_min**
-- :ref:`float<class_float>` **fog_sun_amount**
-- :ref:`Color<class_color>` **fog_sun_color**
-- :ref:`float<class_float>` **fog_transmit_curve**
-- :ref:`bool<class_bool>` **fog_transmit_enabled**
+- :ref:`float<class_float>` **adjustment_brightness** - Global brightness value of the rendered scene (default value is 1).
+- :ref:`Texture<class_texture>` **adjustment_color_correction** - Applies the provided [Texture] resource to affect the global color aspect of the rendered scene.
+- :ref:`float<class_float>` **adjustment_contrast** - Global contrast value of the rendered scene (default value is 1).
+- :ref:`bool<class_bool>` **adjustment_enabled** - Enables the adjustment_* options provided by this resource. If false, adjustments modifications will have no effect on the rendered scene.
+- :ref:`float<class_float>` **adjustment_saturation** - Global color saturation value of the rendered scene (default value is 1).
+- :ref:`Color<class_color>` **ambient_light_color** - [Color] of the ambient light.
+- :ref:`float<class_float>` **ambient_light_energy** - Energy of the ambient light. The higher the value, the stronger the light.
+- :ref:`float<class_float>` **ambient_light_sky_contribution** - Defines the amount of light that the sky brings on the scene. A value of 0 means that the sky's light emission has no effect on the scene illumination, thus all ambient illumination is provided by the ambient light. On the contrary, a value of 1 means that all the light that affects the scene is provided by the sky, thus the ambient light parameter has no effect on the scene.
+- :ref:`bool<class_bool>` **auto_exposure_enabled** - Enables the tonemapping auto exposure mode of the scene renderer. If activated, the renderer will automatically determine the exposure setting to adapt to the illumination of the scene and the observed light.
+- :ref:`float<class_float>` **auto_exposure_max_luma** - Maximum luminance value for the auto exposure.
+- :ref:`float<class_float>` **auto_exposure_min_luma** - Minimum luminance value for the auto exposure.
+- :ref:`float<class_float>` **auto_exposure_scale** - Scale of the auto exposure effect. Affects the intensity of auto exposure.
+- :ref:`float<class_float>` **auto_exposure_speed** - Speed of the auto exposure effect. Affects the time needed for the camera to perform auto exposure.
+- :ref:`int<class_int>` **background_canvas_max_layer** - Maximum layer id (if using Layer background mode).
+- :ref:`Color<class_color>` **background_color** - Color displayed for clear areas of the scene (if using Custom color or Color+Sky background modes).
+- :ref:`float<class_float>` **background_energy** - Power of light emitted by the background.
+- :ref:`int<class_int>` **background_mode** - Defines the mode of background.
+- :ref:`Sky<class_sky>` **background_sky** - [Sky] resource defined as background.
+- :ref:`float<class_float>` **background_sky_custom_fov** - [Sky] resource's custom field of view.
+- :ref:`float<class_float>` **dof_blur_far_amount** - Amount of far blur.
+- :ref:`float<class_float>` **dof_blur_far_distance** - Distance from the camera where the far blur effect affects the rendering.
+- :ref:`bool<class_bool>` **dof_blur_far_enabled** - Enables the far blur effect.
+- :ref:`int<class_int>` **dof_blur_far_quality** - Quality of the far blur quality.
+- :ref:`float<class_float>` **dof_blur_far_transition** - Transition between no-blur area and far blur.
+- :ref:`float<class_float>` **dof_blur_near_amount** - Amount of near blur.
+- :ref:`float<class_float>` **dof_blur_near_distance** - Distance from the camera where the near blur effect affects the rendering.
+- :ref:`bool<class_bool>` **dof_blur_near_enabled** - Enables the near blur effect.
+- :ref:`int<class_int>` **dof_blur_near_quality** - Quality of the near blur quality.
+- :ref:`float<class_float>` **dof_blur_near_transition** - Transition between near blur and no-blur area.
+- :ref:`Color<class_color>` **fog_color** - Fog's [Color].
+- :ref:`float<class_float>` **fog_depth_begin** - Fog's depth starting distance from the camera.
+- :ref:`float<class_float>` **fog_depth_curve** - Value defining the fog depth intensity.
+- :ref:`bool<class_bool>` **fog_depth_enabled** - Enables the fog depth.
+- :ref:`bool<class_bool>` **fog_enabled** - Enables the fog. Needs fog_height_enabled and/or for_depth_enabled to actually display fog.
+- :ref:`float<class_float>` **fog_height_curve** - Value defining the fog height intensity.
+- :ref:`bool<class_bool>` **fog_height_enabled** - Enables the fog height.
+- :ref:`float<class_float>` **fog_height_max** - Maximum height of fog.
+- :ref:`float<class_float>` **fog_height_min** - Minimum height of fog.
+- :ref:`float<class_float>` **fog_sun_amount** - Amount of sun that affects the fog rendering.
+- :ref:`Color<class_color>` **fog_sun_color** - Sun [Color].
+- :ref:`float<class_float>` **fog_transmit_curve** - Amount of light that the fog transmits.
+- :ref:`bool<class_bool>` **fog_transmit_enabled** - Enables fog's light transmission. If enabled, lets reflections light to be transmitted by the fog.
 - :ref:`bool<class_bool>` **glow_bicubic_upscale**
-- :ref:`int<class_int>` **glow_blend_mode**
-- :ref:`float<class_float>` **glow_bloom**
-- :ref:`bool<class_bool>` **glow_enabled**
-- :ref:`float<class_float>` **glow_hdr_scale**
-- :ref:`float<class_float>` **glow_hdr_threshold**
-- :ref:`float<class_float>` **glow_intensity**
-- :ref:`bool<class_bool>` **glow_levels/1**
-- :ref:`bool<class_bool>` **glow_levels/2**
-- :ref:`bool<class_bool>` **glow_levels/3**
-- :ref:`bool<class_bool>` **glow_levels/4**
-- :ref:`bool<class_bool>` **glow_levels/5**
-- :ref:`bool<class_bool>` **glow_levels/6**
-- :ref:`bool<class_bool>` **glow_levels/7**
-- :ref:`float<class_float>` **glow_strength**
+- :ref:`int<class_int>` **glow_blend_mode** - Glow blending mode.
+- :ref:`float<class_float>` **glow_bloom** - Bloom value (global glow).
+- :ref:`bool<class_bool>` **glow_enabled** - Enables glow rendering.
+- :ref:`float<class_float>` **glow_hdr_scale** - Bleed scale of the HDR glow.
+- :ref:`float<class_float>` **glow_hdr_threshold** - Bleed threshold of the HDR glow.
+- :ref:`float<class_float>` **glow_intensity** - Glow intensity.
+- :ref:`bool<class_bool>` **glow_levels/1** - First level of glow (most local).
+- :ref:`bool<class_bool>` **glow_levels/2** - Second level of glow.
+- :ref:`bool<class_bool>` **glow_levels/3** - Third level of glow.
+- :ref:`bool<class_bool>` **glow_levels/4** - Fourth level of glow.
+- :ref:`bool<class_bool>` **glow_levels/5** - Fifth level of glow.
+- :ref:`bool<class_bool>` **glow_levels/6** - Sixth level of glow.
+- :ref:`bool<class_bool>` **glow_levels/7** - Seventh level of glow (most global).
+- :ref:`float<class_float>` **glow_strength** - Glow strength.
 - :ref:`float<class_float>` **ss_reflections_depth_tolerance**
 - :ref:`bool<class_bool>` **ss_reflections_enabled**
 - :ref:`float<class_float>` **ss_reflections_fade_in**
@@ -372,31 +372,46 @@ Member Variables
 - :ref:`float<class_float>` **ssao_light_affect**
 - :ref:`float<class_float>` **ssao_radius**
 - :ref:`float<class_float>` **ssao_radius2**
-- :ref:`float<class_float>` **tonemap_exposure**
-- :ref:`int<class_int>` **tonemap_mode**
-- :ref:`float<class_float>` **tonemap_white**
+- :ref:`float<class_float>` **tonemap_exposure** - Default exposure for tonemap.
+- :ref:`int<class_int>` **tonemap_mode** - Tonemapping mode.
+- :ref:`float<class_float>` **tonemap_white** - White reference value for tonemap.
 
 Numeric Constants
 -----------------
 
-- **BG_KEEP** = **5**
-- **BG_CLEAR_COLOR** = **0**
-- **BG_COLOR** = **1**
-- **BG_SKY** = **2**
-- **BG_COLOR_SKY** = **3**
-- **BG_CANVAS** = **4**
-- **BG_MAX** = **6**
-- **GLOW_BLEND_MODE_ADDITIVE** = **0**
-- **GLOW_BLEND_MODE_SCREEN** = **1**
-- **GLOW_BLEND_MODE_SOFTLIGHT** = **2**
-- **GLOW_BLEND_MODE_REPLACE** = **3**
-- **TONE_MAPPER_LINEAR** = **0**
-- **TONE_MAPPER_REINHARDT** = **1**
-- **TONE_MAPPER_FILMIC** = **2**
-- **TONE_MAPPER_ACES** = **3**
-- **DOF_BLUR_QUALITY_LOW** = **0**
-- **DOF_BLUR_QUALITY_MEDIUM** = **1**
-- **DOF_BLUR_QUALITY_HIGH** = **2**
+- **BG_KEEP** = **5** --- Keep on screen every pixel drawn in the background.
+- **BG_CLEAR_COLOR** = **0** --- Clear the background using the project's clear color.
+- **BG_COLOR** = **1** --- Clear the background using a custom clear color.
+- **BG_SKY** = **2** --- Display a user-defined sky in the background.
+- **BG_COLOR_SKY** = **3** --- Clear the background using a custom clear color and allows defining a sky for shading and reflection.
+- **BG_CANVAS** = **4** --- Display a :ref:`CanvasLayer<class_canvaslayer>` in the background.
+- **BG_MAX** = **6** --- Helper constant keeping track of the enum's size, has no direct usage in API calls.
+- **GLOW_BLEND_MODE_ADDITIVE** = **0** --- Additive glow blending mode. Mostly used for particles, glows (bloom), lens flare, bright sources.
+- **GLOW_BLEND_MODE_SCREEN** = **1** --- Screen glow blending mode. Increases brightness, used frequently with bloom.
+- **GLOW_BLEND_MODE_SOFTLIGHT** = **2** --- Softlight glow blending mode. Modifies contrast, exposes shadows and highlights, vivid bloom.
+- **GLOW_BLEND_MODE_REPLACE** = **3** --- Replace glow blending mode. Replaces all pixels' color by the glow value.
+- **TONE_MAPPER_LINEAR** = **0** --- Linear tonemapper operator. Reads the linear data and performs an exposure adjustment.
+- **TONE_MAPPER_REINHARDT** = **1** --- Reinhardt tonemapper operator. Performs a variation on rendered pixels' colors by this formula: color = color / (1 + color).
+- **TONE_MAPPER_FILMIC** = **2** --- Filmic tonemapper operator.
+- **TONE_MAPPER_ACES** = **3** --- Academy Color Encoding System tonemapper operator.
+- **DOF_BLUR_QUALITY_LOW** = **0** --- Low depth-of-field blur quality.
+- **DOF_BLUR_QUALITY_MEDIUM** = **1** --- Medium depth-of-field blur quality.
+- **DOF_BLUR_QUALITY_HIGH** = **2** --- High depth-of-field blur quality.
+
+Description
+-----------
+
+Resource for environment nodes (like :ref:`WorldEnvironment<class_worldenvironment>`) that define multiple environment operations (such as background :ref:`Sky<class_sky>` or :ref:`Color<class_color>`, ambient light, fog, depth-of-field...).	These parameters affect the final render of the scene. The order of these operations is:
+
+ 		- DOF Blur
+
+- Motion Blur
+
+- Bloom
+
+- Tonemap (auto exposure)
+
+- Adjustments
 
 Member Function Description
 ---------------------------
@@ -541,9 +556,9 @@ Member Function Description
 
 - :ref:`Sky<class_sky>`  **get_sky**  **(** **)** const
 
-.. _class_Environment_get_sky_scale:
+.. _class_Environment_get_sky_custom_fov:
 
-- :ref:`float<class_float>`  **get_sky_scale**  **(** **)** const
+- :ref:`float<class_float>`  **get_sky_custom_fov**  **(** **)** const
 
 .. _class_Environment_get_ssao_bias:
 
@@ -857,9 +872,9 @@ Member Function Description
 
 - void  **set_sky**  **(** :ref:`Sky<class_sky>` sky  **)**
 
-.. _class_Environment_set_sky_scale:
+.. _class_Environment_set_sky_custom_fov:
 
-- void  **set_sky_scale**  **(** :ref:`float<class_float>` scale  **)**
+- void  **set_sky_custom_fov**  **(** :ref:`float<class_float>` scale  **)**
 
 .. _class_Environment_set_ssao_bias:
 

+ 51 - 49
classes/class_file.rst

@@ -110,14 +110,14 @@ Member Functions
 Numeric Constants
 -----------------
 
-- **READ** = **1** --- Open the file for reading.
-- **WRITE** = **2** --- Open the file for writing. Create it if the file not exists and truncate if it exists.
-- **READ_WRITE** = **3** --- Open the file for reading and writing, without truncating the file.
-- **WRITE_READ** = **7** --- Open the file for reading and writing. Create it if the file not exists and truncate if it exists.
-- **COMPRESSION_FASTLZ** = **0** --- Use the FastLZ compression method.
-- **COMPRESSION_DEFLATE** = **1** --- Use the Deflate compression method.
-- **COMPRESSION_ZSTD** = **2** --- Use the Zstd compression method.
-- **COMPRESSION_GZIP** = **3**
+- **READ** = **1** --- Opens the file for read operations.
+- **WRITE** = **2** --- Opens the file for write operations. Create it if the file does not exist and truncate if it exists.
+- **READ_WRITE** = **3** --- Opens the file for read and write operations. Does not truncate the file.
+- **WRITE_READ** = **7** --- Opens the file for read and write operations. Create it if the file does not exist and truncate if it exists.
+- **COMPRESSION_FASTLZ** = **0** --- Uses the FastLZ compression method.
+- **COMPRESSION_DEFLATE** = **1** --- Uses the Deflate compression method.
+- **COMPRESSION_ZSTD** = **2** --- Uses the Zstd compression method.
+- **COMPRESSION_GZIP** = **3** --- Uses the gzip compression method.
 
 Description
 -----------
@@ -148,167 +148,169 @@ Member Function Description
 
 - void  **close**  **(** **)**
 
-Close the currently opened file.
+Closes the currently opened file.
 
 .. _class_File_eof_reached:
 
 - :ref:`bool<class_bool>`  **eof_reached**  **(** **)** const
 
-Return whether the file cursor reached the end of the file.
+Returns ``true`` if the file cursor has reached the end of the file.
 
 .. _class_File_file_exists:
 
 - :ref:`bool<class_bool>`  **file_exists**  **(** :ref:`String<class_string>` path  **)** const
 
-Get whether or not the file in the specified path exists.
+Returns ``true`` if the file exists in the given path.
 
 .. _class_File_get_16:
 
 - :ref:`int<class_int>`  **get_16**  **(** **)** const
 
-Get the next 16 bits from the file as an integer.
+Returns the next 16 bits from the file as an integer.
 
 .. _class_File_get_32:
 
 - :ref:`int<class_int>`  **get_32**  **(** **)** const
 
-Get the next 32 bits from the file as an integer.
+Returns the next 32 bits from the file as an integer.
 
 .. _class_File_get_64:
 
 - :ref:`int<class_int>`  **get_64**  **(** **)** const
 
-Get the next 64 bits from the file as an integer.
+Returns the next 64 bits from the file as an integer.
 
 .. _class_File_get_8:
 
 - :ref:`int<class_int>`  **get_8**  **(** **)** const
 
-Get the next 8 bits from the file as an integer.
+Returns the next 8 bits from the file as an integer.
 
 .. _class_File_get_as_text:
 
 - :ref:`String<class_string>`  **get_as_text**  **(** **)** const
 
-Get the whole file as a :ref:`String<class_string>`.
+Returns the whole file as a :ref:`String<class_string>`.
 
 .. _class_File_get_buffer:
 
 - :ref:`PoolByteArray<class_poolbytearray>`  **get_buffer**  **(** :ref:`int<class_int>` len  **)** const
 
-Get next len bytes of the file as a :ref:`PoolByteArray<class_poolbytearray>`.
+Returns next ``len`` bytes of the file as a :ref:`PoolByteArray<class_poolbytearray>`.
 
 .. _class_File_get_csv_line:
 
 - :ref:`PoolStringArray<class_poolstringarray>`  **get_csv_line**  **(** :ref:`String<class_string>` delim=","  **)** const
 
-Get the next value of the file in CSV (Comma Separated Values) format. You can pass a different delimiter to use other than the default "," (comma).
+Returns the next value of the file in CSV (Comma Separated Values) format. You can pass a different delimiter to use other than the default "," (comma).
 
 .. _class_File_get_double:
 
 - :ref:`float<class_float>`  **get_double**  **(** **)** const
 
-Get the next 64 bits from the file as a floating point number.
+Returns the next 64 bits from the file as a floating point number.
 
 .. _class_File_get_endian_swap:
 
 - :ref:`bool<class_bool>`  **get_endian_swap**  **(** **)**
 
-Get whether endian swap is enabled for this file.
+Returns ``true`` if endian swap is enabled for this file.
 
 .. _class_File_get_error:
 
 - :ref:`int<class_int>`  **get_error**  **(** **)** const
 
-Get the last error that happened when trying to perform operations. Compare with the ``ERR_FILE\_\*`` constants from :ref:`@Global Scope<class_@global scope>`.
+Returns the last error that happened when trying to perform operations. Compare with the ``ERR_FILE\_\*`` constants from :ref:`@Global Scope<class_@global scope>`.
 
 .. _class_File_get_float:
 
 - :ref:`float<class_float>`  **get_float**  **(** **)** const
 
-Get the next 32 bits from the file as a floating point number.
+Returns the next 32 bits from the file as a floating point number.
 
 .. _class_File_get_len:
 
 - :ref:`int<class_int>`  **get_len**  **(** **)** const
 
-Return the size of the file in bytes.
+Returns the size of the file in bytes.
 
 .. _class_File_get_line:
 
 - :ref:`String<class_string>`  **get_line**  **(** **)** const
 
-Get the next line of the file as a :ref:`String<class_string>`.
+Returns the next line of the file as a :ref:`String<class_string>`.
 
 .. _class_File_get_md5:
 
 - :ref:`String<class_string>`  **get_md5**  **(** :ref:`String<class_string>` path  **)** const
 
-Return a md5 String representing the file at the given path or an empty :ref:`String<class_string>` on failure.
+Returns an MD5 String representing the file at the given path or an empty :ref:`String<class_string>` on failure.
 
 .. _class_File_get_modified_time:
 
 - :ref:`int<class_int>`  **get_modified_time**  **(** :ref:`String<class_string>` file  **)** const
 
+Returns the last time the ``file`` was modified in unix timestamp format or returns a :ref:`String<class_string>` "ERROR IN ``file``". This unix timestamp can be converted to datetime by using :ref:`OS.get_datetime_from_unix_time<class_OS_get_datetime_from_unix_time>`.
+
 .. _class_File_get_pascal_string:
 
 - :ref:`String<class_string>`  **get_pascal_string**  **(** **)**
 
-Get a :ref:`String<class_string>` saved in Pascal format from the file.
+Returns a :ref:`String<class_string>` saved in Pascal format from the file.
 
 .. _class_File_get_position:
 
 - :ref:`int<class_int>`  **get_position**  **(** **)** const
 
-Return the file cursor position.
+Returns the file cursor's position.
 
 .. _class_File_get_real:
 
 - :ref:`float<class_float>`  **get_real**  **(** **)** const
 
-Get the next bits from the file as a floating point number.
+Returns the next bits from the file as a floating point number.
 
 .. _class_File_get_sha256:
 
 - :ref:`String<class_string>`  **get_sha256**  **(** :ref:`String<class_string>` path  **)** const
 
-Return a sha256 String representing the file at the given path or an empty :ref:`String<class_string>` on failure.
+Returns a SHA-256 :ref:`String<class_string>` representing the file at the given path or an empty :ref:`String<class_string>` on failure.
 
 .. _class_File_get_var:
 
 - :ref:`Variant<class_variant>`  **get_var**  **(** **)** const
 
-Get the next Variant value from the file.
+Returns the next :ref:`Variant<class_variant>` value from the file.
 
 .. _class_File_is_open:
 
 - :ref:`bool<class_bool>`  **is_open**  **(** **)** const
 
-Return whether the file is currently opened.
+Returns ``true`` if the file is currently opened.
 
 .. _class_File_open:
 
 - :ref:`int<class_int>`  **open**  **(** :ref:`String<class_string>` path, :ref:`int<class_int>` flags  **)**
 
-Open the file for writing or reading, depending on the flags.
+Opens the file for writing or reading, depending on the flags.
 
 .. _class_File_open_compressed:
 
 - :ref:`int<class_int>`  **open_compressed**  **(** :ref:`String<class_string>` path, :ref:`int<class_int>` mode_flags, :ref:`int<class_int>` compression_mode=0  **)**
 
-Open a compressed file for reading or writing. The compression_mode can be set as one of the COMPRESSION\_\* constants.
+Opens a compressed file for reading or writing. Use COMPRESSION\_\* constants to set ``compression_mode``.
 
 .. _class_File_open_encrypted:
 
 - :ref:`int<class_int>`  **open_encrypted**  **(** :ref:`String<class_string>` path, :ref:`int<class_int>` mode_flags, :ref:`PoolByteArray<class_poolbytearray>` key  **)**
 
-Open an encrypted file in write or read mode. You need to pass a binary key to encrypt/decrypt it.
+Opens an encrypted file in write or read mode. You need to pass a binary key to encrypt/decrypt it.
 
 .. _class_File_open_encrypted_with_pass:
 
 - :ref:`int<class_int>`  **open_encrypted_with_pass**  **(** :ref:`String<class_string>` path, :ref:`int<class_int>` mode_flags, :ref:`String<class_string>` pass  **)**
 
-Open an encrypted file in write or read mode. You need to pass a password to encrypt/decrypt it.
+Opens an encrypted file in write or read mode. You need to pass a password to encrypt/decrypt it.
 
 .. _class_File_seek:
 
@@ -320,13 +322,13 @@ Change the file reading/writing cursor to the specified position (in bytes from
 
 - void  **seek_end**  **(** :ref:`int<class_int>` position=0  **)**
 
-Change the file reading/writing cursor to the specified position (in bytes from the end of the file). Note that this is an offset, so you should use negative numbers or the cursor will be at the end of the file.
+Changes the file reading/writing cursor to the specified position (in bytes from the end of the file). Note that this is an offset, so you should use negative numbers or the cursor will be at the end of the file.
 
 .. _class_File_set_endian_swap:
 
 - void  **set_endian_swap**  **(** :ref:`bool<class_bool>` enable  **)**
 
-Set whether to swap the endianness of the file. Enable this if you're dealing with files written in big endian machines.
+If ``true`` the file's endianness is swapped. Use this if you're dealing with files written in big endian machines.
 
 Note that this is about the file format, not CPU type. This is always reseted to ``false`` whenever you open the file.
 
@@ -334,72 +336,72 @@ Note that this is about the file format, not CPU type. This is always reseted to
 
 - void  **store_16**  **(** :ref:`int<class_int>` value  **)**
 
-Store an integer as 16 bits in the file.
+Stores an integer as 16 bits in the file.
 
 .. _class_File_store_32:
 
 - void  **store_32**  **(** :ref:`int<class_int>` value  **)**
 
-Store an integer as 32 bits in the file.
+Stores an integer as 32 bits in the file.
 
 .. _class_File_store_64:
 
 - void  **store_64**  **(** :ref:`int<class_int>` value  **)**
 
-Store an integer as 64 bits in the file.
+Stores an integer as 64 bits in the file.
 
 .. _class_File_store_8:
 
 - void  **store_8**  **(** :ref:`int<class_int>` value  **)**
 
-Store an integer as 8 bits in the file.
+Stores an integer as 8 bits in the file.
 
 .. _class_File_store_buffer:
 
 - void  **store_buffer**  **(** :ref:`PoolByteArray<class_poolbytearray>` buffer  **)**
 
-Store the given array of bytes in the file.
+Stores the given array of bytes in the file.
 
 .. _class_File_store_double:
 
 - void  **store_double**  **(** :ref:`float<class_float>` value  **)**
 
-Store a floating point number as 64 bits in the file.
+Stores a floating point number as 64 bits in the file.
 
 .. _class_File_store_float:
 
 - void  **store_float**  **(** :ref:`float<class_float>` value  **)**
 
-Store a floating point number as 32 bits in the file.
+Stores a floating point number as 32 bits in the file.
 
 .. _class_File_store_line:
 
 - void  **store_line**  **(** :ref:`String<class_string>` line  **)**
 
-Store the given :ref:`String<class_string>` as a line in the file.
+Stores the given :ref:`String<class_string>` as a line in the file.
 
 .. _class_File_store_pascal_string:
 
 - void  **store_pascal_string**  **(** :ref:`String<class_string>` string  **)**
 
-Store the given :ref:`String<class_string>` as a line in the file in Pascal format (i.e. also store the length of the string).
+Stores the given :ref:`String<class_string>` as a line in the file in Pascal format (i.e. also store the length of the string).
 
 .. _class_File_store_real:
 
 - void  **store_real**  **(** :ref:`float<class_float>` value  **)**
 
-Store a floating point number in the file.
+Stores a floating point number in the file.
 
 .. _class_File_store_string:
 
 - void  **store_string**  **(** :ref:`String<class_string>` string  **)**
 
-Store the given :ref:`String<class_string>` in the file.
+Stores the given :ref:`String<class_string>` in the file.
 
 .. _class_File_store_var:
 
 - void  **store_var**  **(** :ref:`Variant<class_variant>` value  **)**
 
-Store any Variant value in the file.
+Stores any Variant value in the file.
 
 

+ 4 - 2
classes/class_funcref.rst

@@ -41,16 +41,18 @@ Member Function Description
 
 - :ref:`Variant<class_variant>`  **call_func**  **(** **)** vararg
 
+Calls the referenced function previously set by :ref:`set_function<class_FuncRef_set_function>` or :ref:`@GDScript.funcref<class_@GDScript_funcref>`.
+
 .. _class_FuncRef_set_function:
 
 - void  **set_function**  **(** :ref:`String<class_string>` name  **)**
 
-Set the name of the function to call on the object, without parentheses or any parameters.
+The name of the referenced function to call on the object, without parentheses or any parameters.
 
 .. _class_FuncRef_set_instance:
 
 - void  **set_instance**  **(** :ref:`Object<class_object>` instance  **)**
 
-Set the object on which to call the referenced function. This object must be of a type actually inheriting from :ref:`Object<class_object>`, not a built-in type such as :ref:`int<class_int>`, :ref:`Vector2<class_vector2>` or :ref:`Dictionary<class_dictionary>`.
+The object containing the referenced function. This object must be of a type actually inheriting from :ref:`Object<class_object>`, not a built-in type such as :ref:`int<class_int>`, :ref:`Vector2<class_vector2>` or :ref:`Dictionary<class_dictionary>`.
 
 

+ 6 - 0
classes/class_gdnativelibrary.rst

@@ -19,6 +19,8 @@ Brief Description
 Member Functions
 ----------------
 
++------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_string>`  | :ref:`get_active_library_path<class_GDNativeLibrary_get_active_library_path>`  **(** **)** const                                                     |
 +------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`String<class_string>`  | :ref:`get_library_path<class_GDNativeLibrary_get_library_path>`  **(** :ref:`String<class_string>` platform  **)** const                             |
 +------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
@@ -37,6 +39,10 @@ Member Variables
 Member Function Description
 ---------------------------
 
+.. _class_GDNativeLibrary_get_active_library_path:
+
+- :ref:`String<class_string>`  **get_active_library_path**  **(** **)** const
+
 .. _class_GDNativeLibrary_get_library_path:
 
 - :ref:`String<class_string>`  **get_library_path**  **(** :ref:`String<class_string>` platform  **)** const

+ 3 - 3
classes/class_gradient.rst

@@ -14,7 +14,7 @@ Gradient
 Brief Description
 -----------------
 
-Color interpolator node
+Color interpolator node.
 
 Member Functions
 ----------------
@@ -48,8 +48,8 @@ Member Functions
 Member Variables
 ----------------
 
-- :ref:`PoolColorArray<class_poolcolorarray>` **colors**
-- :ref:`PoolRealArray<class_poolrealarray>` **offsets**
+- :ref:`PoolColorArray<class_poolcolorarray>` **colors** - Gradient's colors returned as a [PoolColorArray].
+- :ref:`PoolRealArray<class_poolrealarray>` **offsets** - Gradient's offsets returned as a [PoolRealArray].
 
 Description
 -----------

+ 1 - 1
classes/class_gridcontainer.rst

@@ -28,7 +28,7 @@ Member Functions
 Member Variables
 ----------------
 
-- :ref:`int<class_int>` **columns**
+- :ref:`int<class_int>` **columns** - The number of columns in the [code]GridContainer[/code]. If modified, [code]GridContainer[/code] reorders its children to accommodate the new layout.
 
 Description
 -----------

+ 6 - 0
classes/class_gridmap.rst

@@ -40,6 +40,8 @@ Member Functions
 +----------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`MeshLibrary<class_meshlibrary>`  | :ref:`get_theme<class_GridMap_get_theme>`  **(** **)** const                                                                                                                                               |
 +----------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Array<class_array>`              | :ref:`get_used_cells<class_GridMap_get_used_cells>`  **(** **)** const                                                                                                                                     |
++----------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                                   | :ref:`resource_changed<class_GridMap_resource_changed>`  **(** :ref:`Resource<class_resource>` resource  **)**                                                                                             |
 +----------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                                   | :ref:`set_cell_item<class_GridMap_set_cell_item>`  **(** :ref:`int<class_int>` x, :ref:`int<class_int>` y, :ref:`int<class_int>` z, :ref:`int<class_int>` item, :ref:`int<class_int>` orientation=0  **)** |
@@ -107,6 +109,10 @@ Member Function Description
 
 - :ref:`MeshLibrary<class_meshlibrary>`  **get_theme**  **(** **)** const
 
+.. _class_GridMap_get_used_cells:
+
+- :ref:`Array<class_array>`  **get_used_cells**  **(** **)** const
+
 .. _class_GridMap_resource_changed:
 
 - void  **resource_changed**  **(** :ref:`Resource<class_resource>` resource  **)**

+ 4 - 2
classes/class_imagetexture.rst

@@ -51,7 +51,7 @@ Numeric Constants
 Description
 -----------
 
-A :ref:`Texture<class_texture>` based on an :ref:`Image<class_image>`. Can be created from an :ref:`Image<class_image>`.
+A :ref:`Texture<class_texture>` based on an :ref:`Image<class_image>`. Can be created from an :ref:`Image<class_image>` with :ref:`create_from_image<class_ImageTexture_create_from_image>`.
 
 Member Function Description
 ---------------------------
@@ -94,7 +94,7 @@ Return the storage type. One of :ref:`ImageTexture<class_imagetexture>`.STORAGE\
 
 - void  **load**  **(** :ref:`String<class_string>` path  **)**
 
-Load an ImageTexure.
+Load an :ref:`ImageTexture<class_imagetexture>`.
 
 .. _class_ImageTexture_set_data:
 
@@ -112,6 +112,8 @@ Set the storage quality in case of :ref:`ImageTexture<class_imagetexture>`.STORA
 
 - void  **set_size_override**  **(** :ref:`Vector2<class_vector2>` size  **)**
 
+Resizes the ``ImageTexture`` to the specified dimensions.
+
 .. _class_ImageTexture_set_storage:
 
 - void  **set_storage**  **(** :ref:`int<class_int>` mode  **)**

+ 14 - 9
classes/class_immediategeometry.rst

@@ -14,7 +14,7 @@ ImmediateGeometry
 Brief Description
 -----------------
 
-Node to draw simple geometry from code, ala OpenGL 1.x
+Draws simple geometry from code.
 
 Member Functions
 ----------------
@@ -41,6 +41,11 @@ Member Functions
 | void  | :ref:`set_uv2<class_ImmediateGeometry_set_uv2>`  **(** :ref:`Vector2<class_vector2>` uv  **)**                                                                                                    |
 +-------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 
+Description
+-----------
+
+Draws simple geometry from code. Uses a drawing mode similar to OpenGL 1.x.
+
 Member Function Description
 ---------------------------
 
@@ -54,7 +59,7 @@ Simple helper to draw a uvsphere, with given latitudes, longitude and radius.
 
 - void  **add_vertex**  **(** :ref:`Vector3<class_vector3>` position  **)**
 
-Add a vertex with the currently set color/uv/etc.
+Adds a vertex with the currently set color/uv/etc.
 
 .. _class_ImmediateGeometry_begin:
 
@@ -68,42 +73,42 @@ For the type of primitive, use the :ref:`Mesh<class_mesh>`.PRIMITIVE\_\* enumera
 
 - void  **clear**  **(** **)**
 
-Clear everything that was drawn using begin/end.
+Clears everything that was drawn using begin/end.
 
 .. _class_ImmediateGeometry_end:
 
 - void  **end**  **(** **)**
 
-Call this when done adding a batch of geometry, otherwise it can't be displayed.
+Ends a drawing context and displays the results.
 
 .. _class_ImmediateGeometry_set_color:
 
 - void  **set_color**  **(** :ref:`Color<class_color>` color  **)**
 
-Set the color that the next vertex will use to be drawn.
+The current drawing color.
 
 .. _class_ImmediateGeometry_set_normal:
 
 - void  **set_normal**  **(** :ref:`Vector3<class_vector3>` normal  **)**
 
-Set the normal that the next vertex will use to be drawn.
+The next vertex's normal.
 
 .. _class_ImmediateGeometry_set_tangent:
 
 - void  **set_tangent**  **(** :ref:`Plane<class_plane>` tangent  **)**
 
-Set the tangent (and binormal facing) that the next vertex will use to be drawn.
+The next vertex's tangent (and binormal facing).
 
 .. _class_ImmediateGeometry_set_uv:
 
 - void  **set_uv**  **(** :ref:`Vector2<class_vector2>` uv  **)**
 
-Set the UV that the next vertex will use to be drawn.
+The next vertex's UV.
 
 .. _class_ImmediateGeometry_set_uv2:
 
 - void  **set_uv2**  **(** :ref:`Vector2<class_vector2>` uv  **)**
 
-Set the second layer of UV that the next vertex will use to be drawn.
+The next vertex's second layer UV.
 
 

+ 6 - 0
classes/class_input.rst

@@ -76,6 +76,8 @@ Member Functions
 +--------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`bool<class_bool>`        | :ref:`is_mouse_button_pressed<class_Input_is_mouse_button_pressed>`  **(** :ref:`int<class_int>` button  **)** const                                                                                                               |
 +--------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                           | :ref:`joy_connection_changed<class_Input_joy_connection_changed>`  **(** :ref:`int<class_int>` device, :ref:`bool<class_bool>` connected, :ref:`String<class_string>` name, :ref:`String<class_string>` guid  **)**                |
++--------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                           | :ref:`parse_input_event<class_Input_parse_input_event>`  **(** :ref:`InputEvent<class_inputevent>` event  **)**                                                                                                                    |
 +--------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                           | :ref:`remove_joy_mapping<class_Input_remove_joy_mapping>`  **(** :ref:`String<class_string>` guid  **)**                                                                                                                           |
@@ -262,6 +264,10 @@ Returns true or false depending on whether the key is pressed or not. You can pa
 
 Returns true or false depending on whether mouse button is pressed or not. You can pass BUTTON\_\*, which are pre-defined constants listed in :ref:`@Global Scope<class_@global scope>`.
 
+.. _class_Input_joy_connection_changed:
+
+- void  **joy_connection_changed**  **(** :ref:`int<class_int>` device, :ref:`bool<class_bool>` connected, :ref:`String<class_string>` name, :ref:`String<class_string>` guid  **)**
+
 .. _class_Input_parse_input_event:
 
 - void  **parse_input_event**  **(** :ref:`InputEvent<class_inputevent>` event  **)**

+ 10 - 1
classes/class_json.rst

@@ -14,7 +14,7 @@ JSON
 Brief Description
 -----------------
 
-
+Helper class for parsing JSON data.
 
 Member Functions
 ----------------
@@ -25,6 +25,11 @@ Member Functions
 | :ref:`String<class_string>`                    | :ref:`print<class_JSON_print>`  **(** :ref:`Variant<class_variant>` value  **)** |
 +------------------------------------------------+----------------------------------------------------------------------------------+
 
+Description
+-----------
+
+Helper class for parsing JSON data.
+
 Member Function Description
 ---------------------------
 
@@ -32,8 +37,12 @@ Member Function Description
 
 - :ref:`JSONParseResult<class_jsonparseresult>`  **parse**  **(** :ref:`String<class_string>` json  **)**
 
+Parses a JSON encoded string and returns a :ref:`JSONParseResult<class_jsonparseresult>` containing the result.
+
 .. _class_JSON_print:
 
 - :ref:`String<class_string>`  **print**  **(** :ref:`Variant<class_variant>` value  **)**
 
+Converts a Variant var to JSON text and returns the result. Useful for serializing data to store or send over the network.
+
 

+ 18 - 5
classes/class_jsonparseresult.rst

@@ -14,7 +14,7 @@ JSONParseResult
 Brief Description
 -----------------
 
-
+Data class wrapper for decoded JSON.
 
 Member Functions
 ----------------
@@ -40,10 +40,23 @@ Member Functions
 Member Variables
 ----------------
 
-- :ref:`int<class_int>` **error**
-- :ref:`int<class_int>` **error_line**
-- :ref:`String<class_string>` **error_string**
-- :ref:`Variant<class_variant>` **result**
+- :ref:`int<class_int>` **error** - The error type if JSON source was not successfully parsed. See [@Global Scope]ERR_* constants.
+- :ref:`int<class_int>` **error_line** - The line number where the error occurred if JSON source was not successfully parsed.
+- :ref:`String<class_string>` **error_string** - The error message if JSON source was not successfully parsed. See [@Global Scope]ERR_* constants.
+- :ref:`Variant<class_variant>` **result** - A [Variant] containing the parsed JSON. Use typeof() to check if it is what you expect. For exemple, if JSON source starts with braces [code]{}[/code] a [Dictionary] will be returned, if JSON source starts with array braces [code][][/code] an [Array] will be returned.
+			[i]Be aware that the JSON specification does not define integer or float types, but only a number type. Therefore, parsing a JSON text will convert all numerical values to float types.[/i]
+			[codeblock]
+			p = JSON.parse('["hello", "world", "!"]')
+			if typeof(p) == TYPE_ARRAY:
+				print(p[0]) # prints 'hello'
+			else:
+				print("unexpected results")
+			[/codeblock]
+
+Description
+-----------
+
+Returned by :ref:`JSON.parse<class_JSON_parse>`, :ref:`JSONParseResult<class_jsonparseresult>` contains decoded JSON or error information if JSON source not successfully parsed. You can check if JSON source was successfully parsed with ``if json_result.error == 0``.
 
 Member Function Description
 ---------------------------

+ 32 - 2
classes/class_kinematicbody.rst

@@ -46,7 +46,7 @@ Member Functions
 Member Variables
 ----------------
 
-- :ref:`float<class_float>` **collision/safe_margin**
+- :ref:`float<class_float>` **collision/safe_margin** - If the body is at least this close to another body, this body will consider them to be colliding.
 
 Description
 -----------
@@ -55,7 +55,7 @@ Kinematic bodies are special types of bodies that are meant to be user-controlle
 
 Simulated Motion: When these bodies are moved manually, either from code or from an AnimationPlayer (with process mode set to fixed), the physics will automatically compute an estimate of their linear and angular velocity. This makes them very useful for moving platforms or other AnimationPlayer-controlled objects (like a door, a bridge that opens, etc).
 
-Kinematic Characters: KinematicBody also has an api for moving objects (the :ref:`move<class_KinematicBody_move>` method) while performing collision tests. This makes them really useful to implement characters that collide against a world, but that don't require advanced physics.
+Kinematic Characters: KinematicBody also has an API for moving objects (the :ref:`move_and_collide<class_KinematicBody_move_and_collide>` and :ref:`move_and_slide<class_KinematicBody_move_and_slide>` methods) while performing collision tests. This makes them really useful to implement characters that collide against a world, but that don't require advanced physics.
 
 Member Function Description
 ---------------------------
@@ -64,6 +64,8 @@ Member Function Description
 
 - :ref:`Vector3<class_vector3>`  **get_floor_velocity**  **(** **)** const
 
+Returns the velocity of the floor. Only updates when calling :ref:`move_and_slide<class_KinematicBody_move_and_slide>`.
+
 .. _class_KinematicBody_get_safe_margin:
 
 - :ref:`float<class_float>`  **get_safe_margin**  **(** **)** const
@@ -72,30 +74,56 @@ Member Function Description
 
 - :ref:`KinematicCollision<class_kinematiccollision>`  **get_slide_collision**  **(** :ref:`int<class_int>` slide_idx  **)**
 
+Returns a :ref:`KinematicCollision<class_kinematiccollision>`, which contains information about a collision that occured during the last :ref:`move_and_slide<class_KinematicBody_move_and_slide>` call. Since the body can collide several times in a single call to :ref:`move_and_slide<class_KinematicBody_move_and_slide>`, you must specify the index of the collision in the range 0 to (:ref:`get_slide_count<class_KinematicBody_get_slide_count>`()-1).
+
 .. _class_KinematicBody_get_slide_count:
 
 - :ref:`int<class_int>`  **get_slide_count**  **(** **)** const
 
+Returns the number of times the body collided and changed direction during the last call to :ref:`move_and_slide<class_KinematicBody_move_and_slide>`.
+
 .. _class_KinematicBody_is_on_ceiling:
 
 - :ref:`bool<class_bool>`  **is_on_ceiling**  **(** **)** const
 
+Returns ``true`` if the body is on the ceiling. Only updates when calling :ref:`move_and_slide<class_KinematicBody_move_and_slide>`.
+
 .. _class_KinematicBody_is_on_floor:
 
 - :ref:`bool<class_bool>`  **is_on_floor**  **(** **)** const
 
+Returns ``true`` if the body is on the floor. Only updates when calling :ref:`move_and_slide<class_KinematicBody_move_and_slide>`.
+
 .. _class_KinematicBody_is_on_wall:
 
 - :ref:`bool<class_bool>`  **is_on_wall**  **(** **)** const
 
+Returns ``true`` if the body is on a wall. Only updates when calling :ref:`move_and_slide<class_KinematicBody_move_and_slide>`.
+
 .. _class_KinematicBody_move_and_collide:
 
 - :ref:`KinematicCollision<class_kinematiccollision>`  **move_and_collide**  **(** :ref:`Vector3<class_vector3>` rel_vec  **)**
 
+Moves the body along the vector ``rel_vec``. The body will stop if it collides. Returns a :ref:`KinematicCollision<class_kinematiccollision>`, which contains information about the collision.
+
 .. _class_KinematicBody_move_and_slide:
 
 - :ref:`Vector3<class_vector3>`  **move_and_slide**  **(** :ref:`Vector3<class_vector3>` linear_velocity, :ref:`Vector3<class_vector3>` floor_normal=Vector3( 0, 0, 0 ), :ref:`float<class_float>` slope_stop_min_velocity=0.05, :ref:`int<class_int>` max_slides=4, :ref:`float<class_float>` floor_max_angle=0.785398  **)**
 
+Moves the body along a vector. If the body collides with another, it will slide along the other body rather than stop immediately. If the other body is a :ref:`KinematicBody<class_kinematicbody>` or :ref:`RigidBody<class_rigidbody>`, it will also be affected by the motion of the other body. You can use this to make moving or rotating platforms, or to make nodes push other nodes.
+
+``linear_velocity`` is a value in pixels per second. Unlike in for example :ref:`move_and_collide<class_KinematicBody_move_and_collide>`, you should *not* multiply it with ``delta`` — this is done by the method.
+
+``floor_normal`` is the up direction, used to determine what is a wall and what is a floor or a ceiling. If set to the default value of ``Vector2(0, 0)``, everything is considered a wall. This is useful for topdown games.
+
+If the body is standing on a slope and the horizontal speed (relative to the floor's speed) goes below ``slope_stop_min_velocity``, the body will stop completely. This prevents the body from sliding down slopes when you include gravity in ``linear_velocity``. When set to lower values, the body will not be able to stand still on steep slopes.
+
+If the body collides, it will change direction a maximum of ``max_bounces`` times before it stops.
+
+``floor_max_angle`` is the maximum angle (in radians) where a slope is still considered a floor (or a ceiling), rather than a wall. The default value equals 45 degrees.
+
+Returns the movement that remained when the body stopped. To get more detailed information about collisions that occured, use :ref:`get_slide_collision<class_KinematicBody_get_slide_collision>`.
+
 .. _class_KinematicBody_set_safe_margin:
 
 - void  **set_safe_margin**  **(** :ref:`float<class_float>` pixels  **)**
@@ -104,4 +132,6 @@ Member Function Description
 
 - :ref:`bool<class_bool>`  **test_move**  **(** :ref:`Transform<class_transform>` from, :ref:`Vector3<class_vector3>` rel_vec  **)**
 
+Checks for collisions without moving the body. Virtually sets the node's position, scale and rotation to that of the given :ref:`Transform<class_transform>`, then tries to move the body along the vector ``rel_vec``. Returns ``true`` if a collision would occur.
+
 

+ 30 - 4
classes/class_kinematicbody2d.rst

@@ -46,7 +46,7 @@ Member Functions
 Member Variables
 ----------------
 
-- :ref:`float<class_float>` **collision/safe_margin**
+- :ref:`float<class_float>` **collision/safe_margin** - If the body is at least this close to another body, this body will consider them to be colliding.
 
 Description
 -----------
@@ -55,7 +55,7 @@ Kinematic bodies are special types of bodies that are meant to be user-controlle
 
 Simulated Motion: When these bodies are moved manually, either from code or from an AnimationPlayer (with process mode set to fixed), the physics will automatically compute an estimate of their linear and angular velocity. This makes them very useful for moving platforms or other AnimationPlayer-controlled objects (like a door, a bridge that opens, etc).
 
-Kinematic Characters: KinematicBody2D also has an api for moving objects (the :ref:`move<class_KinematicBody2D_move>` method) while performing collision tests. This makes them really useful to implement characters that collide against a world, but that don't require advanced physics.
+Kinematic Characters: KinematicBody2D also has an API for moving objects (the :ref:`move_and_collide<class_KinematicBody2D_move_and_collide>` and :ref:`move_and_slide<class_KinematicBody2D_move_and_slide>` methods) while performing collision tests. This makes them really useful to implement characters that collide against a world, but that don't require advanced physics.
 
 Member Function Description
 ---------------------------
@@ -64,6 +64,8 @@ Member Function Description
 
 - :ref:`Vector2<class_vector2>`  **get_floor_velocity**  **(** **)** const
 
+Returns the velocity of the floor. Only updates when calling :ref:`move_and_slide<class_KinematicBody2D_move_and_slide>`.
+
 .. _class_KinematicBody2D_get_safe_margin:
 
 - :ref:`float<class_float>`  **get_safe_margin**  **(** **)** const
@@ -72,32 +74,56 @@ Member Function Description
 
 - :ref:`KinematicCollision2D<class_kinematiccollision2d>`  **get_slide_collision**  **(** :ref:`int<class_int>` slide_idx  **)**
 
+Returns a :ref:`KinematicCollision2D<class_kinematiccollision2d>`, which contains information about a collision that occured during the last :ref:`move_and_slide<class_KinematicBody2D_move_and_slide>` call. Since the body can collide several times in a single call to :ref:`move_and_slide<class_KinematicBody2D_move_and_slide>`, you must specify the index of the collision in the range 0 to (:ref:`get_slide_count<class_KinematicBody2D_get_slide_count>`()-1).
+
 .. _class_KinematicBody2D_get_slide_count:
 
 - :ref:`int<class_int>`  **get_slide_count**  **(** **)** const
 
+Returns the number of times the body collided and changed direction during the last call to :ref:`move_and_slide<class_KinematicBody2D_move_and_slide>`.
+
 .. _class_KinematicBody2D_is_on_ceiling:
 
 - :ref:`bool<class_bool>`  **is_on_ceiling**  **(** **)** const
 
+Returns ``true`` if the body is on the ceiling. Only updates when calling :ref:`move_and_slide<class_KinematicBody2D_move_and_slide>`.
+
 .. _class_KinematicBody2D_is_on_floor:
 
 - :ref:`bool<class_bool>`  **is_on_floor**  **(** **)** const
 
+Returns ``true`` if the body is on the floor. Only updates when calling :ref:`move_and_slide<class_KinematicBody2D_move_and_slide>`.
+
 .. _class_KinematicBody2D_is_on_wall:
 
 - :ref:`bool<class_bool>`  **is_on_wall**  **(** **)** const
 
+Returns ``true`` if the body is on a wall. Only updates when calling :ref:`move_and_slide<class_KinematicBody2D_move_and_slide>`.
+
 .. _class_KinematicBody2D_move_and_collide:
 
 - :ref:`KinematicCollision2D<class_kinematiccollision2d>`  **move_and_collide**  **(** :ref:`Vector2<class_vector2>` rel_vec  **)**
 
-Moves the body along the given vector. The body will stop if it collides. Returns a :ref:`KinematicCollision2D<class_kinematiccollision2d>`, which contains information about the colliding body.
+Moves the body along the vector ``rel_vec``. The body will stop if it collides. Returns a :ref:`KinematicCollision2D<class_kinematiccollision2d>`, which contains information about the collision.
 
 .. _class_KinematicBody2D_move_and_slide:
 
 - :ref:`Vector2<class_vector2>`  **move_and_slide**  **(** :ref:`Vector2<class_vector2>` linear_velocity, :ref:`Vector2<class_vector2>` floor_normal=Vector2( 0, 0 ), :ref:`float<class_float>` slope_stop_min_velocity=5, :ref:`int<class_int>` max_bounces=4, :ref:`float<class_float>` floor_max_angle=0.785398  **)**
 
+Moves the body along a vector. If the body collides with another, it will slide along the other body rather than stop immediately. If the other body is a :ref:`KinematicBody2D<class_kinematicbody2d>` or :ref:`RigidBody2D<class_rigidbody2d>`, it will also be affected by the motion of the other body. You can use this to make moving or rotating platforms, or to make nodes push other nodes.
+
+``linear_velocity`` is a value in pixels per second. Unlike in for example :ref:`move_and_collide<class_KinematicBody2D_move_and_collide>`, you should *not* multiply it with ``delta`` — this is done by the method.
+
+``floor_normal`` is the up direction, used to determine what is a wall and what is a floor or a ceiling. If set to the default value of ``Vector2(0, 0)``, everything is considered a wall. This is useful for topdown games.
+
+If the body is standing on a slope and the horizontal speed (relative to the floor's speed) goes below ``slope_stop_min_velocity``, the body will stop completely. This prevents the body from sliding down slopes when you include gravity in ``linear_velocity``. When set to lower values, the body will not be able to stand still on steep slopes.
+
+If the body collides, it will change direction a maximum of ``max_bounces`` times before it stops.
+
+``floor_max_angle`` is the maximum angle (in radians) where a slope is still considered a floor (or a ceiling), rather than a wall. The default value equals 45 degrees.
+
+Returns the movement that remained when the body stopped. To get more detailed information about collisions that occured, use :ref:`get_slide_collision<class_KinematicBody2D_get_slide_collision>`.
+
 .. _class_KinematicBody2D_set_safe_margin:
 
 - void  **set_safe_margin**  **(** :ref:`float<class_float>` pixels  **)**
@@ -106,6 +132,6 @@ Moves the body along the given vector. The body will stop if it collides. Return
 
 - :ref:`bool<class_bool>`  **test_move**  **(** :ref:`Transform2D<class_transform2d>` from, :ref:`Vector2<class_vector2>` rel_vec  **)**
 
-Returns true if there would be a collision if the body moved from the given point in the given direction.
+Checks for collisions without moving the body. Virtually sets the node's position, scale and rotation to that of the given :ref:`Transform2D<class_transform2d>`, then tries to move the body along the vector ``rel_vec``. Returns ``true`` if a collision would occur.
 
 

+ 13 - 11
classes/class_label.rst

@@ -106,7 +106,7 @@ Member Function Description
 
 - :ref:`int<class_int>`  **get_align**  **(** **)** const
 
-Return the alignment mode (any of the ALIGN\_\* enumeration values).
+Returns the alignment mode (any of the ALIGN\_\* enumeration values).
 
 .. _class_Label_get_line_count:
 
@@ -124,65 +124,67 @@ Returns the font size in pixels.
 
 - :ref:`int<class_int>`  **get_lines_skipped**  **(** **)** const
 
-Return the the number of lines to skipped before displaying.
+Returns the the number of lines to skip before displaying.
 
 .. _class_Label_get_max_lines_visible:
 
 - :ref:`int<class_int>`  **get_max_lines_visible**  **(** **)** const
 
-Return the restricted number of lines to display. Returns -1 if unrestricted.
+Returns the maximum number of lines to display. Returns -1 if unrestricted.
 
 .. _class_Label_get_percent_visible:
 
 - :ref:`float<class_float>`  **get_percent_visible**  **(** **)** const
 
-Return the restricted number of characters to display (as a percentage of the total text).
+Returns the maximum number of characters to display as a percentage of the total text.
 
 .. _class_Label_get_text:
 
 - :ref:`String<class_string>`  **get_text**  **(** **)** const
 
-Return the label text. Text can contain newlines.
+Returns the label text. Text can contain newlines.
 
 .. _class_Label_get_total_character_count:
 
 - :ref:`int<class_int>`  **get_total_character_count**  **(** **)** const
 
-Return the total length of the text.
+Returns the total length of the text.
 
 .. _class_Label_get_valign:
 
 - :ref:`int<class_int>`  **get_valign**  **(** **)** const
 
-Return the vertical alignment mode (any of the VALIGN\_\* enumeration values).
+Returns the vertical alignment mode (any of the VALIGN\_\* enumeration values).
 
 .. _class_Label_get_visible_characters:
 
 - :ref:`int<class_int>`  **get_visible_characters**  **(** **)** const
 
-Return the restricted number of characters to display. Returns -1 if unrestricted.
+Returns the restricted number of characters to display. Returns -1 if unrestricted.
 
 .. _class_Label_get_visible_line_count:
 
 - :ref:`int<class_int>`  **get_visible_line_count**  **(** **)** const
 
+Returns the number of lines shown. Useful if the ``Label`` 's height cannot currently display all lines.
+
 .. _class_Label_has_autowrap:
 
 - :ref:`bool<class_bool>`  **has_autowrap**  **(** **)** const
 
-Return the state of the *autowrap* mode (see :ref:`set_autowrap<class_Label_set_autowrap>`).
+Returns ``true`` if *autowrap* mode (see :ref:`set_autowrap<class_Label_set_autowrap>`).
 
 .. _class_Label_is_clipping_text:
 
 - :ref:`bool<class_bool>`  **is_clipping_text**  **(** **)** const
 
-Return ``true`` if text would be cut off if it is too wide.
+Returns ``true`` if text would be cut off if it is too wide.
 
 .. _class_Label_is_uppercase:
 
 - :ref:`bool<class_bool>`  **is_uppercase**  **(** **)** const
 
-Return ``true`` if text is displayed in all capitals.
+Returns ``true`` if text is displayed in all capitals.
 
 .. _class_Label_set_align:
 

+ 13 - 10
classes/class_largetexture.rst

@@ -40,14 +40,17 @@ Member Functions
 Member Variables
 ----------------
 
-- :ref:`Array<class_array>` **_data**
+- :ref:`Array<class_array>` **_data** - Returns an [Array] with offsets and textures data of each added piece. Schema is [offsets1, texture1, offsets2, texture2, large_texture_size].
+			[code]offsets[/code] : [Vector2] offsets of the texture piece.
+			[code]second[/code] : [StreamTexture] data of the texture piece.
+			[code]last entry[/code] : [Vector2] size of the entire large texture.
 
 Description
 -----------
 
 A Texture capable of storing many smaller Textures with offsets.
 
-You can dynamically add pieces(Textures) to this fLargeTexture] using different offsets.
+You can dynamically add pieces(:ref:`Texture<class_texture>`) to this ``LargeTexture`` using different offsets.
 
 Member Function Description
 ---------------------------
@@ -56,48 +59,48 @@ Member Function Description
 
 - :ref:`int<class_int>`  **add_piece**  **(** :ref:`Vector2<class_vector2>` ofs, :ref:`Texture<class_texture>` texture  **)**
 
-Add another :ref:`Texture<class_texture>` to this :ref:`LargeTexture<class_largetexture>`, starting on offset "ofs".
+Add another :ref:`Texture<class_texture>` to this ``LargeTexture``, starting on offset "ofs".
 
 .. _class_LargeTexture_clear:
 
 - void  **clear**  **(** **)**
 
-Clear the :ref:`LargeTexture<class_largetexture>`.
+Clears the ``LargeTexture``.
 
 .. _class_LargeTexture_get_piece_count:
 
 - :ref:`int<class_int>`  **get_piece_count**  **(** **)** const
 
-Return the number of pieces currently in this :ref:`LargeTexture<class_largetexture>`.
+Returns the number of pieces currently in this ``LargeTexture``.
 
 .. _class_LargeTexture_get_piece_offset:
 
 - :ref:`Vector2<class_vector2>`  **get_piece_offset**  **(** :ref:`int<class_int>` idx  **)** const
 
-Return the offset of the piece with index "idx".
+Returns the offset of the piece with index "idx".
 
 .. _class_LargeTexture_get_piece_texture:
 
 - :ref:`Texture<class_texture>`  **get_piece_texture**  **(** :ref:`int<class_int>` idx  **)** const
 
-Return the :ref:`Texture<class_texture>` of the piece with index "idx".
+Returns the :ref:`Texture<class_texture>` of the piece with index "idx".
 
 .. _class_LargeTexture_set_piece_offset:
 
 - void  **set_piece_offset**  **(** :ref:`int<class_int>` idx, :ref:`Vector2<class_vector2>` ofs  **)**
 
-Set the offset of the piece with index "idx" to "ofs".
+Sets the offset of the piece with index "idx" to "ofs".
 
 .. _class_LargeTexture_set_piece_texture:
 
 - void  **set_piece_texture**  **(** :ref:`int<class_int>` idx, :ref:`Texture<class_texture>` texture  **)**
 
-Set the :ref:`Texture<class_texture>` of the piece with index "idx" to  "ofs".
+Sets the :ref:`Texture<class_texture>` of the piece with index "idx" to  "ofs".
 
 .. _class_LargeTexture_set_size:
 
 - void  **set_size**  **(** :ref:`Vector2<class_vector2>` size  **)**
 
-Set the size of this :ref:`LargeTexture<class_largetexture>`.
+Sets the size of this ``LargeTexture``.
 
 

+ 10 - 10
classes/class_light2d.rst

@@ -14,7 +14,7 @@ Light2D
 Brief Description
 -----------------
 
-Node that casts light in a 2D environment.
+Casts light in a 2D environment.
 
 Member Functions
 ----------------
@@ -123,7 +123,7 @@ Member Variables
 - :ref:`int<class_int>` **shadow_buffer_size** - Shadow buffer size. Default value: [code]2048[/code].
 - :ref:`Color<class_color>` **shadow_color** - [Color] of shadows cast by the Light2D.
 - :ref:`bool<class_bool>` **shadow_enabled** - If [code]true[/code] the Light2D will cast shadows. Default value: [code]false[/code].
-- :ref:`int<class_int>` **shadow_filter** - Shadow filter type. May be one of [code][None, PCF5, PCF9, PCF13][/code]. Default value: [code]None[/code].
+- :ref:`int<class_int>` **shadow_filter** - Shadow filter type. Use SHADOW_FILTER_* constants to set [code]shadow_filter[/code]. Default value: [code]None[/code].
 - :ref:`float<class_float>` **shadow_filter_smooth** - Smoothing value for shadows.
 - :ref:`float<class_float>` **shadow_gradient_length** - Smooth shadow gradient length.
 - :ref:`int<class_int>` **shadow_item_cull_mask** - The shadow mask. Used with [LightOccluder2D] to cast shadows. Only occluders with a matching shadow mask will cast shadows.
@@ -134,20 +134,20 @@ Numeric Constants
 -----------------
 
 - **MODE_ADD** = **0** --- Adds the value of pixels corresponding to the Light2D to the values of pixels under it. This is the common behaviour of a light.
-- **MODE_SUB** = **1** --- Subtract the value of pixels corresponding to the Light2D to the values of pixels under it, resulting in inversed light effect.
+- **MODE_SUB** = **1** --- Subtracts the value of pixels corresponding to the Light2D to the values of pixels under it, resulting in inversed light effect.
 - **MODE_MIX** = **2** --- Mix the value of pixels corresponding to the Light2D to the values of pixels under it by linear interpolation.
 - **MODE_MASK** = **3** --- The light texture of the Light2D is used as a mask, hiding or revealing parts of the screen underneath depending on the value of each pixel of the light (mask) texture.
-- **SHADOW_FILTER_NONE** = **0**
-- **SHADOW_FILTER_PCF3** = **1**
-- **SHADOW_FILTER_PCF5** = **2**
-- **SHADOW_FILTER_PCF7** = **3**
-- **SHADOW_FILTER_PCF9** = **4**
-- **SHADOW_FILTER_PCF13** = **5**
+- **SHADOW_FILTER_NONE** = **0** --- No filter applies to the shadow map. See :ref:`shadow_filter<class_Light2D_shadow_filter>`.
+- **SHADOW_FILTER_PCF3** = **1** --- Percentage closer filtering (3 samples) applies to the shadow map. See :ref:`shadow_filter<class_Light2D_shadow_filter>`.
+- **SHADOW_FILTER_PCF5** = **2** --- Percentage closer filtering (5 samples) applies to the shadow map. See :ref:`shadow_filter<class_Light2D_shadow_filter>`.
+- **SHADOW_FILTER_PCF7** = **3** --- Percentage closer filtering (7 samples) applies to the shadow map. See :ref:`shadow_filter<class_Light2D_shadow_filter>`.
+- **SHADOW_FILTER_PCF9** = **4** --- Percentage closer filtering (9 samples) applies to the shadow map. See :ref:`shadow_filter<class_Light2D_shadow_filter>`.
+- **SHADOW_FILTER_PCF13** = **5** --- Percentage closer filtering (13 samples) applies to the shadow map. See :ref:`shadow_filter<class_Light2D_shadow_filter>`.
 
 Description
 -----------
 
-Node that casts light in a 2D environment. Light is defined by a (usually grayscale) texture, a color, an energy value, a mode (see constants), and various other parameters (range and shadows-related). Note that Light2D can be used as a mask.
+Casts light in a 2D environment. Light is defined by a (usually grayscale) texture, a color, an energy value, a mode (see constants), and various other parameters (range and shadows-related). Note that Light2D can be used as a mask.
 
 Member Function Description
 ---------------------------

+ 27 - 21
classes/class_line2d.rst

@@ -78,29 +78,29 @@ Member Functions
 Member Variables
 ----------------
 
-- :ref:`int<class_int>` **begin_cap_mode**
-- :ref:`Color<class_color>` **default_color**
-- :ref:`int<class_int>` **end_cap_mode**
-- :ref:`Gradient<class_gradient>` **gradient**
-- :ref:`int<class_int>` **joint_mode**
-- :ref:`PoolVector2Array<class_poolvector2array>` **points**
-- :ref:`int<class_int>` **round_precision**
-- :ref:`float<class_float>` **sharp_limit**
-- :ref:`Texture<class_texture>` **texture**
-- :ref:`int<class_int>` **texture_mode**
-- :ref:`float<class_float>` **width**
+- :ref:`int<class_int>` **begin_cap_mode** - Controls the style of the line's first point. Use [code]LINE_CAP_*[/code] constants. Default value: [code]LINE_CAP_NONE[/code].
+- :ref:`Color<class_color>` **default_color** - The line's color. Will not be used if a gradient is set.
+- :ref:`int<class_int>` **end_cap_mode** - Controls the style of the line's last point. Use [code]LINE_CAP_*[/code] constants. Default value: [code]LINE_CAP_NONE[/code].
+- :ref:`Gradient<class_gradient>` **gradient** - The gradient is drawn through the whole line from start to finish. The default color will not be used if a gradient is set.
+- :ref:`int<class_int>` **joint_mode** - The style for the points inbetween the start and the end.
+- :ref:`PoolVector2Array<class_poolvector2array>` **points** - The points that form the lines. The line is drawn between every point set in this array.
+- :ref:`int<class_int>` **round_precision** - The smoothness of the rounded joints and caps. This is only used if a cap or joint is set as round.
+- :ref:`float<class_float>` **sharp_limit** - The direction difference in radians between vector points. This value is only used if [code]joint mode[/code] is set to [code]LINE_JOINT_SHARP[/code].
+- :ref:`Texture<class_texture>` **texture** - The texture used for the line's texture. Uses [code]texture_mode[/code] for drawing style.
+- :ref:`int<class_int>` **texture_mode** - The style to render the [code]texture[/code] on the line. Use [code]LINE_TEXTURE_*[/code] constants. Default value: [code]LINE_TEXTURE_NONE[/code].
+- :ref:`float<class_float>` **width** - The line's width.
 
 Numeric Constants
 -----------------
 
-- **LINE_JOINT_SHARP** = **0**
-- **LINE_JOINT_BEVEL** = **1**
-- **LINE_JOINT_ROUND** = **2**
-- **LINE_CAP_NONE** = **0**
-- **LINE_CAP_BOX** = **1**
-- **LINE_CAP_ROUND** = **2**
-- **LINE_TEXTURE_NONE** = **0**
-- **LINE_TEXTURE_TILE** = **1**
+- **LINE_JOINT_SHARP** = **0** --- The line's joints will be pointy. If ``sharp_limit`` is greater than the rotation of a joint, it becomes a bevel joint instead.
+- **LINE_JOINT_BEVEL** = **1** --- The line's joints will be bevelled/chamfered.
+- **LINE_JOINT_ROUND** = **2** --- The line's joints will be rounded.
+- **LINE_CAP_NONE** = **0** --- Don't have a line cap.
+- **LINE_CAP_BOX** = **1** --- Draws the line cap as a box.
+- **LINE_CAP_ROUND** = **2** --- Draws the line cap as a circle.
+- **LINE_TEXTURE_NONE** = **0** --- Takes the left pixels of the texture and renders it over the whole line.
+- **LINE_TEXTURE_TILE** = **1** --- Tiles the texture over the line. The texture need to be imported with Repeat Enabled for it to work properly.
 
 Description
 -----------
@@ -114,7 +114,7 @@ Member Function Description
 
 - void  **add_point**  **(** :ref:`Vector2<class_vector2>` position  **)**
 
-Add a point at the x/y position in the supplied :ref:`Vector2<class_vector2>`
+Add a point at the ``position``. Appends the point at the end of the line.
 
 .. _class_Line2D_get_begin_cap_mode:
 
@@ -140,10 +140,14 @@ Add a point at the x/y position in the supplied :ref:`Vector2<class_vector2>`
 
 - :ref:`int<class_int>`  **get_point_count**  **(** **)** const
 
+Returns the Line2D's amount of points.
+
 .. _class_Line2D_get_point_position:
 
 - :ref:`Vector2<class_vector2>`  **get_point_position**  **(** :ref:`int<class_int>` i  **)** const
 
+Returns point ``i[code]'s position.
+
 .. _class_Line2D_get_points:
 
 - :ref:`PoolVector2Array<class_poolvector2array>`  **get_points**  **(** **)** const
@@ -172,7 +176,7 @@ Add a point at the x/y position in the supplied :ref:`Vector2<class_vector2>`
 
 - void  **remove_point**  **(** :ref:`int<class_int>` i  **)**
 
-Remove the point at index 'i' from the line.
+Remove the point at index ``i`` from the line.
 
 .. _class_Line2D_set_begin_cap_mode:
 
@@ -198,6 +202,8 @@ Remove the point at index 'i' from the line.
 
 - void  **set_point_position**  **(** :ref:`int<class_int>` i, :ref:`Vector2<class_vector2>` position  **)**
 
+Overwites the position in point ``i`` with the supplied ``position``.
+
 .. _class_Line2D_set_points:
 
 - void  **set_points**  **(** :ref:`PoolVector2Array<class_poolvector2array>` points  **)**

+ 140 - 0
classes/class_mobilevrinterface.rst

@@ -0,0 +1,140 @@
+.. Generated automatically by doc/tools/makerst.py in Godot's source tree.
+.. DO NOT EDIT THIS FILE, but the MobileVRInterface.xml source instead.
+.. The source is found in doc/classes or modules/<name>/doc_classes.
+
+.. _class_MobileVRInterface:
+
+MobileVRInterface
+=================
+
+**Inherits:** :ref:`ARVRInterface<class_arvrinterface>` **<** :ref:`Reference<class_reference>` **<** :ref:`Object<class_object>`
+
+**Category:** Core
+
+Brief Description
+-----------------
+
+Generic mobile VR implementation
+
+Member Functions
+----------------
+
++----------------------------+---------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`  | :ref:`get_display_to_lens<class_MobileVRInterface_get_display_to_lens>`  **(** **)** const                                      |
++----------------------------+---------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`  | :ref:`get_display_width<class_MobileVRInterface_get_display_width>`  **(** **)** const                                          |
++----------------------------+---------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`  | :ref:`get_iod<class_MobileVRInterface_get_iod>`  **(** **)** const                                                              |
++----------------------------+---------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`  | :ref:`get_k1<class_MobileVRInterface_get_k1>`  **(** **)** const                                                                |
++----------------------------+---------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`  | :ref:`get_k2<class_MobileVRInterface_get_k2>`  **(** **)** const                                                                |
++----------------------------+---------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`  | :ref:`get_oversample<class_MobileVRInterface_get_oversample>`  **(** **)** const                                                |
++----------------------------+---------------------------------------------------------------------------------------------------------------------------------+
+| void                       | :ref:`set_display_to_lens<class_MobileVRInterface_set_display_to_lens>`  **(** :ref:`float<class_float>` display_to_lens  **)** |
++----------------------------+---------------------------------------------------------------------------------------------------------------------------------+
+| void                       | :ref:`set_display_width<class_MobileVRInterface_set_display_width>`  **(** :ref:`float<class_float>` display_width  **)**       |
++----------------------------+---------------------------------------------------------------------------------------------------------------------------------+
+| void                       | :ref:`set_iod<class_MobileVRInterface_set_iod>`  **(** :ref:`float<class_float>` iod  **)**                                     |
++----------------------------+---------------------------------------------------------------------------------------------------------------------------------+
+| void                       | :ref:`set_k1<class_MobileVRInterface_set_k1>`  **(** :ref:`float<class_float>` k  **)**                                         |
++----------------------------+---------------------------------------------------------------------------------------------------------------------------------+
+| void                       | :ref:`set_k2<class_MobileVRInterface_set_k2>`  **(** :ref:`float<class_float>` k  **)**                                         |
++----------------------------+---------------------------------------------------------------------------------------------------------------------------------+
+| void                       | :ref:`set_oversample<class_MobileVRInterface_set_oversample>`  **(** :ref:`float<class_float>` oversample  **)**                |
++----------------------------+---------------------------------------------------------------------------------------------------------------------------------+
+
+Member Variables
+----------------
+
+- :ref:`float<class_float>` **display_to_lens** - The distance between the display and the lenses inside of the device in centimeters.
+- :ref:`float<class_float>` **display_width** - The width of the display in centimeters.
+- :ref:`float<class_float>` **iod** - The interocular distance, also known as the interpupillary distance. The distance between the pupils of the left and right eye.
+- :ref:`float<class_float>` **k1** - The k1 lens factor is one of the two constants that define the strength of the lens used and directly influences the lens distortion effect.
+- :ref:`float<class_float>` **k2** - The k2 lens factor, see k1.
+- :ref:`float<class_float>` **oversample** - The oversample setting. Because of the lens distortion we have to render our buffers at a higher resolution then the screen can natively handle. A value between 1.5 and 2.0 often provides good results but at the cost of performance.
+
+Description
+-----------
+
+This is a generic mobile VR implementation where you need to provide details about the phone and HMD used. It does not rely on any existing framework. This is the most basic interface we have. For the best effect you do need a mobile phone with a gyroscope and accelerometer.
+
+Note that even though there is no positional tracking the camera will assume the headset is at a height of 1.85 meters.
+
+Member Function Description
+---------------------------
+
+.. _class_MobileVRInterface_get_display_to_lens:
+
+- :ref:`float<class_float>`  **get_display_to_lens**  **(** **)** const
+
+Returns the distance between the display and the lens.
+
+.. _class_MobileVRInterface_get_display_width:
+
+- :ref:`float<class_float>`  **get_display_width**  **(** **)** const
+
+Return the width of the LCD screen of the device.
+
+.. _class_MobileVRInterface_get_iod:
+
+- :ref:`float<class_float>`  **get_iod**  **(** **)** const
+
+Returns the interocular distance.
+
+.. _class_MobileVRInterface_get_k1:
+
+- :ref:`float<class_float>`  **get_k1**  **(** **)** const
+
+Returns the k1 lens constant.
+
+.. _class_MobileVRInterface_get_k2:
+
+- :ref:`float<class_float>`  **get_k2**  **(** **)** const
+
+Retuns the k2 lens constant
+
+.. _class_MobileVRInterface_get_oversample:
+
+- :ref:`float<class_float>`  **get_oversample**  **(** **)** const
+
+Returns the oversampling setting.
+
+.. _class_MobileVRInterface_set_display_to_lens:
+
+- void  **set_display_to_lens**  **(** :ref:`float<class_float>` display_to_lens  **)**
+
+Sets the distance between display and the lens.
+
+.. _class_MobileVRInterface_set_display_width:
+
+- void  **set_display_width**  **(** :ref:`float<class_float>` display_width  **)**
+
+Sets the width of the LCD screen of the device.
+
+.. _class_MobileVRInterface_set_iod:
+
+- void  **set_iod**  **(** :ref:`float<class_float>` iod  **)**
+
+Sets the interocular distance.
+
+.. _class_MobileVRInterface_set_k1:
+
+- void  **set_k1**  **(** :ref:`float<class_float>` k  **)**
+
+Sets the k1 lens constant.
+
+.. _class_MobileVRInterface_set_k2:
+
+- void  **set_k2**  **(** :ref:`float<class_float>` k  **)**
+
+Sets the k2 lens constant.
+
+.. _class_MobileVRInterface_set_oversample:
+
+- void  **set_oversample**  **(** :ref:`float<class_float>` oversample  **)**
+
+Sets the oversampling setting.
+
+

+ 49 - 49
classes/class_node.rst

@@ -26,10 +26,10 @@ Member Functions
 +------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                               | :ref:`_exit_tree<class_Node__exit_tree>`  **(** **)** virtual                                                                                                                                  |
 +------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                               | :ref:`_fixed_process<class_Node__fixed_process>`  **(** :ref:`float<class_float>` delta  **)** virtual                                                                                         |
-+------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                               | :ref:`_input<class_Node__input>`  **(** :ref:`InputEvent<class_inputevent>` event  **)** virtual                                                                                               |
 +------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                               | :ref:`_physics_process<class_Node__physics_process>`  **(** :ref:`float<class_float>` delta  **)** virtual                                                                                     |
++------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                               | :ref:`_process<class_Node__process>`  **(** :ref:`float<class_float>` delta  **)** virtual                                                                                                     |
 +------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                               | :ref:`_ready<class_Node__ready>`  **(** **)** virtual                                                                                                                                          |
@@ -58,8 +58,6 @@ Member Functions
 +------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`String<class_string>`        | :ref:`get_filename<class_Node_get_filename>`  **(** **)** const                                                                                                                                |
 +------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`          | :ref:`get_fixed_process_delta_time<class_Node_get_fixed_process_delta_time>`  **(** **)** const                                                                                                |
-+------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`Array<class_array>`          | :ref:`get_groups<class_Node_get_groups>`  **(** **)** const                                                                                                                                    |
 +------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`int<class_int>`              | :ref:`get_index<class_Node_get_index>`  **(** **)** const                                                                                                                                      |
@@ -82,6 +80,8 @@ Member Functions
 +------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`int<class_int>`              | :ref:`get_pause_mode<class_Node_get_pause_mode>`  **(** **)** const                                                                                                                            |
 +------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`          | :ref:`get_physics_process_delta_time<class_Node_get_physics_process_delta_time>`  **(** **)** const                                                                                            |
++------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`int<class_int>`              | :ref:`get_position_in_parent<class_Node_get_position_in_parent>`  **(** **)** const                                                                                                            |
 +------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`float<class_float>`          | :ref:`get_process_delta_time<class_Node_get_process_delta_time>`  **(** **)** const                                                                                                            |
@@ -100,10 +100,6 @@ Member Functions
 +------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`bool<class_bool>`            | :ref:`is_displayed_folded<class_Node_is_displayed_folded>`  **(** **)** const                                                                                                                  |
 +------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`            | :ref:`is_fixed_processing<class_Node_is_fixed_processing>`  **(** **)** const                                                                                                                  |
-+------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`            | :ref:`is_fixed_processing_internal<class_Node_is_fixed_processing_internal>`  **(** **)** const                                                                                                |
-+------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`bool<class_bool>`            | :ref:`is_greater_than<class_Node_is_greater_than>`  **(** :ref:`Node<class_node>` node  **)** const                                                                                            |
 +------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`bool<class_bool>`            | :ref:`is_in_group<class_Node_is_in_group>`  **(** :ref:`String<class_string>` group  **)** const                                                                                               |
@@ -112,6 +108,10 @@ Member Functions
 +------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`bool<class_bool>`            | :ref:`is_network_master<class_Node_is_network_master>`  **(** **)** const                                                                                                                      |
 +------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`            | :ref:`is_physics_processing<class_Node_is_physics_processing>`  **(** **)** const                                                                                                              |
++------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`            | :ref:`is_physics_processing_internal<class_Node_is_physics_processing_internal>`  **(** **)** const                                                                                            |
++------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`bool<class_bool>`            | :ref:`is_processing<class_Node_is_processing>`  **(** **)** const                                                                                                                              |
 +------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`bool<class_bool>`            | :ref:`is_processing_input<class_Node_is_processing_input>`  **(** **)** const                                                                                                                  |
@@ -170,10 +170,6 @@ Member Functions
 +------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                               | :ref:`set_filename<class_Node_set_filename>`  **(** :ref:`String<class_string>` filename  **)**                                                                                                |
 +------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                               | :ref:`set_fixed_process<class_Node_set_fixed_process>`  **(** :ref:`bool<class_bool>` enable  **)**                                                                                            |
-+------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                               | :ref:`set_fixed_process_internal<class_Node_set_fixed_process_internal>`  **(** :ref:`bool<class_bool>` enable  **)**                                                                          |
-+------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                               | :ref:`set_name<class_Node_set_name>`  **(** :ref:`String<class_string>` name  **)**                                                                                                            |
 +------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                               | :ref:`set_network_master<class_Node_set_network_master>`  **(** :ref:`int<class_int>` id, :ref:`bool<class_bool>` recursive=true  **)**                                                        |
@@ -182,6 +178,10 @@ Member Functions
 +------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                               | :ref:`set_pause_mode<class_Node_set_pause_mode>`  **(** :ref:`int<class_int>` mode  **)**                                                                                                      |
 +------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                               | :ref:`set_physics_process<class_Node_set_physics_process>`  **(** :ref:`bool<class_bool>` enable  **)**                                                                                        |
++------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                               | :ref:`set_physics_process_internal<class_Node_set_physics_process_internal>`  **(** :ref:`bool<class_bool>` enable  **)**                                                                      |
++------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                               | :ref:`set_process<class_Node_set_process>`  **(** :ref:`bool<class_bool>` enable  **)**                                                                                                        |
 +------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                               | :ref:`set_process_input<class_Node_set_process_input>`  **(** :ref:`bool<class_bool>` enable  **)**                                                                                            |
@@ -222,7 +222,7 @@ Numeric Constants
 - **NOTIFICATION_EXIT_TREE** = **11**
 - **NOTIFICATION_MOVED_IN_PARENT** = **12**
 - **NOTIFICATION_READY** = **13**
-- **NOTIFICATION_FIXED_PROCESS** = **16**
+- **NOTIFICATION_PHYSICS_PROCESS** = **16** --- Notification received every frame when the physics process flag is set (see :ref:`set_physics_process<class_Node_set_physics_process>`).
 - **NOTIFICATION_PROCESS** = **17** --- Notification received every frame when the process flag is set (see :ref:`set_process<class_Node_set_process>`).
 - **NOTIFICATION_PARENTED** = **18** --- Notification received when a node is set as a child of another node. Note that this doesn't mean that a node entered the Scene Tree.
 - **NOTIFICATION_UNPARENTED** = **19** --- Notification received when a node is unparented (parent removed it from the list of children).
@@ -234,7 +234,7 @@ Numeric Constants
 - **NOTIFICATION_PATH_CHANGED** = **23**
 - **NOTIFICATION_TRANSLATION_CHANGED** = **24**
 - **NOTIFICATION_INTERNAL_PROCESS** = **25**
-- **NOTIFICATION_INTERNAL_FIXED_PROCESS** = **26**
+- **NOTIFICATION_INTERNAL_PHYSICS_PROCESS** = **26**
 - **RPC_MODE_DISABLED** = **0**
 - **RPC_MODE_REMOTE** = **1** --- Call a method remotely.
 - **RPC_MODE_SYNC** = **2** --- Call a method both remotely and locally.
@@ -261,7 +261,7 @@ Once all nodes have been added in the scene tree, they receive the NOTIFICATION_
 
 It means that when adding a scene to the scene tree, the following order will be used for the callbacks: :ref:`_enter_tree<class_Node__enter_tree>` of the parent, :ref:`_enter_tree<class_Node__enter_tree>` of the children, :ref:`_ready<class_Node__ready>` of the children and finally :ref:`_ready<class_Node__ready>` of the parent (and that recursively for the whole scene).
 
-**Processing:** Nodes can be set to the "process" state, so that they receive a callback on each frame requesting them to process (do something). Normal processing (callback :ref:`_process<class_Node__process>`, toggled with :ref:`set_process<class_Node_set_process>`) happens as fast as possible and is dependent on the frame rate, so the processing time *delta* is variable. Fixed processing (callback :ref:`_fixed_process<class_Node__fixed_process>`, toggled with :ref:`set_fixed_process<class_Node_set_fixed_process>`) happens a fixed amount of times per second (by default 60) and is useful to link itself to the physics.
+**Processing:** Nodes can be set to the "process" state, so that they receive a callback on each frame requesting them to process (do something). Normal processing (callback :ref:`_process<class_Node__process>`, toggled with :ref:`set_process<class_Node_set_process>`) happens as fast as possible and is dependent on the frame rate, so the processing time *delta* is variable. Physics processing (callback :ref:`_physics_process<class_Node__physics_process>`, toggled with :ref:`set_physics_process<class_Node_set_physics_process>`) happens a fixed amount of times per second (by default 60) and is useful to link itself to the physics.
 
 Nodes can also process input events. When set, the :ref:`_input<class_Node__input>` function will be called for each input that the program receives. In many cases, this can be overkill (unless used for simple projects), and the :ref:`_unhandled_input<class_Node__unhandled_input>` function might be preferred; it is called when the input event was not handled by anyone else (typically, GUI :ref:`Control<class_control>` nodes), ensuring that the node only receives the events that were meant for it.
 
@@ -290,21 +290,21 @@ Called when the node leaves the :ref:`SceneTree<class_scenetree>` (e.g. upon fre
 
 Corresponds to the NOTIFICATION_EXIT_TREE notification in :ref:`Object._notification<class_Object__notification>`.
 
-.. _class_Node__fixed_process:
+.. _class_Node__input:
 
-- void  **_fixed_process**  **(** :ref:`float<class_float>` delta  **)** virtual
+- void  **_input**  **(** :ref:`InputEvent<class_inputevent>` event  **)** virtual
 
-Called during the fixed processing step of the main loop. Fixed processing means that the frame rate is synced to the physics, i.e. the ``delta`` variable should be constant.
+Called when there is a change to input devices. Propagated through the node tree until a Node consumes it.
 
-It is only called if fixed processing has been enabled with :ref:`set_fixed_process<class_Node_set_fixed_process>`.
+.. _class_Node__physics_process:
 
-Corresponds to the NOTIFICATION_FIXED_PROCESS notification in :ref:`Object._notification<class_Object__notification>`.
+- void  **_physics_process**  **(** :ref:`float<class_float>` delta  **)** virtual
 
-.. _class_Node__input:
+Called during the physics processing step of the main loop. Physics processing means that the frame rate is synced to the physics, i.e. the ``delta`` variable should be constant.
 
-- void  **_input**  **(** :ref:`InputEvent<class_inputevent>` event  **)** virtual
+It is only called if physics processing has been enabled with :ref:`set_physics_process<class_Node_set_physics_process>`.
 
-Called when there is a change to input devices. Propagated through the node tree until a Node consumes it.
+Corresponds to the NOTIFICATION_PHYSICS_PROCESS notification in :ref:`Object._notification<class_Object__notification>`.
 
 .. _class_Node__process:
 
@@ -396,12 +396,6 @@ Return an array of references (:ref:`Node<class_node>`) to the child nodes.
 
 Return a filename that may be contained by the node. When a scene is instanced from a file, it topmost node contains the filename from where it was loaded (see :ref:`set_filename<class_Node_set_filename>`).
 
-.. _class_Node_get_fixed_process_delta_time:
-
-- :ref:`float<class_float>`  **get_fixed_process_delta_time**  **(** **)** const
-
-Return the time elapsed since the last fixed frame (see :ref:`_fixed_process<class_Node__fixed_process>`). This is always the same in fixed processing unless the frames per second is changed in :ref:`OS<class_os>`.
-
 .. _class_Node_get_groups:
 
 - :ref:`Array<class_array>`  **get_groups**  **(** **)** const
@@ -488,6 +482,12 @@ Return the relative path from the current node to the specified node in "node" a
 
 Return the pause mode (PAUSE_MODE\_\*) of this Node.
 
+.. _class_Node_get_physics_process_delta_time:
+
+- :ref:`float<class_float>`  **get_physics_process_delta_time**  **(** **)** const
+
+Return the time elapsed since the last physics-bound frame (see :ref:`_physics_process<class_Node__physics_process>`). This is always a constant value in physics processing unless the frames per second is changed in :ref:`OS<class_os>`.
+
 .. _class_Node_get_position_in_parent:
 
 - :ref:`int<class_int>`  **get_position_in_parent**  **(** **)** const
@@ -534,16 +534,6 @@ Return *true* if the "node" argument is a direct or indirect child of the curren
 
 - :ref:`bool<class_bool>`  **is_displayed_folded**  **(** **)** const
 
-.. _class_Node_is_fixed_processing:
-
-- :ref:`bool<class_bool>`  **is_fixed_processing**  **(** **)** const
-
-Return true if fixed processing is enabled (see :ref:`set_fixed_process<class_Node_set_fixed_process>`).
-
-.. _class_Node_is_fixed_processing_internal:
-
-- :ref:`bool<class_bool>`  **is_fixed_processing_internal**  **(** **)** const
-
 .. _class_Node_is_greater_than:
 
 - :ref:`bool<class_bool>`  **is_greater_than**  **(** :ref:`Node<class_node>` node  **)** const
@@ -566,6 +556,16 @@ Return whether this Node is inside a :ref:`SceneTree<class_scenetree>`.
 
 - :ref:`bool<class_bool>`  **is_network_master**  **(** **)** const
 
+.. _class_Node_is_physics_processing:
+
+- :ref:`bool<class_bool>`  **is_physics_processing**  **(** **)** const
+
+Return true if physics processing is enabled (see :ref:`set_physics_process<class_Node_set_physics_process>`).
+
+.. _class_Node_is_physics_processing_internal:
+
+- :ref:`bool<class_bool>`  **is_physics_processing_internal**  **(** **)** const
+
 .. _class_Node_is_processing:
 
 - :ref:`bool<class_bool>`  **is_processing**  **(** **)** const
@@ -732,16 +732,6 @@ Remotely change property's value on a specific peer identified by *peer_id* usin
 
 A node can contain a filename. This filename should not be changed by the user, unless writing editors and tools. When a scene is instanced from a file, it topmost node contains the filename from where it was loaded.
 
-.. _class_Node_set_fixed_process:
-
-- void  **set_fixed_process**  **(** :ref:`bool<class_bool>` enable  **)**
-
-Enables or disables node fixed framerate processing. When a node is being processed, it will receive a NOTIFICATION_PROCESS at a fixed (usually 60 fps, check :ref:`OS<class_os>` to change that) interval (and the :ref:`_fixed_process<class_Node__fixed_process>` callback will be called if exists). It is common to check how much time was elapsed since the previous frame by calling :ref:`get_fixed_process_delta_time<class_Node_get_fixed_process_delta_time>`.
-
-.. _class_Node_set_fixed_process_internal:
-
-- void  **set_fixed_process_internal**  **(** :ref:`bool<class_bool>` enable  **)**
-
 .. _class_Node_set_name:
 
 - void  **set_name**  **(** :ref:`String<class_string>` name  **)**
@@ -764,6 +754,16 @@ Set the node owner. A node can have any other node as owner (as long as a valid
 
 Set pause mode (PAUSE_MODE\_\*) of this Node.
 
+.. _class_Node_set_physics_process:
+
+- void  **set_physics_process**  **(** :ref:`bool<class_bool>` enable  **)**
+
+Enables or disables the node's physics (alias fixed framerate) processing. When a node is being processed, it will receive a NOTIFICATION_PHYSICS_PROCESS at a fixed (usually 60 fps, check :ref:`OS<class_os>` to change that) interval (and the :ref:`_physics_process<class_Node__physics_process>` callback will be called if exists). It is common to check how much time was elapsed since the previous frame by calling :ref:`get_physics_process_delta_time<class_Node_get_physics_process_delta_time>`.
+
+.. _class_Node_set_physics_process_internal:
+
+- void  **set_physics_process_internal**  **(** :ref:`bool<class_bool>` enable  **)**
+
 .. _class_Node_set_process:
 
 - void  **set_process**  **(** :ref:`bool<class_bool>` enable  **)**

+ 118 - 28
classes/class_os.rst

@@ -114,12 +114,16 @@ Member Functions
 +------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`int<class_int>`                          | :ref:`get_unix_time_from_datetime<class_OS_get_unix_time_from_datetime>`  **(** :ref:`Dictionary<class_dictionary>` datetime  **)** const                                                                                  |
 +------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                          | :ref:`get_virtual_keyboard_height<class_OS_get_virtual_keyboard_height>`  **(** **)**                                                                                                                                      |
++------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`Vector2<class_vector2>`                  | :ref:`get_window_position<class_OS_get_window_position>`  **(** **)** const                                                                                                                                                |
 +------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`Vector2<class_vector2>`                  | :ref:`get_window_size<class_OS_get_window_size>`  **(** **)** const                                                                                                                                                        |
 +------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`bool<class_bool>`                        | :ref:`has_environment<class_OS_has_environment>`  **(** :ref:`String<class_string>` environment  **)** const                                                                                                               |
 +------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                        | :ref:`has_feature<class_OS_has_feature>`  **(** :ref:`String<class_string>` tag_name  **)** const                                                                                                                          |
++------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`bool<class_bool>`                        | :ref:`has_touchscreen_ui_hint<class_OS_has_touchscreen_ui_hint>`  **(** **)** const                                                                                                                                        |
 +------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`bool<class_bool>`                        | :ref:`has_virtual_keyboard<class_OS_has_virtual_keyboard>`  **(** **)** const                                                                                                                                              |
@@ -138,6 +142,8 @@ Member Functions
 +------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`bool<class_bool>`                        | :ref:`is_stdout_verbose<class_OS_is_stdout_verbose>`  **(** **)** const                                                                                                                                                    |
 +------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                        | :ref:`is_userfs_persistent<class_OS_is_userfs_persistent>`  **(** **)** const                                                                                                                                              |
++------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`bool<class_bool>`                        | :ref:`is_vsync_enabled<class_OS_is_vsync_enabled>`  **(** **)** const                                                                                                                                                      |
 +------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`bool<class_bool>`                        | :ref:`is_window_fullscreen<class_OS_is_window_fullscreen>`  **(** **)** const                                                                                                                                              |
@@ -274,13 +280,13 @@ Displays a modal dialog box utilizing the host OS.
 
 - :ref:`bool<class_bool>`  **can_draw**  **(** **)** const
 
-Return true if the host OS allows drawing.
+Returns ``true`` if the host OS allows drawing.
 
 .. _class_OS_can_use_threads:
 
 - :ref:`bool<class_bool>`  **can_use_threads**  **(** **)** const
 
-Returns if the current host platform is using multiple threads.
+Returns ``true`` if the current host platform is using multiple threads.
 
 .. _class_OS_delay_msec:
 
@@ -340,7 +346,7 @@ Get clipboard from the host OS.
 
 - :ref:`PoolStringArray<class_poolstringarray>`  **get_cmdline_args**  **(** **)**
 
-Return the commandline passed to the engine.
+Returns the command line arguments passed to the engine.
 
 .. _class_OS_get_current_screen:
 
@@ -352,7 +358,7 @@ Returns the current screen index (0 padded).
 
 - :ref:`String<class_string>`  **get_data_dir**  **(** **)** const
 
-Return the absolute directory path of user data path(user://).
+Returns the absolute directory path of user data path(user://).
 
 .. _class_OS_get_date:
 
@@ -378,19 +384,19 @@ Dictionary Time values will be a union of values from :ref:`get_time<class_OS_ge
 
 - :ref:`int<class_int>`  **get_dynamic_memory_usage**  **(** **)** const
 
-Return the total amount of dynamic memory used (only works in debug).
+Returns the total amount of dynamic memory used (only works in debug).
 
 .. _class_OS_get_environment:
 
 - :ref:`String<class_string>`  **get_environment**  **(** :ref:`String<class_string>` environment  **)** const
 
-Return an environment variable.
+Returns an environment variable.
 
 .. _class_OS_get_executable_path:
 
 - :ref:`String<class_string>`  **get_executable_path**  **(** **)** const
 
-Return the path to the current engine executable.
+Returns the path to the current engine executable.
 
 .. _class_OS_get_exit_code:
 
@@ -408,7 +414,7 @@ Possible return values are: "QWERTY", "AZERTY", "QZERTY", "DVORAK", "NEO" or "ER
 
 - :ref:`String<class_string>`  **get_locale**  **(** **)** const
 
-Return the host OS locale.
+Returns the host OS locale.
 
 .. _class_OS_get_model_name:
 
@@ -420,20 +426,26 @@ Returns the model name of the current device.
 
 - :ref:`String<class_string>`  **get_name**  **(** **)** const
 
-Return the name of the host OS. Possible values are: "Android", "Haiku", "iOS", "HTML5", "OSX", "Server", "Windows", "UWP", "X11".
+Returns the name of the host OS. Possible values are: "Android", "Haiku", "iOS", "HTML5", "OSX", "Server", "Windows", "UWP", "X11".
 
 .. _class_OS_get_power_percent_left:
 
 - :ref:`int<class_int>`  **get_power_percent_left**  **(** **)**
 
+Returns the amount of battery left in the device as a percentage.
+
 .. _class_OS_get_power_seconds_left:
 
 - :ref:`int<class_int>`  **get_power_seconds_left**  **(** **)**
 
+Returns the time in seconds before the device runs out of battery.
+
 .. _class_OS_get_power_state:
 
 - :ref:`int<class_int>`  **get_power_state**  **(** **)**
 
+Returns the current state of the device regarding battery and power. See ``POWERSTATE\_\*`` constants.
+
 .. _class_OS_get_process_id:
 
 - :ref:`int<class_int>`  **get_process_id**  **(** **)** const
@@ -456,7 +468,7 @@ Returns the given scancode as a string (e.g. Return values: "Escape", "Shift+Esc
 
 - :ref:`int<class_int>`  **get_screen_count**  **(** **)** const
 
-Returns the number of displays attached to the host machine
+Returns the number of displays attached to the host machine.
 
 .. _class_OS_get_screen_dpi:
 
@@ -490,6 +502,8 @@ Returns the current screen orientation, the return value will be one of the SCRE
 
 - :ref:`Vector2<class_vector2>`  **get_screen_position**  **(** :ref:`int<class_int>` screen=-1  **)** const
 
+Returns the position of the specified screen by index. If no screen index is provided, the current screen will be used.
+
 .. _class_OS_get_screen_size:
 
 - :ref:`Vector2<class_vector2>`  **get_screen_size**  **(** :ref:`int<class_int>` screen=-1  **)** const
@@ -504,40 +518,50 @@ Returns the dimensions in pixels of the specified screen.
 
 - :ref:`int<class_int>`  **get_static_memory_peak_usage**  **(** **)** const
 
-Return the max amount of static memory used (only works in debug).
+Returns the max amount of static memory used (only works in debug).
 
 .. _class_OS_get_static_memory_usage:
 
 - :ref:`int<class_int>`  **get_static_memory_usage**  **(** **)** const
 
+Returns the amount of static memory being used by the program in bytes.
+
 .. _class_OS_get_system_dir:
 
 - :ref:`String<class_string>`  **get_system_dir**  **(** :ref:`int<class_int>` dir  **)** const
 
+Returns the actual path to commonly used folders across different platforms. Available locations are specified in OS.SystemDir.
+
 .. _class_OS_get_system_time_secs:
 
 - :ref:`int<class_int>`  **get_system_time_secs**  **(** **)** const
 
+Returns the epoch time of the operating system in seconds.
+
 .. _class_OS_get_ticks_msec:
 
 - :ref:`int<class_int>`  **get_ticks_msec**  **(** **)** const
 
-Return the amount of time passed in milliseconds since the engine started.
+Returns the amount of time passed in milliseconds since the engine started.
 
 .. _class_OS_get_time:
 
 - :ref:`Dictionary<class_dictionary>`  **get_time**  **(** :ref:`bool<class_bool>` utc=false  **)** const
 
-Returns current time as a dictionary of keys: hour, minute, second
+Returns current time as a dictionary of keys: hour, minute, second.
 
 .. _class_OS_get_time_zone_info:
 
 - :ref:`Dictionary<class_dictionary>`  **get_time_zone_info**  **(** **)** const
 
+Returns the current time zone as a dictionary with the keys: bias and name.
+
 .. _class_OS_get_unique_id:
 
 - :ref:`String<class_string>`  **get_unique_id**  **(** **)** const
 
+Returns a unique string.
+
 .. _class_OS_get_unix_time:
 
 - :ref:`int<class_int>`  **get_unix_time**  **(** **)** const
@@ -554,6 +578,10 @@ Get an epoch time value from a dictionary of time values.
 
 You can pass the output from :ref:`get_datetime_from_unix_time<class_OS_get_datetime_from_unix_time>` directly into this function. Daylight savings time (dst), if present, is ignored.
 
+.. _class_OS_get_virtual_keyboard_height:
+
+- :ref:`int<class_int>`  **get_virtual_keyboard_height**  **(** **)**
+
 .. _class_OS_get_window_position:
 
 - :ref:`Vector2<class_vector2>`  **get_window_position**  **(** **)** const
@@ -570,17 +598,23 @@ Returns the size of the window (without counting window manager decorations).
 
 - :ref:`bool<class_bool>`  **has_environment**  **(** :ref:`String<class_string>` environment  **)** const
 
-Return true if an environment variable exists.
+Returns ``true`` if an environment variable exists.
+
+.. _class_OS_has_feature:
+
+- :ref:`bool<class_bool>`  **has_feature**  **(** :ref:`String<class_string>` tag_name  **)** const
 
 .. _class_OS_has_touchscreen_ui_hint:
 
 - :ref:`bool<class_bool>`  **has_touchscreen_ui_hint**  **(** **)** const
 
+Returns ``true`` if the device has a touchscreen or emulates one.
+
 .. _class_OS_has_virtual_keyboard:
 
 - :ref:`bool<class_bool>`  **has_virtual_keyboard**  **(** **)** const
 
-Returns true if the platform has a virtual keyboard, false otherwise.
+Returns ``true`` if the platform has a virtual keyboard, ``false`` otherwise.
 
 .. _class_OS_hide_virtual_keyboard:
 
@@ -592,59 +626,77 @@ Hides the virtual keyboard if it is shown, does nothing otherwise.
 
 - :ref:`bool<class_bool>`  **is_debug_build**  **(** **)** const
 
+Returns ``true`` if the build is a debug build.
+
+Returns ``true`` when running in the editor.
+
+Returns ``false`` if the build is a release build.
+
 .. _class_OS_is_in_low_processor_usage_mode:
 
 - :ref:`bool<class_bool>`  **is_in_low_processor_usage_mode**  **(** **)** const
 
-Return true if low cpu usage mode is enabled.
+Returns ``true`` if low cpu usage mode is enabled.
 
 .. _class_OS_is_keep_screen_on:
 
 - :ref:`bool<class_bool>`  **is_keep_screen_on**  **(** **)** const
 
-Returns whether the screen is being kept on or not.
+Returns ``true`` if the screen is being kept on.
 
 .. _class_OS_is_ok_left_and_cancel_right:
 
 - :ref:`bool<class_bool>`  **is_ok_left_and_cancel_right**  **(** **)** const
 
+Returns ``true`` if the "Okay" button should appear on the left and "Cancel" on the right.
+
 .. _class_OS_is_scancode_unicode:
 
 - :ref:`bool<class_bool>`  **is_scancode_unicode**  **(** :ref:`int<class_int>` code  **)** const
 
+Returns ``true`` if the input code has a unicode character.
+
 .. _class_OS_is_stdout_verbose:
 
 - :ref:`bool<class_bool>`  **is_stdout_verbose**  **(** **)** const
 
-Return true if the engine was executed with -v (verbose stdout).
+Returns ``true`` if the engine was executed with -v (verbose stdout).
+
+.. _class_OS_is_userfs_persistent:
+
+- :ref:`bool<class_bool>`  **is_userfs_persistent**  **(** **)** const
+
+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_vsync_enabled:
 
 - :ref:`bool<class_bool>`  **is_vsync_enabled**  **(** **)** const
 
+Returns ``true`` if synchronizing the framerate to the monitor's refresh rate is enabled.
+
 .. _class_OS_is_window_fullscreen:
 
 - :ref:`bool<class_bool>`  **is_window_fullscreen**  **(** **)** const
 
-Returns whether the window is in fullscreen mode or not.
+Returns ``true`` if the window is in fullscreen mode.
 
 .. _class_OS_is_window_maximized:
 
 - :ref:`bool<class_bool>`  **is_window_maximized**  **(** **)** const
 
-Return true if the window is maximized.
+Returns ``true`` if the window is maximized.
 
 .. _class_OS_is_window_minimized:
 
 - :ref:`bool<class_bool>`  **is_window_minimized**  **(** **)** const
 
-Return true if the window is minimized.
+Returns ``true`` if the window is minimized.
 
 .. _class_OS_is_window_resizable:
 
 - :ref:`bool<class_bool>`  **is_window_resizable**  **(** **)** const
 
-Returns whether the window is resizable or not.
+Returns ``true`` if the window is resizable.
 
 .. _class_OS_kill:
 
@@ -656,38 +708,56 @@ Kill a process ID (this method can be used to kill processes that were not spawn
 
 - :ref:`bool<class_bool>`  **native_video_is_playing**  **(** **)**
 
+Returns ``true`` if native video is playing.
+
 .. _class_OS_native_video_pause:
 
 - void  **native_video_pause**  **(** **)**
 
+Pauses native video playback.
+
 .. _class_OS_native_video_play:
 
 - :ref:`int<class_int>`  **native_video_play**  **(** :ref:`String<class_string>` path, :ref:`float<class_float>` volume, :ref:`String<class_string>` audio_track, :ref:`String<class_string>` subtitle_track  **)**
 
+Plays native video from the specified path, at the given volume and with audio and subtitle tracks.
+
 .. _class_OS_native_video_stop:
 
 - void  **native_video_stop**  **(** **)**
 
+Stops native video playback.
+
 .. _class_OS_native_video_unpause:
 
 - void  **native_video_unpause**  **(** **)**
 
+Resumes native video playback.
+
 .. _class_OS_print_all_resources:
 
 - void  **print_all_resources**  **(** :ref:`String<class_string>` tofile=""  **)**
 
+Shows all resources in the game. Optionally the list can be written to a file.
+
 .. _class_OS_print_all_textures_by_size:
 
 - void  **print_all_textures_by_size**  **(** **)**
 
+Shows the list of loaded textures sorted by size in memory.
+
 .. _class_OS_print_resources_by_type:
 
 - void  **print_resources_by_type**  **(** :ref:`PoolStringArray<class_poolstringarray>` types  **)**
 
+Shows the number of resources loaded by the game of the given types.
+
 .. _class_OS_print_resources_in_use:
 
 - void  **print_resources_in_use**  **(** :ref:`bool<class_bool>` short=false  **)**
 
+Shows all resources currently used by the game.
+
 .. _class_OS_request_attention:
 
 - void  **request_attention**  **(** **)**
@@ -698,24 +768,32 @@ Request the user attention to the window. It'll flash the taskbar button on Wind
 
 - void  **set_borderless_window**  **(** :ref:`bool<class_bool>` borderless  **)**
 
+Removes the window frame.
+
 .. _class_OS_set_clipboard:
 
 - void  **set_clipboard**  **(** :ref:`String<class_string>` clipboard  **)**
 
-Set clipboard to the OS.
+Sets clipboard to the OS.
 
 .. _class_OS_set_current_screen:
 
 - void  **set_current_screen**  **(** :ref:`int<class_int>` screen  **)**
 
+Sets the current screen by index.
+
 .. _class_OS_set_exit_code:
 
 - void  **set_exit_code**  **(** :ref:`int<class_int>` code  **)**
 
+Sets the exit code that will be returned by the game.
+
 .. _class_OS_set_icon:
 
 - void  **set_icon**  **(** :ref:`Image<class_image>` icon  **)**
 
+Sets the game's icon.
+
 .. _class_OS_set_ime_position:
 
 - void  **set_ime_position**  **(** :ref:`Vector2<class_vector2>` position  **)**
@@ -724,13 +802,13 @@ Set clipboard to the OS.
 
 - void  **set_keep_screen_on**  **(** :ref:`bool<class_bool>` enabled  **)**
 
-Set keep screen on if true, or goes to sleep by device setting if false. (for Android/iOS)
+Sets keep screen on if true, or goes to sleep by device setting if false. (for Android/iOS)
 
 .. _class_OS_set_low_processor_usage_mode:
 
 - void  **set_low_processor_usage_mode**  **(** :ref:`bool<class_bool>` enable  **)**
 
-Set to true to enable the low cpu usage mode. In this mode, the screen only redraws when there are changes, and a considerable sleep time is inserted between frames. This way, editors using the engine UI only use very little cpu.
+Set to ``true`` to enable the low cpu usage mode. In this mode, the screen only redraws when there are changes, and a considerable sleep time is inserted between frames. Use this in tool mode to reduce CPU usage.
 
 .. _class_OS_set_screen_orientation:
 
@@ -742,14 +820,20 @@ Sets the current screen orientation, the argument value must be one of the SCREE
 
 - :ref:`int<class_int>`  **set_thread_name**  **(** :ref:`String<class_string>` name  **)**
 
+Sets the name of the current thread.
+
 .. _class_OS_set_use_file_access_save_and_swap:
 
 - void  **set_use_file_access_save_and_swap**  **(** :ref:`bool<class_bool>` enabled  **)**
 
+Enables backup saves if ``enabled`` is ``true``.
+
 .. _class_OS_set_use_vsync:
 
 - void  **set_use_vsync**  **(** :ref:`bool<class_bool>` enable  **)**
 
+If ``true`` the framerate will synchronize to the monitor's refresh rate.
+
 .. _class_OS_set_window_fullscreen:
 
 - void  **set_window_fullscreen**  **(** :ref:`bool<class_bool>` enabled  **)**
@@ -760,13 +844,13 @@ Sets window fullscreen mode to the *enabled* argument, *enabled* is a toggle for
 
 - void  **set_window_maximized**  **(** :ref:`bool<class_bool>` enabled  **)**
 
-Set the window size to maximized.
+Set ``true`` to maximize the window.
 
 .. _class_OS_set_window_minimized:
 
 - void  **set_window_minimized**  **(** :ref:`bool<class_bool>` enabled  **)**
 
-Set whether the window is minimized.
+Set ``true`` to minimize the window.
 
 .. _class_OS_set_window_position:
 
@@ -778,7 +862,7 @@ Sets the position of the window to the specified position (this function could b
 
 - void  **set_window_resizable**  **(** :ref:`bool<class_bool>` enabled  **)**
 
-Set the window resizable state, if the window is not resizable it will preserve the dimensions specified in the project settings.
+Sets the window resizable state, if the window is not resizable it will preserve the dimensions specified in the project settings.
 
 .. _class_OS_set_window_size:
 
@@ -796,6 +880,12 @@ Sets the window title to the specified string.
 
 - :ref:`int<class_int>`  **shell_open**  **(** :ref:`String<class_string>` uri  **)**
 
+Requests the OS to open a resource with the most appropriate program. For example.
+
+``OS.shell_open("C:\\Users\name\Downloads")`` on Windows opens the file explorer at the downloads folders of the user.
+
+``OS.shell_open("http://godotengine.org")`` opens the default web browser on the official Godot website.
+
 .. _class_OS_show_virtual_keyboard:
 
 - void  **show_virtual_keyboard**  **(** :ref:`String<class_string>` existing_text=""  **)**

+ 21 - 14
classes/class_particles.rst

@@ -14,7 +14,7 @@ Particles
 Brief Description
 -----------------
 
-
+3D particle emitter.
 
 Member Functions
 ----------------
@@ -92,34 +92,41 @@ Member Functions
 Member Variables
 ----------------
 
-- :ref:`int<class_int>` **amount**
-- :ref:`int<class_int>` **draw_order**
+- :ref:`int<class_int>` **amount** - Number of particles to emit.
+- :ref:`int<class_int>` **draw_order** - Particle draw order. Uses [code]DRAW_ORDER_*[/code] values. Default value: [code]DRAW_ORDER_INDEX[/code].
 - :ref:`Mesh<class_mesh>` **draw_pass_1**
 - :ref:`Mesh<class_mesh>` **draw_pass_2**
 - :ref:`Mesh<class_mesh>` **draw_pass_3**
 - :ref:`Mesh<class_mesh>` **draw_pass_4**
 - :ref:`int<class_int>` **draw_passes**
-- :ref:`bool<class_bool>` **emitting**
-- :ref:`float<class_float>` **explosiveness**
+- :ref:`bool<class_bool>` **emitting** - If [code]true[/code] particles are being emitted. Default value: [code]true[/code].
+- :ref:`float<class_float>` **explosiveness** - Time ratio between each emission. If [code]0[/code] particles are emitted continuously. If [code]1[/code] all particles are emitted simultaneously. Default value: [code]0[/code].
 - :ref:`int<class_int>` **fixed_fps**
 - :ref:`bool<class_bool>` **fract_delta**
-- :ref:`float<class_float>` **lifetime**
-- :ref:`bool<class_bool>` **local_coords**
-- :ref:`bool<class_bool>` **one_shot**
+- :ref:`float<class_float>` **lifetime** - Amount of time each particle will exist. Default value: [code]1[/code].
+- :ref:`bool<class_bool>` **local_coords** - If [code]true[/code] particles use the parent node's coordinate space. If [code]false[/code] they use global coordinates. Default value: [code]true[/code].
+- :ref:`bool<class_bool>` **one_shot** - If [code]true[/code] only [code]amount[/code] particles will be emitted. Default value: [code]false[/code].
 - :ref:`float<class_float>` **preprocess**
-- :ref:`Material<class_material>` **process_material**
-- :ref:`float<class_float>` **randomness**
-- :ref:`float<class_float>` **speed_scale**
+- :ref:`Material<class_material>` **process_material** - [Material] for processing particles. Can be a [ParticlesMaterial] or a [ShaderMaterial].
+- :ref:`float<class_float>` **randomness** - Emission randomness ratio. Default value: [code]0[/code].
+- :ref:`float<class_float>` **speed_scale** - Speed scaling ratio. Default value: [code]1[/code].
 - :ref:`Rect3<class_rect3>` **visibility_aabb**
 
 Numeric Constants
 -----------------
 
-- **DRAW_ORDER_INDEX** = **0**
-- **DRAW_ORDER_LIFETIME** = **1**
-- **DRAW_ORDER_VIEW_DEPTH** = **2**
+- **DRAW_ORDER_INDEX** = **0** --- Particles are drawn in the order emitted.
+- **DRAW_ORDER_LIFETIME** = **1** --- Particles are drawn in order of remaining lifetime.
+- **DRAW_ORDER_VIEW_DEPTH** = **2** --- Particles are drawn in order of depth.
 - **MAX_DRAW_PASSES** = **4**
 
+Description
+-----------
+
+3D particle node used to create a variety of particle systems and effects. ``Particles`` features an emitter that generates some number of particles at a given rate.
+
+Use the ``process_material`` property to add a :ref:`ParticlesMaterial<class_particlesmaterial>` to configure particle appearance and behavior. Alternatively, you can add a :ref:`ShaderMaterial<class_shadermaterial>` which will be applied to all particles.
+
 Member Function Description
 ---------------------------
 

+ 19 - 17
classes/class_particles2d.rst

@@ -14,7 +14,7 @@ Particles2D
 Brief Description
 -----------------
 
-2D Particle emitter
+2D particle emitter.
 
 Member Functions
 ----------------
@@ -100,35 +100,37 @@ Member Functions
 Member Variables
 ----------------
 
-- :ref:`int<class_int>` **amount**
-- :ref:`int<class_int>` **draw_order**
-- :ref:`bool<class_bool>` **emitting**
-- :ref:`float<class_float>` **explosiveness**
+- :ref:`int<class_int>` **amount** - Number of particles to emit.
+- :ref:`int<class_int>` **draw_order** - Particle draw order. Uses [code]DRAW_ORDER_*[/code] values. Default value: [code]DRAW_ORDER_INDEX[/code].
+- :ref:`bool<class_bool>` **emitting** - If [code]true[/code] particles are being emitted. Default value: [code]true[/code].
+- :ref:`float<class_float>` **explosiveness** - Time ratio between each emission. If [code]0[/code] particles are emitted continuously. If [code]1[/code] all particles are emitted simultaneously. Default value: [code]0[/code].
 - :ref:`int<class_int>` **fixed_fps**
 - :ref:`bool<class_bool>` **fract_delta**
-- :ref:`int<class_int>` **h_frames**
-- :ref:`float<class_float>` **lifetime**
-- :ref:`bool<class_bool>` **local_coords**
+- :ref:`int<class_int>` **h_frames** - Number of horizontal frames in [code]texture[/code].
+- :ref:`float<class_float>` **lifetime** - Amount of time each particle will exist. Default value: [code]1[/code].
+- :ref:`bool<class_bool>` **local_coords** - If [code]true[/code] particles use the parent node's coordinate space. If [code]false[/code] they use global coordinates. Default value: [code]true[/code].
 - :ref:`Texture<class_texture>` **normal_map**
-- :ref:`bool<class_bool>` **one_shot**
+- :ref:`bool<class_bool>` **one_shot** - If [code]true[/code] only [code]amount[/code] particles will be emitted. Default value: [code]false[/code].
 - :ref:`float<class_float>` **preprocess**
-- :ref:`Material<class_material>` **process_material**
-- :ref:`float<class_float>` **randomness**
-- :ref:`float<class_float>` **speed_scale**
-- :ref:`Texture<class_texture>` **texture**
-- :ref:`int<class_int>` **v_frames**
+- :ref:`Material<class_material>` **process_material** - [Material] for processing particles. Can be a [ParticlesMaterial] or a [ShaderMaterial].
+- :ref:`float<class_float>` **randomness** - Emission randomness ratio. Default value: [code]0[/code].
+- :ref:`float<class_float>` **speed_scale** - Speed scaling ratio. Default value: [code]1[/code].
+- :ref:`Texture<class_texture>` **texture** - Particle texture. If [code]null[/code] particles will be squares.
+- :ref:`int<class_int>` **v_frames** - Number of vertical frames in [code]texture[/code].
 - :ref:`Rect2<class_rect2>` **visibility_rect**
 
 Numeric Constants
 -----------------
 
-- **DRAW_ORDER_INDEX** = **0**
-- **DRAW_ORDER_LIFETIME** = **1**
+- **DRAW_ORDER_INDEX** = **0** --- Particles are drawn in the order emitted.
+- **DRAW_ORDER_LIFETIME** = **1** --- Particles are drawn in order of remaining lifetime.
 
 Description
 -----------
 
-Particles2D is a particle system 2D :ref:`Node<class_node>` that is used to simulate several types of particle effects, such as explosions, rain, snow, fireflies, or other magical-like shinny sparkles. Particles are drawn using impostors, and given their dynamic behavior, the user must provide a visibility bounding box (although helpers to create one automatically exist).
+2D particle node used to create a variety of particle systems and effects. ``Particles2D`` features an emitter that generates some number of particles at a given rate.
+
+Use the ``process_material`` property to add a :ref:`ParticlesMaterial<class_particlesmaterial>` to configure particle appearance and behavior. Alternatively, you can add a :ref:`ShaderMaterial<class_shadermaterial>` which will be applied to all particles.
 
 Member Function Description
 ---------------------------

+ 73 - 66
classes/class_particlesmaterial.rst

@@ -14,7 +14,7 @@ ParticlesMaterial
 Brief Description
 -----------------
 
-
+Particle properties for :ref:`Particles<class_particles>` and :ref:`Particles2D<class_particles2d>` nodes.
 
 Member Functions
 ----------------
@@ -100,86 +100,93 @@ Member Functions
 Member Variables
 ----------------
 
-- :ref:`float<class_float>` **angle**
-- :ref:`Texture<class_texture>` **angle_curve**
-- :ref:`float<class_float>` **angle_random**
-- :ref:`float<class_float>` **angular_velocity**
-- :ref:`Texture<class_texture>` **angular_velocity_curve**
-- :ref:`float<class_float>` **angular_velocity_random**
-- :ref:`bool<class_bool>` **anim_loop**
-- :ref:`float<class_float>` **anim_offset**
-- :ref:`Texture<class_texture>` **anim_offset_curve**
-- :ref:`float<class_float>` **anim_offset_random**
-- :ref:`float<class_float>` **anim_speed**
-- :ref:`Texture<class_texture>` **anim_speed_curve**
-- :ref:`float<class_float>` **anim_speed_random**
-- :ref:`Color<class_color>` **color**
-- :ref:`Texture<class_texture>` **color_ramp**
-- :ref:`float<class_float>` **damping**
-- :ref:`Texture<class_texture>` **damping_curve**
-- :ref:`float<class_float>` **damping_random**
-- :ref:`Vector3<class_vector3>` **emission_box_extents**
+- :ref:`float<class_float>` **angle** - Initial rotation applied to each particle.
+- :ref:`Texture<class_texture>` **angle_curve** - Each particle's rotation will be animated along this [CurveTexture].
+- :ref:`float<class_float>` **angle_random** - Rotation randomness ratio. Default value: [code]0[/code].
+- :ref:`float<class_float>` **angular_velocity** - Initial angular velocity applied to each particle.
+- :ref:`Texture<class_texture>` **angular_velocity_curve** - Each particle's angular velocity will vary along this [CurveTexture].
+- :ref:`float<class_float>` **angular_velocity_random** - Angular velocity randomness ratio. Default value: [code]0[/code].
+- :ref:`bool<class_bool>` **anim_loop** - If [code]true[/code] animation will loop. Default value: [code]false[/code].
+- :ref:`float<class_float>` **anim_offset** - Particle animation offset.
+- :ref:`Texture<class_texture>` **anim_offset_curve** - Each particle's animation offset will vary along this [CurveTexture].
+- :ref:`float<class_float>` **anim_offset_random** - Animation offset randomness ratio. Default value: [code]0[/code].
+- :ref:`float<class_float>` **anim_speed** - Particle animation speed.
+- :ref:`Texture<class_texture>` **anim_speed_curve** - Each particle's animation speed will vary along this [CurveTexture].
+- :ref:`float<class_float>` **anim_speed_random** - Animation speed randomness ratio. Default value: [code]0[/code].
+- :ref:`Color<class_color>` **color** - Each particle's initial color. If the [Particle2D]'s [code]texture[/code] is defined, it will be multiplied by this color.
+- :ref:`Texture<class_texture>` **color_ramp** - Each particle's color will vary along this [GradientTexture].
+- :ref:`float<class_float>` **damping** - The rate at which particles lose velocity.
+- :ref:`Texture<class_texture>` **damping_curve** - Damping will vary along this [CurveTexture].
+- :ref:`float<class_float>` **damping_random** - Damping randomness ratio. Default value: [code]0[/code].
+- :ref:`Vector3<class_vector3>` **emission_box_extents** - The box's extents if [code]emission_shape[/code] is set to [code]EMISSION_SHAPE_BOX[/code].
 - :ref:`Texture<class_texture>` **emission_color_texture**
 - :ref:`Texture<class_texture>` **emission_normal_texture**
-- :ref:`int<class_int>` **emission_point_count**
+- :ref:`int<class_int>` **emission_point_count** - The number of emission points if [code]emission_shape[/code] is set to [code]EMISSION_SHAPE_POINTS[/code] or [code]EMISSION_SHAPE_DIRECTED_POINTS[/code].
 - :ref:`Texture<class_texture>` **emission_point_texture**
-- :ref:`int<class_int>` **emission_shape**
-- :ref:`float<class_float>` **emission_sphere_radius**
+- :ref:`int<class_int>` **emission_shape** - Particles will be emitted inside this region. Use [code]EMISSION_SHAPE_*[/code] constants for values. Default value: [code]EMISSION_SHAPE_POINT[/code].
+- :ref:`float<class_float>` **emission_sphere_radius** - The sphere's radius if [code]emission_shape[/code] is set to [code]EMISSION_SHAPE_SPHERE[/code].
 - :ref:`bool<class_bool>` **flag_align_y**
-- :ref:`bool<class_bool>` **flag_disable_z**
+- :ref:`bool<class_bool>` **flag_disable_z** - If [code]true[/code] particles will not move on the z axis. Default value: [code]true[/code] for [Particles2D], [code]false[/code] for [Particles].
 - :ref:`bool<class_bool>` **flag_rotate_y**
 - :ref:`float<class_float>` **flatness**
-- :ref:`Vector3<class_vector3>` **gravity**
-- :ref:`float<class_float>` **hue_variation**
-- :ref:`Texture<class_texture>` **hue_variation_curve**
-- :ref:`float<class_float>` **hue_variation_random**
-- :ref:`float<class_float>` **initial_velocity**
-- :ref:`float<class_float>` **initial_velocity_random**
-- :ref:`float<class_float>` **linear_accel**
-- :ref:`Texture<class_texture>` **linear_accel_curve**
-- :ref:`float<class_float>` **linear_accel_random**
-- :ref:`float<class_float>` **orbit_velocity**
-- :ref:`Texture<class_texture>` **orbit_velocity_curve**
-- :ref:`float<class_float>` **orbit_velocity_random**
-- :ref:`float<class_float>` **radial_accel**
-- :ref:`Texture<class_texture>` **radial_accel_curve**
-- :ref:`float<class_float>` **radial_accel_random**
-- :ref:`float<class_float>` **scale**
-- :ref:`Texture<class_texture>` **scale_curve**
-- :ref:`float<class_float>` **scale_random**
-- :ref:`float<class_float>` **spread**
-- :ref:`float<class_float>` **tangential_accel**
-- :ref:`Texture<class_texture>` **tangential_accel_curve**
-- :ref:`float<class_float>` **tangential_accel_random**
-- :ref:`GradientTexture<class_gradienttexture>` **trail_color_modifier**
-- :ref:`int<class_int>` **trail_divisor**
-- :ref:`CurveTexture<class_curvetexture>` **trail_size_modifier**
+- :ref:`Vector3<class_vector3>` **gravity** - Gravity applied to every particle. Default value: [code](0, 98, 0)[/code].
+- :ref:`float<class_float>` **hue_variation** - Initial hue variation applied to each particle.
+- :ref:`Texture<class_texture>` **hue_variation_curve** - Each particle's hue will vary along this [CurveTexture].
+- :ref:`float<class_float>` **hue_variation_random** - Hue variation randomness ratio. Default value: [code]0[/code].
+- :ref:`float<class_float>` **initial_velocity** - Initial velocity for each particle.
+- :ref:`float<class_float>` **initial_velocity_random** - Initial velocity randomness ratio. Default value: [code]0[/code].
+- :ref:`float<class_float>` **linear_accel** - Linear acceleration applied to each particle.
+- :ref:`Texture<class_texture>` **linear_accel_curve** - Each particle's linear acceleration will vary along this [CurveTexture].
+- :ref:`float<class_float>` **linear_accel_random** - Linear acceleration randomness ratio. Default value: [code]0[/code].
+- :ref:`float<class_float>` **orbit_velocity** - Orbital velocity applied to each particle.
+- :ref:`Texture<class_texture>` **orbit_velocity_curve** - Each particle's orbital velocity will vary along this [CurveTexture].
+- :ref:`float<class_float>` **orbit_velocity_random** - Orbital velocity randomness ratio. Default value: [code]0[/code].
+- :ref:`float<class_float>` **radial_accel** - Linear acceleration applied to each particle.
+- :ref:`Texture<class_texture>` **radial_accel_curve** - Each particle's radial acceleration will vary along this [CurveTexture].
+- :ref:`float<class_float>` **radial_accel_random** - Radial acceleration randomness ratio. Default value: [code]0[/code].
+- :ref:`float<class_float>` **scale** - Initial scale applied to each particle.
+- :ref:`Texture<class_texture>` **scale_curve** - Each particle's scale will vary along this [CurveTexture].
+- :ref:`float<class_float>` **scale_random** - Scale randomness ratio. Default value: [code]0[/code].
+- :ref:`float<class_float>` **spread** - Each particle's initial direction range from [code]+spread[/code] to [code]-spread[/code] degrees. Default value: [code]45[/code].
+- :ref:`float<class_float>` **tangential_accel** - Tangential acceleration applied to each particle. Tangential acceleration is perpendicular to the particle's velocity.
+- :ref:`Texture<class_texture>` **tangential_accel_curve** - Each particle's tangential acceleration will vary along this [CurveTexture].
+- :ref:`float<class_float>` **tangential_accel_random** - Tangential acceleration randomness ratio. Default value: [code]0[/code].
+- :ref:`GradientTexture<class_gradienttexture>` **trail_color_modifier** - Trail particles' color will vary along this [GradientTexture].
+- :ref:`int<class_int>` **trail_divisor** - Emitter will emit [code]amount[/code] divided by [code]trail_divisor[/code] particles. The remaining particles will be used as trail(s).
+- :ref:`CurveTexture<class_curvetexture>` **trail_size_modifier** - Trail particles' size will vary along this [CurveTexture].
 
 Numeric Constants
 -----------------
 
-- **PARAM_INITIAL_LINEAR_VELOCITY** = **0**
-- **PARAM_ANGULAR_VELOCITY** = **1**
-- **PARAM_ORBIT_VELOCITY** = **2**
-- **PARAM_LINEAR_ACCEL** = **3**
-- **PARAM_RADIAL_ACCEL** = **4**
-- **PARAM_TANGENTIAL_ACCEL** = **5**
-- **PARAM_DAMPING** = **6**
-- **PARAM_ANGLE** = **7**
-- **PARAM_SCALE** = **8**
-- **PARAM_HUE_VARIATION** = **9**
-- **PARAM_ANIM_SPEED** = **10**
-- **PARAM_ANIM_OFFSET** = **11**
+- **PARAM_INITIAL_LINEAR_VELOCITY** = **0** --- Use with :ref:`set_param<class_ParticlesMaterial_set_param>`, :ref:`set_param_randomness<class_ParticlesMaterial_set_param_randomness>`, and :ref:`set_param_texture<class_ParticlesMaterial_set_param_texture>` to set initial velocity properties.
+- **PARAM_ANGULAR_VELOCITY** = **1** --- Use with :ref:`set_param<class_ParticlesMaterial_set_param>`, :ref:`set_param_randomness<class_ParticlesMaterial_set_param_randomness>`, and :ref:`set_param_texture<class_ParticlesMaterial_set_param_texture>` to set angular velocity properties.
+- **PARAM_ORBIT_VELOCITY** = **2** --- Use with :ref:`set_param<class_ParticlesMaterial_set_param>`, :ref:`set_param_randomness<class_ParticlesMaterial_set_param_randomness>`, and :ref:`set_param_texture<class_ParticlesMaterial_set_param_texture>` to set orbital_velocity properties.
+- **PARAM_LINEAR_ACCEL** = **3** --- Use with :ref:`set_param<class_ParticlesMaterial_set_param>`, :ref:`set_param_randomness<class_ParticlesMaterial_set_param_randomness>`, and :ref:`set_param_texture<class_ParticlesMaterial_set_param_texture>` to set linear acceleration properties.
+- **PARAM_RADIAL_ACCEL** = **4** --- Use with :ref:`set_param<class_ParticlesMaterial_set_param>`, :ref:`set_param_randomness<class_ParticlesMaterial_set_param_randomness>`, and :ref:`set_param_texture<class_ParticlesMaterial_set_param_texture>` to set radial acceleration properties.
+- **PARAM_TANGENTIAL_ACCEL** = **5** --- Use with :ref:`set_param<class_ParticlesMaterial_set_param>`, :ref:`set_param_randomness<class_ParticlesMaterial_set_param_randomness>`, and :ref:`set_param_texture<class_ParticlesMaterial_set_param_texture>` to set tangential acceleration properties.
+- **PARAM_DAMPING** = **6** --- Use with :ref:`set_param<class_ParticlesMaterial_set_param>`, :ref:`set_param_randomness<class_ParticlesMaterial_set_param_randomness>`, and :ref:`set_param_texture<class_ParticlesMaterial_set_param_texture>` to set damping properties.
+- **PARAM_ANGLE** = **7** --- Use with :ref:`set_param<class_ParticlesMaterial_set_param>`, :ref:`set_param_randomness<class_ParticlesMaterial_set_param_randomness>`, and :ref:`set_param_texture<class_ParticlesMaterial_set_param_texture>` to set angle properties.
+- **PARAM_SCALE** = **8** --- Use with :ref:`set_param<class_ParticlesMaterial_set_param>`, :ref:`set_param_randomness<class_ParticlesMaterial_set_param_randomness>`, and :ref:`set_param_texture<class_ParticlesMaterial_set_param_texture>` to set scale properties.
+- **PARAM_HUE_VARIATION** = **9** --- Use with :ref:`set_param<class_ParticlesMaterial_set_param>`, :ref:`set_param_randomness<class_ParticlesMaterial_set_param_randomness>`, and :ref:`set_param_texture<class_ParticlesMaterial_set_param_texture>` to set hue_variation properties.
+- **PARAM_ANIM_SPEED** = **10** --- Use with :ref:`set_param<class_ParticlesMaterial_set_param>`, :ref:`set_param_randomness<class_ParticlesMaterial_set_param_randomness>`, and :ref:`set_param_texture<class_ParticlesMaterial_set_param_texture>` to set animation speed properties.
+- **PARAM_ANIM_OFFSET** = **11** --- Use with :ref:`set_param<class_ParticlesMaterial_set_param>`, :ref:`set_param_randomness<class_ParticlesMaterial_set_param_randomness>`, and :ref:`set_param_texture<class_ParticlesMaterial_set_param_texture>` to set animation offset properties.
 - **PARAM_MAX** = **12**
-- **FLAG_ALIGN_Y_TO_VELOCITY** = **0**
-- **FLAG_ROTATE_Y** = **1**
+- **FLAG_ALIGN_Y_TO_VELOCITY** = **0** --- Use with :ref:`set_flag<class_ParticlesMaterial_set_flag>` to set member flag_align_y.
+- **FLAG_ROTATE_Y** = **1** --- Use with :ref:`set_flag<class_ParticlesMaterial_set_flag>` to set member flag_rotate_y
 - **FLAG_MAX** = **4**
-- **EMISSION_SHAPE_POINT** = **0**
-- **EMISSION_SHAPE_SPHERE** = **1**
-- **EMISSION_SHAPE_BOX** = **2**
+- **EMISSION_SHAPE_POINT** = **0** --- All particles will be emitted from a single point.
+- **EMISSION_SHAPE_SPHERE** = **1** --- Particles will be emitted in the volume of a sphere.
+- **EMISSION_SHAPE_BOX** = **2** --- Particles will be emitted in the volume of a box.
 - **EMISSION_SHAPE_POINTS** = **3**
 - **EMISSION_SHAPE_DIRECTED_POINTS** = **4**
 
+Description
+-----------
+
+ParticlesMaterial defines particle properties and behavior. It is used in the ``process_material`` of :ref:`Particles<class_particles>` and :ref:`Particles2D<class_particles2d>` emitter nodes.
+
+Some of this material's properties are applied to each particle when emitted, while others can have a :ref:`CurveTexture<class_curvetexture>` applied to vary values over the lifetime of the particle.
+
 Member Function Description
 ---------------------------
 

+ 40 - 27
classes/class_performance.rst

@@ -14,7 +14,7 @@ Performance
 Brief Description
 -----------------
 
-
+Exposes performance related data.
 
 Member Functions
 ----------------
@@ -26,35 +26,42 @@ Member Functions
 Numeric Constants
 -----------------
 
-- **TIME_FPS** = **0**
-- **TIME_PROCESS** = **1**
-- **TIME_FIXED_PROCESS** = **2**
-- **MEMORY_STATIC** = **3**
-- **MEMORY_DYNAMIC** = **4**
-- **MEMORY_STATIC_MAX** = **5**
-- **MEMORY_DYNAMIC_MAX** = **6**
-- **MEMORY_MESSAGE_BUFFER_MAX** = **7**
-- **OBJECT_COUNT** = **8**
-- **OBJECT_RESOURCE_COUNT** = **9**
-- **OBJECT_NODE_COUNT** = **10**
-- **RENDER_OBJECTS_IN_FRAME** = **11**
-- **RENDER_VERTICES_IN_FRAME** = **12**
-- **RENDER_MATERIAL_CHANGES_IN_FRAME** = **13**
-- **RENDER_SHADER_CHANGES_IN_FRAME** = **14**
-- **RENDER_SURFACE_CHANGES_IN_FRAME** = **15**
-- **RENDER_DRAW_CALLS_IN_FRAME** = **16**
+- **TIME_FPS** = **0** --- Frames per second.
+- **TIME_PROCESS** = **1** --- Time it took to complete one frame.
+- **TIME_PHYSICS_PROCESS** = **2** --- Time it took to complete one physics frame.
+- **MEMORY_STATIC** = **3** --- Static memory currently used, in bytes. Not available in release builds.
+- **MEMORY_DYNAMIC** = **4** --- Dynamic memory currently used, in bytes. Not available in release builds.
+- **MEMORY_STATIC_MAX** = **5** --- Available static memory. Not available in release builds.
+- **MEMORY_DYNAMIC_MAX** = **6** --- Available dynamic memory. Not available in release builds.
+- **MEMORY_MESSAGE_BUFFER_MAX** = **7** --- Largest amount of memory the message queue buffer has used, in bytes. The message queue is used for deferred functions calls and notifications.
+- **OBJECT_COUNT** = **8** --- Number of objects currently instanced (including nodes).
+- **OBJECT_RESOURCE_COUNT** = **9** --- Number of resources currently used.
+- **OBJECT_NODE_COUNT** = **10** --- Number of nodes currently instanced. This also includes the root node, as well as any nodes not in the scene tree.
+- **RENDER_OBJECTS_IN_FRAME** = **11** --- 3D objects drawn per frame.
+- **RENDER_VERTICES_IN_FRAME** = **12** --- Vertices drawn per frame. 3D only.
+- **RENDER_MATERIAL_CHANGES_IN_FRAME** = **13** --- Material changes per frame. 3D only
+- **RENDER_SHADER_CHANGES_IN_FRAME** = **14** --- Shader changes per frame. 3D only.
+- **RENDER_SURFACE_CHANGES_IN_FRAME** = **15** --- Render surface changes per frame. 3D only.
+- **RENDER_DRAW_CALLS_IN_FRAME** = **16** --- Draw calls per frame. 3D only.
 - **RENDER_USAGE_VIDEO_MEM_TOTAL** = **20**
-- **RENDER_VIDEO_MEM_USED** = **17**
-- **RENDER_TEXTURE_MEM_USED** = **18**
-- **RENDER_VERTEX_MEM_USED** = **19**
-- **PHYSICS_2D_ACTIVE_OBJECTS** = **21**
-- **PHYSICS_2D_COLLISION_PAIRS** = **22**
-- **PHYSICS_2D_ISLAND_COUNT** = **23**
-- **PHYSICS_3D_ACTIVE_OBJECTS** = **24**
-- **PHYSICS_3D_COLLISION_PAIRS** = **25**
-- **PHYSICS_3D_ISLAND_COUNT** = **26**
+- **RENDER_VIDEO_MEM_USED** = **17** --- Video memory used. Includes both texture and vertex memory.
+- **RENDER_TEXTURE_MEM_USED** = **18** --- Texture memory used.
+- **RENDER_VERTEX_MEM_USED** = **19** --- Vertex memory used.
+- **PHYSICS_2D_ACTIVE_OBJECTS** = **21** --- Number of active :ref:`RigidBody2D<class_rigidbody2d>` nodes in the game.
+- **PHYSICS_2D_COLLISION_PAIRS** = **22** --- Number of collision pairs in the 2D physics engine.
+- **PHYSICS_2D_ISLAND_COUNT** = **23** --- Number of islands in the 2D physics engine.
+- **PHYSICS_3D_ACTIVE_OBJECTS** = **24** --- Number of active :ref:`RigidBody<class_rigidbody>` and :ref:`VehicleBody<class_vehiclebody>` nodes in the game.
+- **PHYSICS_3D_COLLISION_PAIRS** = **25** --- Number of collision pairs in the 3D physics engine.
+- **PHYSICS_3D_ISLAND_COUNT** = **26** --- Number of islands in the 3D physics engine.
 - **MONITOR_MAX** = **27**
 
+Description
+-----------
+
+This class provides access to a number of different monitors related to performance, such as memory usage, draw calls, and FPS. These are the same as the values displayed in the *Monitor* tab in the editor's *Debugger* panel. By using the :ref:`get_monitor<class_Performance_get_monitor>` method of this class, you can access this data from your code. Note that a few of these monitors are only available in debug mode and will always return 0 when used in a release build.
+
+Many of these monitors are not updated in real-time, so there may be a short delay between changes.
+
 Member Function Description
 ---------------------------
 
@@ -62,4 +69,10 @@ Member Function Description
 
 - :ref:`float<class_float>`  **get_monitor**  **(** :ref:`int<class_int>` monitor  **)** const
 
+Returns the value of one of the available monitors. You should provide one of this class's constants as the argument, like this:
+
+::
+
+    print(Performance.get_monitor(Performance.TIME_FPS)) # Prints the FPS to the console
+
 

+ 6 - 0
classes/class_physics2dserver.rst

@@ -88,6 +88,8 @@ Member Functions
 +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`int<class_int>`                                              | :ref:`body_get_continuous_collision_detection_mode<class_Physics2DServer_body_get_continuous_collision_detection_mode>`  **(** :ref:`RID<class_rid>` body  **)** const                                                                                                                                           |
 +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Physics2DDirectBodyState<class_physics2ddirectbodystate>`    | :ref:`body_get_direct_state<class_Physics2DServer_body_get_direct_state>`  **(** :ref:`RID<class_rid>` body  **)**                                                                                                                                                                                               |
++--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`int<class_int>`                                              | :ref:`body_get_max_contacts_reported<class_Physics2DServer_body_get_max_contacts_reported>`  **(** :ref:`RID<class_rid>` body  **)** const                                                                                                                                                                       |
 +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`int<class_int>`                                              | :ref:`body_get_mode<class_Physics2DServer_body_get_mode>`  **(** :ref:`RID<class_rid>` body  **)** const                                                                                                                                                                                                         |
@@ -468,6 +470,10 @@ Return the physics layer or layers a body can collide with.
 
 Return the continuous collision detection mode.
 
+.. _class_Physics2DServer_body_get_direct_state:
+
+- :ref:`Physics2DDirectBodyState<class_physics2ddirectbodystate>`  **body_get_direct_state**  **(** :ref:`RID<class_rid>` body  **)**
+
 .. _class_Physics2DServer_body_get_max_contacts_reported:
 
 - :ref:`int<class_int>`  **body_get_max_contacts_reported**  **(** :ref:`RID<class_rid>` body  **)** const

+ 6 - 0
classes/class_physicsserver.rst

@@ -90,6 +90,8 @@ Member Functions
 +----------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`int<class_int>`                                          | :ref:`body_get_collision_mask<class_PhysicsServer_body_get_collision_mask>`  **(** :ref:`RID<class_rid>` body  **)** const                                                                                                                                          |
 +----------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`PhysicsDirectBodyState<class_physicsdirectbodystate>`    | :ref:`body_get_direct_state<class_PhysicsServer_body_get_direct_state>`  **(** :ref:`RID<class_rid>` body  **)**                                                                                                                                                    |
++----------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`int<class_int>`                                          | :ref:`body_get_max_contacts_reported<class_PhysicsServer_body_get_max_contacts_reported>`  **(** :ref:`RID<class_rid>` body  **)** const                                                                                                                            |
 +----------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`int<class_int>`                                          | :ref:`body_get_mode<class_PhysicsServer_body_get_mode>`  **(** :ref:`RID<class_rid>` body  **)** const                                                                                                                                                              |
@@ -488,6 +490,10 @@ Member Function Description
 
 - :ref:`int<class_int>`  **body_get_collision_mask**  **(** :ref:`RID<class_rid>` body  **)** const
 
+.. _class_PhysicsServer_body_get_direct_state:
+
+- :ref:`PhysicsDirectBodyState<class_physicsdirectbodystate>`  **body_get_direct_state**  **(** :ref:`RID<class_rid>` body  **)**
+
 .. _class_PhysicsServer_body_get_max_contacts_reported:
 
 - :ref:`int<class_int>`  **body_get_max_contacts_reported**  **(** :ref:`RID<class_rid>` body  **)** const

+ 14 - 14
classes/class_polygon2d.rst

@@ -14,7 +14,7 @@ Polygon2D
 Brief Description
 -----------------
 
-2D polygon representation
+A 2D polygon.
 
 Member Functions
 ----------------
@@ -72,23 +72,23 @@ Member Functions
 Member Variables
 ----------------
 
-- :ref:`bool<class_bool>` **antialiased**
-- :ref:`Color<class_color>` **color**
-- :ref:`float<class_float>` **invert_border**
-- :ref:`bool<class_bool>` **invert_enable**
-- :ref:`Vector2<class_vector2>` **offset**
-- :ref:`PoolVector2Array<class_poolvector2array>` **polygon**
-- :ref:`Texture<class_texture>` **texture**
-- :ref:`Vector2<class_vector2>` **texture_offset**
-- :ref:`float<class_float>` **texture_rotation**
-- :ref:`Vector2<class_vector2>` **texture_scale**
-- :ref:`PoolVector2Array<class_poolvector2array>` **uv**
-- :ref:`PoolColorArray<class_poolcolorarray>` **vertex_colors**
+- :ref:`bool<class_bool>` **antialiased** - If [code]true[/code] polygon edges will be anti-aliased. Default value: [code]false[/code].
+- :ref:`Color<class_color>` **color** - The polygon's fill color. If [code]texture[/code] is defined, it will be multiplied by this color. It will also be the default color for vertices not set in [code]vertex_colors[/code].
+- :ref:`float<class_float>` **invert_border** - Added padding applied to the bounding box when using [code]invert[/code]. Setting this value too small may result in a "Bad Polygon" error. Default value: [code]100[/code].
+- :ref:`bool<class_bool>` **invert_enable** - If [code]true[/code] polygon will be inverted, containing the area outside the defined points and extending to the [code]invert_border[/code]. Default value: [code]false[/code].
+- :ref:`Vector2<class_vector2>` **offset** - The offset applied to each vertex.
+- :ref:`PoolVector2Array<class_poolvector2array>` **polygon** - The polygon's list of vertices. The final point will be connected to the first.
+- :ref:`Texture<class_texture>` **texture** - The polygon's fill texture. Use [code]uv[/code] to set texture coordinates.
+- :ref:`Vector2<class_vector2>` **texture_offset** - Amount to offset the polygon's [code]texture[/code]. If [code](0, 0)[/code] the texture's origin (its top-left corner) will be placed at the polygon's [code]position[/code].
+- :ref:`float<class_float>` **texture_rotation** - The texture's rotation in degrees.
+- :ref:`Vector2<class_vector2>` **texture_scale** - Amount to multiply the [code]uv[/code] coordinates when using a [code]texture[/code]. Larger values make the texture smaller, and vice versa.
+- :ref:`PoolVector2Array<class_poolvector2array>` **uv** - Texture coordinates for each vertex of the polygon. There should be one [code]uv[/code] per polygon vertex. If there are fewer, undefined vertices will use [code](0, 0)[/code].
+- :ref:`PoolColorArray<class_poolcolorarray>` **vertex_colors** - Color for each vertex. Colors are interpolated between vertices, resulting in smooth gradients. There should be one per polygon vertex. If there are fewer, undefined vertices will use [code]color[/code].
 
 Description
 -----------
 
-A Polygon2D is defined by a set of n vertices connected together by line segments, meaning that the vertex 1 will be connected with vertex 2, vertex 2 with vertex 3 ..., vertex n-1 with vertex n and vertex n with vertex 1 in order to close the loop and define a polygon.
+A Polygon2D is defined by a set of points. Each point is connected to the next, with the final point being connected to the first, resulting in a closed polygon. Polygon2Ds can be filled with color (solid or gradient) or filled with a given texture.
 
 Member Function Description
 ---------------------------

+ 15 - 3
classes/class_projectsettings.rst

@@ -26,11 +26,13 @@ Member Functions
 +--------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`int<class_int>`          | :ref:`get_order<class_ProjectSettings_get_order>`  **(** :ref:`String<class_string>` name  **)** const                                                |
 +--------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Variant<class_variant>`  | :ref:`get_setting<class_ProjectSettings_get_setting>`  **(** :ref:`String<class_string>` name  **)** const                                            |
++--------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`Object<class_object>`    | :ref:`get_singleton<class_ProjectSettings_get_singleton>`  **(** :ref:`String<class_string>` name  **)** const                                        |
 +--------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`String<class_string>`    | :ref:`globalize_path<class_ProjectSettings_globalize_path>`  **(** :ref:`String<class_string>` path  **)** const                                      |
 +--------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`        | :ref:`has<class_ProjectSettings_has>`  **(** :ref:`String<class_string>` name  **)** const                                                            |
+| :ref:`bool<class_bool>`        | :ref:`has_setting<class_ProjectSettings_has_setting>`  **(** :ref:`String<class_string>` name  **)** const                                            |
 +--------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`bool<class_bool>`        | :ref:`has_singleton<class_ProjectSettings_has_singleton>`  **(** :ref:`String<class_string>` name  **)** const                                        |
 +--------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------+
@@ -50,6 +52,8 @@ Member Functions
 +--------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                           | :ref:`set_order<class_ProjectSettings_set_order>`  **(** :ref:`String<class_string>` name, :ref:`int<class_int>` position  **)**                      |
 +--------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                           | :ref:`set_setting<class_ProjectSettings_set_setting>`  **(** :ref:`String<class_string>` name, :ref:`Variant<class_variant>` value  **)**             |
++--------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------+
 
 Description
 -----------
@@ -92,6 +96,10 @@ Clear the whole configuration (not recommended, may break things).
 
 Return the order of a configuration value (influences when saved to the config file).
 
+.. _class_ProjectSettings_get_setting:
+
+- :ref:`Variant<class_variant>`  **get_setting**  **(** :ref:`String<class_string>` name  **)** const
+
 .. _class_ProjectSettings_get_singleton:
 
 - :ref:`Object<class_object>`  **get_singleton**  **(** :ref:`String<class_string>` name  **)** const
@@ -102,9 +110,9 @@ Return the order of a configuration value (influences when saved to the config f
 
 Convert a localized path (res://) to a full native OS path.
 
-.. _class_ProjectSettings_has:
+.. _class_ProjectSettings_has_setting:
 
-- :ref:`bool<class_bool>`  **has**  **(** :ref:`String<class_string>` name  **)** const
+- :ref:`bool<class_bool>`  **has_setting**  **(** :ref:`String<class_string>` name  **)** const
 
 Return true if a configuration value is present.
 
@@ -148,4 +156,8 @@ Convert a path to a localized path (res:// path).
 
 Set the order of a configuration value (influences when saved to the config file).
 
+.. _class_ProjectSettings_set_setting:
+
+- void  **set_setting**  **(** :ref:`String<class_string>` name, :ref:`Variant<class_variant>` value  **)**
+
 

+ 11 - 7
classes/class_range.rst

@@ -72,13 +72,13 @@ This signal is emitted when value changes.
 Member Variables
 ----------------
 
-- :ref:`bool<class_bool>` **exp_edit**
-- :ref:`float<class_float>` **max_value**
-- :ref:`float<class_float>` **min_value**
-- :ref:`float<class_float>` **page**
-- :ref:`bool<class_bool>` **rounded**
-- :ref:`float<class_float>` **step**
-- :ref:`float<class_float>` **value**
+- :ref:`bool<class_bool>` **exp_edit** - If [code]true[/code] and [code]min_value[/code] is greater than 0, [code]value[/code] will be represented exponentially rather than linearly.
+- :ref:`float<class_float>` **max_value** - Maximum value. Range is clamped if [code]value[/code] is greater than [code]max_value[/code]. Default value: 100.
+- :ref:`float<class_float>` **min_value** - Minimum value. Range is clamped if [code]value[/code] is less than [code]min_value[/code]. Default value: 0.
+- :ref:`float<class_float>` **page** - Page size. Used mainly for [ScrollBar]. ScrollBar's length is its size multiplied by [code]page[/code] over the difference between [code]min_value[/code] and [code]max_value[/code].
+- :ref:`bool<class_bool>` **rounded** - If [code]true[/code], [code]value[/code] will always be rounded to the nearest integer.
+- :ref:`float<class_float>` **step** - If greater than 0, [code]value[/code] will always be rounded to a multiple of [code]step[/code]. If [code]rounded[/code] is also [code]true[/code], [code]value[/code] will first be rounded to a multiple of [code]step[/code] then rounded to the nearest integer.
+- :ref:`float<class_float>` **value** - Range's current value.
 
 Description
 -----------
@@ -174,8 +174,12 @@ Set step value. If step is 0, stepping will be disabled.
 
 - void  **share**  **(** :ref:`Node<class_node>` with  **)**
 
+Binds two Ranges together along with any Ranges previously grouped with either of them. When any of Range's member variables change, it will share the new value with all other Ranges in its group.
+
 .. _class_Range_unshare:
 
 - void  **unshare**  **(** **)**
 
+Stop Range from sharing its member variables with any other Range.
+
 

+ 2 - 8
classes/class_raycast.rst

@@ -76,17 +76,11 @@ Description
 
 A RayCast represents a line from its origin to its destination position, ``cast_to``. It is used to query the 3D space in order to find the closest object along the path of the ray.
 
-
-
 RayCast can ignore some objects by adding them to the exception list via ``add_exception``, by setting proper filtering with collision layers, or by filtering object types with type masks.
 
-
-
 Only enabled raycasts will be able to query the space and report collisions.
 
-
-
-RayCast calculates intersection every fixed frame (see :ref:`Node<class_node>`), and the result is cached so it can be used later until the next frame. If multiple queries are required between fixed frames (or during the same frame) use :ref:`force_raycast_update<class_RayCast_force_raycast_update>` after adjusting the raycast.
+RayCast calculates intersection every physics frame (see :ref:`Node<class_node>`), and the result is cached so it can be used later until the next frame. If multiple queries are required between physics frames (or during the same frame) use :ref:`force_raycast_update<class_RayCast_force_raycast_update>` after adjusting the raycast.
 
 Member Function Description
 ---------------------------
@@ -115,7 +109,7 @@ Removes all collision exceptions for this ray.
 
 Updates the collision information for the ray.
 
-Use this method to update the collision information immediately instead of waiting for the next ``_fixed_process`` call, for example if the ray or its parent has changed state. Note: ``enabled == true`` is not required for this to work.
+Use this method to update the collision information immediately instead of waiting for the next ``_physics_process`` call, for example if the ray or its parent has changed state. Note: ``enabled == true`` is not required for this to work.
 
 .. _class_RayCast_get_cast_to:
 

+ 2 - 2
classes/class_raycast2d.rst

@@ -85,7 +85,7 @@ RayCast2D can ignore some objects by adding them to the exception list via ``add
 
 Only enabled raycasts will be able to query the space and report collisions.
 
-RayCast2D calculates intersection every fixed frame (see :ref:`Node<class_node>`), and the result is cached so it can be used later until the next frame. If multiple queries are required between fixed frames (or during the same frame) use :ref:`force_raycast_update<class_RayCast2D_force_raycast_update>` after adjusting the raycast.
+RayCast2D calculates intersection every physics frame (see :ref:`Node<class_node>`), and the result is cached so it can be used later until the next frame. If multiple queries are required between physics frames (or during the same frame) use :ref:`force_raycast_update<class_RayCast2D_force_raycast_update>` after adjusting the raycast.
 
 Member Function Description
 ---------------------------
@@ -112,7 +112,7 @@ Removes all collision exceptions for this ray.
 
 - void  **force_raycast_update**  **(** **)**
 
-Updates the collision information for the ray.  Use this method to update the collision information immediately instead of waiting for the next ``_fixed_process`` call, for example if the ray or its parent has changed state. Note: ``enabled == true`` is not required for this to work.
+Updates the collision information for the ray.  Use this method to update the collision information immediately instead of waiting for the next ``_physics_process`` call, for example if the ray or its parent has changed state. Note: ``enabled == true`` is not required for this to work.
 
 .. _class_RayCast2D_get_cast_to:
 

+ 7 - 2
classes/class_rayshape.rst

@@ -14,7 +14,7 @@ RayShape
 Brief Description
 -----------------
 
-
+Ray shape for 3D collisions.
 
 Member Functions
 ----------------
@@ -28,7 +28,12 @@ Member Functions
 Member Variables
 ----------------
 
-- :ref:`float<class_float>` **length**
+- :ref:`float<class_float>` **length** - The ray's length.
+
+Description
+-----------
+
+Ray shape for 3D collisions, which can be set into a :ref:`PhysicsBody<class_physicsbody>` or :ref:`Area<class_area>`. A ray is not really a collision body, instead it tries to separate itself from whatever is touching its far endpoint. It's often useful for characters.
 
 Member Function Description
 ---------------------------

+ 5 - 5
classes/class_regex.rst

@@ -42,7 +42,7 @@ Description
 
 Class for finding text patterns in a string using regular expressions. It can not perform replacements. Regular expressions are a way to define patterns of text to be searched. Details on writing patterns are too long to explain here but the Internet is full of tutorials and detailed explanations.
 
-Once created, the RegEx object needs to be compiled with the pattern before it can be used. The pattern must be escaped first for gdscript before it is escaped for the expression. For example:
+Once created, the RegEx object needs to be compiled with the search pattern before it can be used. The search pattern must be escaped first for gdscript before it is escaped for the expression. For example:
 
 ``var exp = RegEx.new()``
 
@@ -101,7 +101,7 @@ This method resets the state of the object, as it was freshly created. Namely, i
 
 - :ref:`int<class_int>`  **compile**  **(** :ref:`String<class_string>` pattern  **)**
 
-Compiles and assign the regular expression pattern to use.
+Compiles and assign the search pattern to use.
 
 .. _class_RegEx_get_group_count:
 
@@ -119,19 +119,19 @@ Returns an array of names of named capturing groups.
 
 - :ref:`String<class_string>`  **get_pattern**  **(** **)** const
 
-Returns the expression used to compile the code.
+Returns the search pattern used to compile the code.
 
 .. _class_RegEx_is_valid:
 
 - :ref:`bool<class_bool>`  **is_valid**  **(** **)** const
 
-Returns whether this object has a valid regular expression assigned.
+Returns whether this object has a valid search pattern assigned.
 
 .. _class_RegEx_search:
 
 - :ref:`RegExMatch<class_regexmatch>`  **search**  **(** :ref:`String<class_string>` subject, :ref:`int<class_int>` offset=0, :ref:`int<class_int>` end=-1  **)** const
 
-Searches the text for the compiled pattern. Returns a :ref:`RegExMatch<class_regexmatch>` container of the first matching reult if found, otherwise null. The region to search within can be specified without modifying where the start and end anchor would be.
+Searches the text for the compiled pattern. Returns a :ref:`RegExMatch<class_regexmatch>` container of the first matching result if found, otherwise null. The region to search within can be specified without modifying where the start and end anchor would be.
 
 .. _class_RegEx_sub:
 

+ 13 - 4
classes/class_regexmatch.rst

@@ -14,7 +14,7 @@ RegExMatch
 Brief Description
 -----------------
 
-
+Contains the results of a regex search.
 
 Member Functions
 ----------------
@@ -35,6 +35,11 @@ Member Functions
 | :ref:`String<class_string>`          | :ref:`get_subject<class_RegExMatch_get_subject>`  **(** **)** const                                     |
 +--------------------------------------+---------------------------------------------------------------------------------------------------------+
 
+Description
+-----------
+
+Contains the results of a regex search. :ref:`RegEx.search<class_RegEx_search>` returns an instance of ``RegExMatch`` if it finds the search pattern in the source string.
+
 Member Function Description
 ---------------------------
 
@@ -42,7 +47,7 @@ Member Function Description
 
 - :ref:`int<class_int>`  **get_end**  **(** :ref:`Variant<class_variant>` name=0  **)** const
 
-Returns the end position of the match in the string. An integer can be specified for numeric groups or a string for named groups. Returns -1 if that group wasn't found or doesn't exist. Defaults to 0 (whole pattern).
+Returns the end position of the match in the source string. An integer can be specified for numeric groups or a string for named groups. Returns -1 if that group wasn't found or doesn't exist. Defaults to 0 (whole pattern).
 
 .. _class_RegExMatch_get_group_count:
 
@@ -60,20 +65,24 @@ Returns an array of names of named capturing groups.
 
 - :ref:`int<class_int>`  **get_start**  **(** :ref:`Variant<class_variant>` name=0  **)** const
 
-Returns the starting position of the match in the string. An integer can be specified for numeric groups or a string for named groups. Returns -1 if that group wasn't found or doesn't exist. Defaults to 0 (whole pattern).
+Returns the starting position of the match in the source string. An integer can be specified for numeric groups or a string for named groups. Returns -1 if that group wasn't found or doesn't exist. Defaults to 0 (whole pattern).
 
 .. _class_RegExMatch_get_string:
 
 - :ref:`String<class_string>`  **get_string**  **(** :ref:`Variant<class_variant>` name=0  **)** const
 
-Returns the result of the match in the string. An integer can be specified for numeric groups or a string for named groups. Returns -1 if that group wasn't found or doesn't exist. Defaults to 0 (whole pattern).
+Returns the result of the match in the source string. An integer can be specified for numeric groups or a string for named groups. Returns -1 if that group wasn't found or doesn't exist. Defaults to 0 (whole pattern).
 
 .. _class_RegExMatch_get_strings:
 
 - :ref:`Array<class_array>`  **get_strings**  **(** **)** const
 
+Returns an :ref:`Array<class_array>` of the matches in the source string.
+
 .. _class_RegExMatch_get_subject:
 
 - :ref:`String<class_string>`  **get_subject**  **(** **)** const
 
+Returns the source string used with the search pattern to find this matching result.
+
 

+ 2 - 1
classes/class_scenetree.rst

@@ -105,12 +105,12 @@ Signals
 -  **connected_to_server**  **(** **)**
 -  **connection_failed**  **(** **)**
 -  **files_dropped**  **(** :ref:`PoolStringArray<class_poolstringarray>` files, :ref:`int<class_int>` screen  **)**
--  **fixed_frame**  **(** **)**
 -  **idle_frame**  **(** **)**
 -  **network_peer_connected**  **(** :ref:`int<class_int>` id  **)**
 -  **network_peer_disconnected**  **(** :ref:`int<class_int>` id  **)**
 -  **node_configuration_warning_changed**  **(** :ref:`Object<class_object>` node  **)**
 -  **node_removed**  **(** :ref:`Object<class_object>` node  **)**
+-  **physics_frame**  **(** **)**
 -  **screen_resized**  **(** **)**
 -  **server_disconnected**  **(** **)**
 -  **tree_changed**  **(** **)**
@@ -129,6 +129,7 @@ Numeric Constants
 - **STRETCH_ASPECT_KEEP** = **1**
 - **STRETCH_ASPECT_KEEP_WIDTH** = **2**
 - **STRETCH_ASPECT_KEEP_HEIGHT** = **3**
+- **STRETCH_ASPECT_EXPAND** = **4**
 
 Member Function Description
 ---------------------------

+ 1 - 1
classes/class_script.rst

@@ -9,7 +9,7 @@ Script
 
 **Inherits:** :ref:`Resource<class_resource>` **<** :ref:`Reference<class_reference>` **<** :ref:`Object<class_object>`
 
-**Inherited By:** :ref:`VisualScript<class_visualscript>`, :ref:`GDScript<class_gdscript>`, :ref:`NativeScript<class_nativescript>`
+**Inherited By:** :ref:`VisualScript<class_visualscript>`, :ref:`GDScript<class_gdscript>`, :ref:`CSharpScript<class_csharpscript>`, :ref:`NativeScript<class_nativescript>`
 
 **Category:** Core
 

+ 5 - 0
classes/class_shape.rst

@@ -16,5 +16,10 @@ Shape
 Brief Description
 -----------------
 
+Base class for all 3D shape resources.
 
+Description
+-----------
+
+Base class for all 3D shape resources. All 3D shapes that inherit from this can be set into a :ref:`PhysicsBody<class_physicsbody>` or :ref:`Area<class_area>`.
 

+ 17 - 4
classes/class_spatialmaterial.rst

@@ -26,6 +26,8 @@ Member Functions
 +--------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`float<class_float>`      | :ref:`get_anisotropy<class_SpatialMaterial_get_anisotropy>`  **(** **)** const                                                                       |
 +--------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`      | :ref:`get_ao_light_affect<class_SpatialMaterial_get_ao_light_affect>`  **(** **)** const                                                             |
++--------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`int<class_int>`          | :ref:`get_ao_texture_channel<class_SpatialMaterial_get_ao_texture_channel>`  **(** **)** const                                                       |
 +--------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`int<class_int>`          | :ref:`get_billboard_mode<class_SpatialMaterial_get_billboard_mode>`  **(** **)** const                                                               |
@@ -132,6 +134,8 @@ Member Functions
 +--------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                           | :ref:`set_anisotropy<class_SpatialMaterial_set_anisotropy>`  **(** :ref:`float<class_float>` anisotropy  **)**                                       |
 +--------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                           | :ref:`set_ao_light_affect<class_SpatialMaterial_set_ao_light_affect>`  **(** :ref:`float<class_float>` amount  **)**                                 |
++--------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                           | :ref:`set_ao_texture_channel<class_SpatialMaterial_set_ao_texture_channel>`  **(** :ref:`int<class_int>` channel  **)**                              |
 +--------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                           | :ref:`set_billboard_mode<class_SpatialMaterial_set_billboard_mode>`  **(** :ref:`int<class_int>` mode  **)**                                         |
@@ -242,6 +246,7 @@ Member Variables
 - :ref:`bool<class_bool>` **anisotropy_enabled**
 - :ref:`Texture<class_texture>` **anisotropy_flowmap**
 - :ref:`bool<class_bool>` **ao_enabled**
+- :ref:`float<class_float>` **ao_light_affect**
 - :ref:`bool<class_bool>` **ao_on_uv2**
 - :ref:`Texture<class_texture>` **ao_texture**
 - :ref:`int<class_int>` **ao_texture_channel**
@@ -386,10 +391,10 @@ Numeric Constants
 - **FLAG_USE_ALPHA_SCISSOR** = **11**
 - **FLAG_TRIPLANAR_USE_WORLD** = **9**
 - **FLAG_MAX** = **12**
-- **DIFFUSE_LAMBERT** = **0**
-- **DIFFUSE_LAMBERT_WRAP** = **1**
-- **DIFFUSE_OREN_NAYAR** = **2**
-- **DIFFUSE_BURLEY** = **3**
+- **DIFFUSE_BURLEY** = **0**
+- **DIFFUSE_LAMBERT** = **1**
+- **DIFFUSE_LAMBERT_WRAP** = **2**
+- **DIFFUSE_OREN_NAYAR** = **3**
 - **DIFFUSE_TOON** = **4**
 - **SPECULAR_SCHLICK_GGX** = **0**
 - **SPECULAR_BLINN** = **1**
@@ -421,6 +426,10 @@ Member Function Description
 
 - :ref:`float<class_float>`  **get_anisotropy**  **(** **)** const
 
+.. _class_SpatialMaterial_get_ao_light_affect:
+
+- :ref:`float<class_float>`  **get_ao_light_affect**  **(** **)** const
+
 .. _class_SpatialMaterial_get_ao_texture_channel:
 
 - :ref:`int<class_int>`  **get_ao_texture_channel**  **(** **)** const
@@ -633,6 +642,10 @@ Member Function Description
 
 - void  **set_anisotropy**  **(** :ref:`float<class_float>` anisotropy  **)**
 
+.. _class_SpatialMaterial_set_ao_light_affect:
+
+- void  **set_ao_light_affect**  **(** :ref:`float<class_float>` amount  **)**
+
 .. _class_SpatialMaterial_set_ao_texture_channel:
 
 - void  **set_ao_texture_channel**  **(** :ref:`int<class_int>` channel  **)**

+ 15 - 15
classes/class_spatialvelocitytracker.rst

@@ -19,17 +19,17 @@ Brief Description
 Member Functions
 ----------------
 
-+--------------------------------+-----------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Vector3<class_vector3>`  | :ref:`get_tracked_linear_velocity<class_SpatialVelocityTracker_get_tracked_linear_velocity>`  **(** **)** const             |
-+--------------------------------+-----------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`        | :ref:`is_tracking_fixed_step<class_SpatialVelocityTracker_is_tracking_fixed_step>`  **(** **)** const                       |
-+--------------------------------+-----------------------------------------------------------------------------------------------------------------------------+
-| void                           | :ref:`reset<class_SpatialVelocityTracker_reset>`  **(** :ref:`Vector3<class_vector3>` position  **)**                       |
-+--------------------------------+-----------------------------------------------------------------------------------------------------------------------------+
-| void                           | :ref:`set_track_fixed_step<class_SpatialVelocityTracker_set_track_fixed_step>`  **(** :ref:`bool<class_bool>` enable  **)** |
-+--------------------------------+-----------------------------------------------------------------------------------------------------------------------------+
-| void                           | :ref:`update_position<class_SpatialVelocityTracker_update_position>`  **(** :ref:`Vector3<class_vector3>` position  **)**   |
-+--------------------------------+-----------------------------------------------------------------------------------------------------------------------------+
++--------------------------------+---------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Vector3<class_vector3>`  | :ref:`get_tracked_linear_velocity<class_SpatialVelocityTracker_get_tracked_linear_velocity>`  **(** **)** const                 |
++--------------------------------+---------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`        | :ref:`is_tracking_physics_step<class_SpatialVelocityTracker_is_tracking_physics_step>`  **(** **)** const                       |
++--------------------------------+---------------------------------------------------------------------------------------------------------------------------------+
+| void                           | :ref:`reset<class_SpatialVelocityTracker_reset>`  **(** :ref:`Vector3<class_vector3>` position  **)**                           |
++--------------------------------+---------------------------------------------------------------------------------------------------------------------------------+
+| void                           | :ref:`set_track_physics_step<class_SpatialVelocityTracker_set_track_physics_step>`  **(** :ref:`bool<class_bool>` enable  **)** |
++--------------------------------+---------------------------------------------------------------------------------------------------------------------------------+
+| void                           | :ref:`update_position<class_SpatialVelocityTracker_update_position>`  **(** :ref:`Vector3<class_vector3>` position  **)**       |
++--------------------------------+---------------------------------------------------------------------------------------------------------------------------------+
 
 Member Function Description
 ---------------------------
@@ -38,17 +38,17 @@ Member Function Description
 
 - :ref:`Vector3<class_vector3>`  **get_tracked_linear_velocity**  **(** **)** const
 
-.. _class_SpatialVelocityTracker_is_tracking_fixed_step:
+.. _class_SpatialVelocityTracker_is_tracking_physics_step:
 
-- :ref:`bool<class_bool>`  **is_tracking_fixed_step**  **(** **)** const
+- :ref:`bool<class_bool>`  **is_tracking_physics_step**  **(** **)** const
 
 .. _class_SpatialVelocityTracker_reset:
 
 - void  **reset**  **(** :ref:`Vector3<class_vector3>` position  **)**
 
-.. _class_SpatialVelocityTracker_set_track_fixed_step:
+.. _class_SpatialVelocityTracker_set_track_physics_step:
 
-- void  **set_track_fixed_step**  **(** :ref:`bool<class_bool>` enable  **)**
+- void  **set_track_physics_step**  **(** :ref:`bool<class_bool>` enable  **)**
 
 .. _class_SpatialVelocityTracker_update_position:
 

+ 7 - 2
classes/class_sphereshape.rst

@@ -14,7 +14,7 @@ SphereShape
 Brief Description
 -----------------
 
-
+Sphere shape for 3D collisions.
 
 Member Functions
 ----------------
@@ -28,7 +28,12 @@ Member Functions
 Member Variables
 ----------------
 
-- :ref:`float<class_float>` **radius**
+- :ref:`float<class_float>` **radius** - The sphere's radius. The shape's diameter is double the radius.
+
+Description
+-----------
+
+Sphere shape for 3D collisions, which can be set into a :ref:`PhysicsBody<class_physicsbody>` or :ref:`Area<class_area>`. This shape is useful for modeling sphere-like 3D objects.
 
 Member Function Description
 ---------------------------

+ 17 - 13
classes/class_sprite.rst

@@ -73,28 +73,32 @@ Signals
 -------
 
 -  **frame_changed**  **(** **)**
+Emitted when the member frame changes.
+
 -  **texture_changed**  **(** **)**
+Emitted when the member texture changes.
+
 
 Member Variables
 ----------------
 
-- :ref:`bool<class_bool>` **centered**
-- :ref:`bool<class_bool>` **flip_h**
-- :ref:`bool<class_bool>` **flip_v**
-- :ref:`int<class_int>` **frame**
-- :ref:`int<class_int>` **hframes**
-- :ref:`Texture<class_texture>` **normal_map**
-- :ref:`Vector2<class_vector2>` **offset**
-- :ref:`bool<class_bool>` **region_enabled**
-- :ref:`bool<class_bool>` **region_filter_clip**
-- :ref:`Rect2<class_rect2>` **region_rect**
-- :ref:`Texture<class_texture>` **texture**
-- :ref:`int<class_int>` **vframes**
+- :ref:`bool<class_bool>` **centered** - If [code]true[/code] texture is centered. Default value: [code]true[/code].
+- :ref:`bool<class_bool>` **flip_h** - If [code]true[/code] texture is flipped horizontally. Default value: [code]false[/code].
+- :ref:`bool<class_bool>` **flip_v** - If [code]true[/code] texture is flipped vertically. Default value: [code]false[/code].
+- :ref:`int<class_int>` **frame** - Current frame to display from sprite sheet. [member vframes] or [member hframes] must be greater than 1.
+- :ref:`int<class_int>` **hframes** - The number of collumns in the sprite sheet.
+- :ref:`Texture<class_texture>` **normal_map** - The normal map gives depth to the Sprite.
+- :ref:`Vector2<class_vector2>` **offset** - The texture's drawing offset.
+- :ref:`bool<class_bool>` **region_enabled** - If [code]true[/code] texture is cut from a larger atlas texture. See [code]region_rect[/code]. Default value: [code]false[/code].
+- :ref:`bool<class_bool>` **region_filter_clip** - If [code]true[/code] the outermost pixels get blurred out.
+- :ref:`Rect2<class_rect2>` **region_rect** - The region of the atlas texture to display. [member region_enabled] must be [code]true[/code].
+- :ref:`Texture<class_texture>` **texture** - [Texture] object to draw.
+- :ref:`int<class_int>` **vframes** - The number of rows in the sprite sheet.
 
 Description
 -----------
 
-General purpose Sprite node. This Sprite node can show any texture as a sprite. The texture can be used as a spritesheet for animation, or only a region from a bigger texture can referenced, like an atlas.
+A node that displays a 2D texture. The texture displayed can be a region from a larger atlas texture, or a frame from a sprite sheet animation.
 
 Member Function Description
 ---------------------------

+ 14 - 7
classes/class_sprite3d.rst

@@ -14,7 +14,7 @@ Sprite3D
 Brief Description
 -----------------
 
-
+2D Sprite node in 3D world.
 
 Member Functions
 ----------------
@@ -49,16 +49,23 @@ Signals
 -------
 
 -  **frame_changed**  **(** **)**
+Emitted when the member frame changes.
+
 
 Member Variables
 ----------------
 
-- :ref:`int<class_int>` **frame**
-- :ref:`int<class_int>` **hframes**
-- :ref:`bool<class_bool>` **region_enabled**
-- :ref:`Rect2<class_rect2>` **region_rect**
-- :ref:`Texture<class_texture>` **texture**
-- :ref:`int<class_int>` **vframes**
+- :ref:`int<class_int>` **frame** - Current frame to display from sprite sheet. [member vframes] or [member hframes] must be greater than 1.
+- :ref:`int<class_int>` **hframes** - The number of columns in the sprite sheet.
+- :ref:`bool<class_bool>` **region_enabled** - If [code]true[/code] texture will be cut from a larger atlas texture. See [member region_rect]. Default value: [code]false[/code].
+- :ref:`Rect2<class_rect2>` **region_rect** - The region of the atlas texture to display. [member region_enabled] must be [code]true[/code].
+- :ref:`Texture<class_texture>` **texture** - [Texture] object to draw.
+- :ref:`int<class_int>` **vframes** - The number of rows in the sprite sheet.
+
+Description
+-----------
+
+A node that displays a 2D texture in a 3D environment. The texture displayed can be a region from a larger atlas texture, or a frame from a sprite sheet animation.
 
 Member Function Description
 ---------------------------

+ 21 - 16
classes/class_spritebase3d.rst

@@ -16,7 +16,7 @@ SpriteBase3D
 Brief Description
 -----------------
 
-
+2D Sprite node in 3D environment.
 
 Member Functions
 ----------------
@@ -69,29 +69,34 @@ Member Variables
 ----------------
 
 - :ref:`int<class_int>` **alpha_cut**
-- :ref:`int<class_int>` **axis**
-- :ref:`bool<class_bool>` **centered**
-- :ref:`bool<class_bool>` **double_sided**
-- :ref:`bool<class_bool>` **flip_h**
-- :ref:`bool<class_bool>` **flip_v**
-- :ref:`Color<class_color>` **modulate**
-- :ref:`Vector2<class_vector2>` **offset**
-- :ref:`float<class_float>` **opacity**
-- :ref:`float<class_float>` **pixel_size**
-- :ref:`bool<class_bool>` **shaded**
-- :ref:`bool<class_bool>` **transparent**
+- :ref:`int<class_int>` **axis** - The direction in which the front of the texture faces.
+- :ref:`bool<class_bool>` **centered** - If [code]true[/code] texture will be centered. Default value: [code]true[/code].
+- :ref:`bool<class_bool>` **double_sided** - If [code]true[/code] texture can be seen from the back as well, if [code]false[/code], it is invisible when looking at it from behind. Default value: [code]true[/code].
+- :ref:`bool<class_bool>` **flip_h** - If [code]true[/code] texture is flipped horizontally. Default value: [code]false[/code].
+- :ref:`bool<class_bool>` **flip_v** - If [code]true[/code] texture is flipped vertically. Default value: [code]false[/code].
+- :ref:`Color<class_color>` **modulate** - A color value that gets multiplied on, could be used for mood-coloring or to simulate the color of light.
+- :ref:`Vector2<class_vector2>` **offset** - The texture's drawing offset.
+- :ref:`float<class_float>` **opacity** - The objects visibility on a scale from [code]0[/code] fully invisible to [code]1[/code] fully visible.
+- :ref:`float<class_float>` **pixel_size** - The size of one pixel's width on the Sprite to scale it in 3D.
+- :ref:`bool<class_bool>` **shaded** - If [code]true[/code] the [Light] in the [Environment] has effects on the Sprite. Default value: [code]false[/code].
+- :ref:`bool<class_bool>` **transparent** - If [code]true[/code] the texture's transparency and the opacity are used to make those parts of the Sprite invisible. Default value: [code]true[/code].
 
 Numeric Constants
 -----------------
 
-- **FLAG_TRANSPARENT** = **0**
-- **FLAG_SHADED** = **1**
-- **FLAG_DOUBLE_SIDED** = **2**
-- **FLAG_MAX** = **3**
+- **FLAG_TRANSPARENT** = **0** --- If set, the texture's transparency and the opacity are used to make those parts of the Sprite invisible.
+- **FLAG_SHADED** = **1** --- If set, the Light in the Environment has effects on the Sprite.
+- **FLAG_DOUBLE_SIDED** = **2** --- If set, texture can be seen from the back as well, if not, it is invisible when looking at it from behind.
+- **FLAG_MAX** = **3** --- Used internally to mark the end of the Flags section.
 - **ALPHA_CUT_DISABLED** = **0**
 - **ALPHA_CUT_DISCARD** = **1**
 - **ALPHA_CUT_OPAQUE_PREPASS** = **2**
 
+Description
+-----------
+
+A node that displays 2D texture information in a 3D environment.
+
 Member Function Description
 ---------------------------
 

+ 32 - 2
classes/class_spriteframes.rst

@@ -54,13 +54,13 @@ Member Functions
 Member Variables
 ----------------
 
-- :ref:`Array<class_array>` **animations**
+- :ref:`Array<class_array>` **animations** - An [Array] containing the [code]name[/code], [code]speed[/code], [code]loop[/code], and [code]frames[/code] of each animation.
 - :ref:`Array<class_array>` **frames**
 
 Description
 -----------
 
-Sprite frame library for :ref:`AnimatedSprite<class_animatedsprite>`.
+Sprite frame library for :ref:`AnimatedSprite<class_animatedsprite>`. Contains frames and animation data for playback.
 
 Member Function Description
 ---------------------------
@@ -69,60 +69,90 @@ Member Function Description
 
 - void  **add_animation**  **(** :ref:`String<class_string>` anim  **)**
 
+Adds a new animation to the the library.
+
 .. _class_SpriteFrames_add_frame:
 
 - void  **add_frame**  **(** :ref:`String<class_string>` anim, :ref:`Texture<class_texture>` frame, :ref:`int<class_int>` at_position=-1  **)**
 
+Adds a frame to the given animation.
+
 .. _class_SpriteFrames_clear:
 
 - void  **clear**  **(** :ref:`String<class_string>` anim  **)**
 
+Removes all frames from the given animation.
+
 .. _class_SpriteFrames_clear_all:
 
 - void  **clear_all**  **(** **)**
 
+Removes all animations. A "default" animation will be created.
+
 .. _class_SpriteFrames_get_animation_loop:
 
 - :ref:`bool<class_bool>`  **get_animation_loop**  **(** :ref:`String<class_string>` anim  **)** const
 
+If ``true`` the given animation will loop.
+
 .. _class_SpriteFrames_get_animation_speed:
 
 - :ref:`float<class_float>`  **get_animation_speed**  **(** :ref:`String<class_string>` anim  **)** const
 
+The animation's speed in frames per second.
+
 .. _class_SpriteFrames_get_frame:
 
 - :ref:`Texture<class_texture>`  **get_frame**  **(** :ref:`String<class_string>` anim, :ref:`int<class_int>` idx  **)** const
 
+Returns the animation's selected frame.
+
 .. _class_SpriteFrames_get_frame_count:
 
 - :ref:`int<class_int>`  **get_frame_count**  **(** :ref:`String<class_string>` anim  **)** const
 
+Returns the number of frames in the animation.
+
 .. _class_SpriteFrames_has_animation:
 
 - :ref:`bool<class_bool>`  **has_animation**  **(** :ref:`String<class_string>` anim  **)** const
 
+If ``true`` the named animation exists.
+
 .. _class_SpriteFrames_remove_animation:
 
 - void  **remove_animation**  **(** :ref:`String<class_string>` anim  **)**
 
+Removes the given animation.
+
 .. _class_SpriteFrames_remove_frame:
 
 - void  **remove_frame**  **(** :ref:`String<class_string>` anim, :ref:`int<class_int>` idx  **)**
 
+Removes the animation's selected frame.
+
 .. _class_SpriteFrames_rename_animation:
 
 - void  **rename_animation**  **(** :ref:`String<class_string>` anim, :ref:`String<class_string>` newname  **)**
 
+Changes the animation's name to ``newname``.
+
 .. _class_SpriteFrames_set_animation_loop:
 
 - void  **set_animation_loop**  **(** :ref:`String<class_string>` anim, :ref:`bool<class_bool>` loop  **)**
 
+If ``true`` the animation will loop.
+
 .. _class_SpriteFrames_set_animation_speed:
 
 - void  **set_animation_speed**  **(** :ref:`String<class_string>` anim, :ref:`float<class_float>` speed  **)**
 
+The animation's speed in frames per second.
+
 .. _class_SpriteFrames_set_frame:
 
 - void  **set_frame**  **(** :ref:`String<class_string>` anim, :ref:`int<class_int>` idx, :ref:`Texture<class_texture>` txt  **)**
 
+Sets the texture of the given frame.
+
 

+ 6 - 8
classes/class_staticbody2d.rst

@@ -40,19 +40,17 @@ Member Functions
 Member Variables
 ----------------
 
-- :ref:`float<class_float>` **bounce**
-- :ref:`float<class_float>` **constant_angular_velocity**
-- :ref:`Vector2<class_vector2>` **constant_linear_velocity**
-- :ref:`float<class_float>` **friction**
+- :ref:`float<class_float>` **bounce** - The body's bounciness. Values range from [code]0[/code] (no bounce) to [code]1[/code] (full bounciness).
+- :ref:`float<class_float>` **constant_angular_velocity** - Constant angular velocity for the body. This does not rotate the body, but affects colliding bodies, as if it were rotating.
+- :ref:`Vector2<class_vector2>` **constant_linear_velocity** - Constant linear velocity for the body. This does not move the body, but affects colliding bodies, as if it were moving.
+- :ref:`float<class_float>` **friction** - The body's friction. Values range from [code]0[/code] (no friction) to [code]1[/code] (full friction).
 
 Description
 -----------
 
-Static body for 2D Physics. A static body is a simple body that is not intended to move. They don't consume any CPU resources in contrast to a :ref:`RigidBody2D<class_rigidbody2d>` so they are great for scenario collision.
+Static body for 2D Physics. A StaticBody2D is a body that is not intended to move. It is ideal for implementing objects in the environment, such as walls or platforms.
 
-A static body can also be animated by using simulated motion mode. This is useful for implementing functionalities such as moving platforms. When this mode is active the body can be animated and automatically computes linear and angular velocity to apply in that frame and to influence other bodies.
-
-Alternatively, a constant linear or angular velocity can be set for the static body, so even if it doesn't move, it affects other bodies as if it was moving (this is useful for simulating conveyor belts or conveyor wheels).
+Additionally, a constant linear or angular velocity can be set for the static body, which will affect colliding bodies as if it were moving (for example, a conveyor belt).
 
 Member Function Description
 ---------------------------

+ 18 - 18
classes/class_texturebutton.rst

@@ -14,7 +14,7 @@ TextureButton
 Brief Description
 -----------------
 
-Button that can be themed with textures.
+Texture-based button. Supports Pressed, Hover, Disabled and Focused states.
 
 Member Functions
 ----------------
@@ -56,32 +56,32 @@ Member Functions
 Member Variables
 ----------------
 
-- :ref:`bool<class_bool>` **expand**
-- :ref:`int<class_int>` **stretch_mode**
-- :ref:`BitMap<class_bitmap>` **texture_click_mask**
-- :ref:`Texture<class_texture>` **texture_disabled**
-- :ref:`Texture<class_texture>` **texture_focused**
-- :ref:`Texture<class_texture>` **texture_hover**
-- :ref:`Texture<class_texture>` **texture_normal**
-- :ref:`Texture<class_texture>` **texture_pressed**
+- :ref:`bool<class_bool>` **expand** - If [code]true[/code] the texture stretches to the edges of the node's bounding rectangle using the [member stretch_mode]. If [code]false[/code] the texture will not scale with the node. Default value: [code]false[/code].
+- :ref:`int<class_int>` **stretch_mode** - Controls the texture's behavior when you resize the node's bounding rectangle, [b]only if[/b] [member expand] is [code]true[/code]. Set it to one of the [code]STRETCH_*[/code] constants. See the constants to learn more.
+- :ref:`BitMap<class_bitmap>` **texture_click_mask** - Pure black and white [Bitmap] image to use for click detection. On the mask, white pixels represent the button's clickable area. Use it to create buttons with curved shapes.
+- :ref:`Texture<class_texture>` **texture_disabled** - Texture to display when the node is disabled. See [member BaseButton.disabled].
+- :ref:`Texture<class_texture>` **texture_focused** - Texture to display when the node has mouse or keyboard focus.
+- :ref:`Texture<class_texture>` **texture_hover** - Texture to display when the mouse hovers the node.
+- :ref:`Texture<class_texture>` **texture_normal** - Texture to display by default, when the node is [b]not[/b] in the disabled, focused, hover or pressed state.
+- :ref:`Texture<class_texture>` **texture_pressed** - Texture to display on mouse down over the node, if the node has keyboard focus and the player presses the enter key or if the player presses the [member BaseButton.shortcut] key.
 
 Numeric Constants
 -----------------
 
-- **STRETCH_SCALE** = **0**
-- **STRETCH_TILE** = **1**
-- **STRETCH_KEEP** = **2**
-- **STRETCH_KEEP_CENTERED** = **3**
-- **STRETCH_KEEP_ASPECT** = **4**
-- **STRETCH_KEEP_ASPECT_CENTERED** = **5**
-- **STRETCH_KEEP_ASPECT_COVERED** = **6**
+- **STRETCH_SCALE** = **0** --- Scale to fit the node's bounding rectangle.
+- **STRETCH_TILE** = **1** --- Tile inside the node's bounding rectangle.
+- **STRETCH_KEEP** = **2** --- The texture keeps its original size and stays in the bounding rectangle's top-left corner.
+- **STRETCH_KEEP_CENTERED** = **3** --- The texture keeps its original size and stays centered in the node's bounding rectangle.
+- **STRETCH_KEEP_ASPECT** = **4** --- Scale the texture to fit the node's bounding rectangle, but maintain the texture's aspect ratio.
+- **STRETCH_KEEP_ASPECT_CENTERED** = **5** --- Scale the texture to fit the node's bounding rectangle, center it, and maintain its aspect ratio.
+- **STRETCH_KEEP_ASPECT_COVERED** = **6** --- Scale the texture so that the shorter side fits the bounding rectangle. The other side clips to the node's limits.
 
 Description
 -----------
 
-Button that can be themed with textures. This is like a regular :ref:`Button<class_button>` but can be themed by assigning textures to it. This button is intended to be easy to theme, however a regular button can expand (that uses styleboxes) and still be better if the interface is expect to have internationalization of texts.
+``TextureButton`` has the same functionality as :ref:`Button<class_button>`, except it uses sprites instead of Godot's :ref:`Theme<class_theme>` resource. It is faster to create, but it doesn't support localization like more complex Controls.
 
-Only the normal texture is required, the others are optional.
+The Normal state's texture is required. Others are optional.
 
 Member Function Description
 ---------------------------

+ 21 - 19
classes/class_textureprogress.rst

@@ -14,7 +14,7 @@ TextureProgress
 Brief Description
 -----------------
 
-Textured progress bar.
+Texture-based progress bar. Useful for loading screens and life or stamina bars.
 
 Member Functions
 ----------------
@@ -61,32 +61,34 @@ Member Variables
 ----------------
 
 - :ref:`int<class_int>` **fill_mode** - The fill direction. Uses FILL_* constants.
-- :ref:`bool<class_bool>` **nine_patch_stretch** - If [code]true[/code] textures will be stretched as [NinePatchRect]. Uses [code]stretch_margin[/code] properties (see below). Default value: [code]false[/code]
-- :ref:`Vector2<class_vector2>` **radial_center_offset** - The offset amount for radial mode.
-- :ref:`float<class_float>` **radial_fill_degrees** - The amount of the texture to use for radial mode.
-- :ref:`float<class_float>` **radial_initial_angle** - Start angle for radial mode.
-- :ref:`int<class_int>` **stretch_margin_bottom** - Nine-patch texture offset for bottom margin.
-- :ref:`int<class_int>` **stretch_margin_left** - Nine-patch texture offset for left margin.
-- :ref:`int<class_int>` **stretch_margin_right** - Nine-patch texture offset for right margin.
-- :ref:`int<class_int>` **stretch_margin_top** - Nine-patch texture offset for top margin.
-- :ref:`Texture<class_texture>` **texture_over** - The [Texture] that will be drawn over the progress bar.
-- :ref:`Texture<class_texture>` **texture_progress** - The [Texture] used to display [code]value[/code].
-- :ref:`Texture<class_texture>` **texture_under** - The [Texture] that will be drawn under the progress bar.
+- :ref:`bool<class_bool>` **nine_patch_stretch** - If [code]true[/code] Godot treats the bar's textures like [NinePatchRect]. Use [code]stretch_margin_*[/code], like [member stretch_margin_bottom], to set up the nine patch's 3x3 grid. Default value: [code]false[/code].
+- :ref:`Vector2<class_vector2>` **radial_center_offset** - Offsets [member texture_progress] if [member fill_mode] is [code]FILL_CLOCKWISE[/code] or [code]FILL_COUNTER_CLOCKWISE[/code].
+- :ref:`float<class_float>` **radial_fill_degrees** - Upper limit for the fill of [member texture_progress] if [member fill_mode] is [code]FILL_CLOCKWISE[/code] or [code]FILL_COUNTER_CLOCKWISE[/code]. When the node's [code]value[/code] is equal to its [code]max_value[/code], the texture fills up to this angle.
+			See [member Range.value], [member Range.max_value].
+- :ref:`float<class_float>` **radial_initial_angle** - Starting angle for the fill of [member texture_progress] if [member fill_mode] is [code]FILL_CLOCKWISE[/code] or [code]FILL_COUNTER_CLOCKWISE[/code]. When the node's [code]value[/code] is equal to its [code]min_value[/code], the texture doesn't show up at all. When the [code]value[/code] increases, the texture fills and tends towards [member radial_fill_degrees].
+- :ref:`int<class_int>` **stretch_margin_bottom** - The height of the 9-patch's bottom row. A margin of 16 means the 9-slice's bottom corners and side will have a height of 16 pixels. You can set all 4 margin values individually to create panels with non-uniform borders.
+- :ref:`int<class_int>` **stretch_margin_left** - The width of the 9-patch's left column.
+- :ref:`int<class_int>` **stretch_margin_right** - The width of the 9-patch's right column.
+- :ref:`int<class_int>` **stretch_margin_top** - The height of the 9-patch's top row.
+- :ref:`Texture<class_texture>` **texture_over** - [Texture] that draws over the progress bar. Use it to add highlights or an upper-frame that hides part of [member texture_progress].
+- :ref:`Texture<class_texture>` **texture_progress** - [Texture] that clips based on the node's [code]value[/code] and [member fill_mode]. As [code]value[/code] increased, the texture fills up. It shows entirely when [code]value[/code] reaches [code]max_value[/code]. It doesn't show at all if [code]value[/code] is equal to [code]min_value[/code].
+			The [code]value[/code] property comes from [Range]. See [member Range.value], [member Range.min_value], [member Range.max_value].
+- :ref:`Texture<class_texture>` **texture_under** - [Texture] that draws under the progress bar. The bar's background.
 
 Numeric Constants
 -----------------
 
-- **FILL_LEFT_TO_RIGHT** = **0**
-- **FILL_RIGHT_TO_LEFT** = **1**
-- **FILL_TOP_TO_BOTTOM** = **2**
-- **FILL_BOTTOM_TO_TOP** = **3**
-- **FILL_CLOCKWISE** = **4**
-- **FILL_COUNTER_CLOCKWISE** = **5**
+- **FILL_LEFT_TO_RIGHT** = **0** --- The member texture_progress fills from left to right.
+- **FILL_RIGHT_TO_LEFT** = **1** --- The member texture_progress fills from right to left.
+- **FILL_TOP_TO_BOTTOM** = **2** --- The member texture_progress fills from top to bototm.
+- **FILL_BOTTOM_TO_TOP** = **3** --- The member texture_progress fills from bottom to top.
+- **FILL_CLOCKWISE** = **4** --- Turns the node into a radial bar. The member texture_progress fills clockwise. See member radial_center_offset, member radial_initial_angle and member radial_fill_degrees to refine its behavior.
+- **FILL_COUNTER_CLOCKWISE** = **5** --- Turns the node into a radial bar. The member texture_progress fills counter-clockwise. See member radial_center_offset, member radial_initial_angle and member radial_fill_degrees to refine its behavior.
 
 Description
 -----------
 
-A :ref:`ProgressBar<class_progressbar>` that uses textures to display fill percentage. Can be set to linear or radial mode.
+TextureProgress works like :ref:`ProgressBar<class_progressbar>` but it uses up to 3 textures instead of Godot's :ref:`Theme<class_theme>` resource. Works horizontally, vertically, and radially.
 
 Member Function Description
 ---------------------------

+ 1 - 1
classes/class_timer.rst

@@ -67,7 +67,7 @@ Member Variables
 Numeric Constants
 -----------------
 
-- **TIMER_PROCESS_FIXED** = **0** --- Update the Timer at fixed intervals (framerate processing).
+- **TIMER_PROCESS_PHYSICS** = **0** --- Update the Timer during the physics step at each frame (fixed framerate processing).
 - **TIMER_PROCESS_IDLE** = **1** --- Update the Timer during the idle time at each frame.
 
 Description

Beberapa file tidak ditampilkan karena terlalu banyak file yang berubah dalam diff ini