Просмотр исходного кода

classref: Sync with current master branch (42c7f14)

Godot Organization 1 месяц назад
Родитель
Сommit
f9f2c80955
100 измененных файлов с 625 добавлено и 247 удалено
  1. 23 22
      classes/[email protected]
  2. 29 32
      classes/[email protected]
  3. 15 14
      classes/class_aabb.rst
  4. 1 0
      classes/class_acceptdialog.rst
  5. 7 6
      classes/class_aescontext.rst
  6. 197 0
      classes/class_aimmodifier3d.rst
  7. 1 0
      classes/class_animatablebody2d.rst
  8. 1 0
      classes/class_animatablebody3d.rst
  9. 1 0
      classes/class_animatedsprite2d.rst
  10. 1 0
      classes/class_animatedsprite3d.rst
  11. 1 0
      classes/class_animatedtexture.rst
  12. 2 1
      classes/class_animation.rst
  13. 1 0
      classes/class_animationlibrary.rst
  14. 8 7
      classes/class_animationmixer.rst
  15. 4 3
      classes/class_animationnode.rst
  16. 1 0
      classes/class_animationnodeadd2.rst
  17. 1 0
      classes/class_animationnodeadd3.rst
  18. 1 0
      classes/class_animationnodeanimation.rst
  19. 1 0
      classes/class_animationnodeblend2.rst
  20. 1 0
      classes/class_animationnodeblend3.rst
  21. 2 1
      classes/class_animationnodeblendspace1d.rst
  22. 2 1
      classes/class_animationnodeblendspace2d.rst
  23. 1 0
      classes/class_animationnodeblendtree.rst
  24. 9 8
      classes/class_animationnodeextension.rst
  25. 9 8
      classes/class_animationnodeoneshot.rst
  26. 1 0
      classes/class_animationnodeoutput.rst
  27. 1 0
      classes/class_animationnodestatemachine.rst
  28. 32 0
      classes/class_animationnodestatemachineplayback.rst
  29. 1 0
      classes/class_animationnodestatemachinetransition.rst
  30. 1 0
      classes/class_animationnodesub2.rst
  31. 1 0
      classes/class_animationnodesync.rst
  32. 1 0
      classes/class_animationnodetimescale.rst
  33. 3 2
      classes/class_animationnodetimeseek.rst
  34. 5 4
      classes/class_animationnodetransition.rst
  35. 1 0
      classes/class_animationplayer.rst
  36. 1 0
      classes/class_animationrootnode.rst
  37. 1 0
      classes/class_animationtree.rst
  38. 6 5
      classes/class_area2d.rst
  39. 6 5
      classes/class_area3d.rst
  40. 36 33
      classes/class_array.rst
  41. 6 5
      classes/class_arraymesh.rst
  42. 1 0
      classes/class_arrayoccluder3d.rst
  43. 1 0
      classes/class_aspectratiocontainer.rst
  44. 15 7
      classes/class_astar2d.rst
  45. 11 10
      classes/class_astar3d.rst
  46. 8 0
      classes/class_astargrid2d.rst
  47. 1 0
      classes/class_atlastexture.rst
  48. 1 0
      classes/class_audiobuslayout.rst
  49. 8 7
      classes/class_audioeffect.rst
  50. 1 0
      classes/class_audioeffectamplify.rst
  51. 1 0
      classes/class_audioeffectbandlimitfilter.rst
  52. 1 0
      classes/class_audioeffectbandpassfilter.rst
  53. 1 0
      classes/class_audioeffectcapture.rst
  54. 1 0
      classes/class_audioeffectchorus.rst
  55. 2 1
      classes/class_audioeffectcompressor.rst
  56. 1 0
      classes/class_audioeffectdelay.rst
  57. 1 0
      classes/class_audioeffectdistortion.rst
  58. 1 0
      classes/class_audioeffecteq.rst
  59. 1 0
      classes/class_audioeffecteq10.rst
  60. 1 0
      classes/class_audioeffecteq21.rst
  61. 1 0
      classes/class_audioeffecteq6.rst
  62. 1 0
      classes/class_audioeffectfilter.rst
  63. 1 0
      classes/class_audioeffecthardlimiter.rst
  64. 1 0
      classes/class_audioeffecthighpassfilter.rst
  65. 1 0
      classes/class_audioeffecthighshelffilter.rst
  66. 7 6
      classes/class_audioeffectinstance.rst
  67. 1 0
      classes/class_audioeffectlimiter.rst
  68. 1 0
      classes/class_audioeffectlowpassfilter.rst
  69. 1 0
      classes/class_audioeffectlowshelffilter.rst
  70. 1 0
      classes/class_audioeffectnotchfilter.rst
  71. 1 0
      classes/class_audioeffectpanner.rst
  72. 1 0
      classes/class_audioeffectphaser.rst
  73. 1 0
      classes/class_audioeffectpitchshift.rst
  74. 2 1
      classes/class_audioeffectrecord.rst
  75. 1 0
      classes/class_audioeffectreverb.rst
  76. 1 0
      classes/class_audioeffectspectrumanalyzer.rst
  77. 2 1
      classes/class_audioeffectspectrumanalyzerinstance.rst
  78. 1 0
      classes/class_audioeffectstereoenhance.rst
  79. 1 0
      classes/class_audiolistener2d.rst
  80. 1 0
      classes/class_audiolistener3d.rst
  81. 1 0
      classes/class_audiosample.rst
  82. 1 0
      classes/class_audiosampleplayback.rst
  83. 1 0
      classes/class_audioserver.rst
  84. 17 0
      classes/class_audiostream.rst
  85. 8 7
      classes/class_audiostreamgenerator.rst
  86. 1 0
      classes/class_audiostreamgeneratorplayback.rst
  87. 1 0
      classes/class_audiostreaminteractive.rst
  88. 1 0
      classes/class_audiostreammicrophone.rst
  89. 1 0
      classes/class_audiostreammp3.rst
  90. 24 0
      classes/class_audiostreamoggvorbis.rst
  91. 41 40
      classes/class_audiostreamplayback.rst
  92. 1 0
      classes/class_audiostreamplaybackinteractive.rst
  93. 1 0
      classes/class_audiostreamplaybackoggvorbis.rst
  94. 1 0
      classes/class_audiostreamplaybackplaylist.rst
  95. 1 0
      classes/class_audiostreamplaybackpolyphonic.rst
  96. 10 9
      classes/class_audiostreamplaybackresampled.rst
  97. 1 0
      classes/class_audiostreamplaybacksynchronized.rst
  98. 2 1
      classes/class_audiostreamplayer.rst
  99. 1 0
      classes/class_audiostreamplayer2d.rst
  100. 1 0
      classes/class_audiostreamplayer3d.rst

+ 23 - 22
classes/[email protected]

@@ -133,27 +133,27 @@ Mark the following property as exported (editable in the Inspector dock and save
 ::
 ::
 
 
     extends Node
     extends Node
-    
+
     enum Direction {LEFT, RIGHT, UP, DOWN}
     enum Direction {LEFT, RIGHT, UP, DOWN}
-    
+
     # Built-in types.
     # Built-in types.
     @export var string = ""
     @export var string = ""
     @export var int_number = 5
     @export var int_number = 5
     @export var float_number: float = 5
     @export var float_number: float = 5
-    
+
     # Enums.
     # Enums.
     @export var type: Variant.Type
     @export var type: Variant.Type
     @export var format: Image.Format
     @export var format: Image.Format
     @export var direction: Direction
     @export var direction: Direction
-    
+
     # Resources.
     # Resources.
     @export var image: Image
     @export var image: Image
     @export var custom_resource: CustomResource
     @export var custom_resource: CustomResource
-    
+
     # Nodes.
     # Nodes.
     @export var node: Node
     @export var node: Node
     @export var custom_node: CustomNode
     @export var custom_node: CustomNode
-    
+
     # Typed arrays.
     # Typed arrays.
     @export var int_array: Array[int]
     @export var int_array: Array[int]
     @export var direction_array: Array[Direction]
     @export var direction_array: Array[Direction]
@@ -261,7 +261,7 @@ See also :ref:`@GlobalScope.PROPERTY_HINT_ENUM<class_@GlobalScope_constant_PROPE
     @export_enum("Warrior", "Magician", "Thief") var character_class: int
     @export_enum("Warrior", "Magician", "Thief") var character_class: int
     @export_enum("Slow:30", "Average:60", "Very Fast:200") var character_speed: int
     @export_enum("Slow:30", "Average:60", "Very Fast:200") var character_speed: int
     @export_enum("Rebecca", "Mary", "Leah") var character_name: String
     @export_enum("Rebecca", "Mary", "Leah") var character_name: String
-    
+
     @export_enum("Sword", "Spear", "Mace") var character_items: Array[int]
     @export_enum("Sword", "Spear", "Mace") var character_items: Array[int]
     @export_enum("double_jump", "climb", "dash") var character_skills: Array[String]
     @export_enum("double_jump", "climb", "dash") var character_skills: Array[String]
 
 
@@ -277,7 +277,7 @@ If you want to use named GDScript enums, then use :ref:`@export<class_@GDScript_
 
 
     enum CharacterName {REBECCA, MARY, LEAH}
     enum CharacterName {REBECCA, MARY, LEAH}
     @export var character_name: CharacterName
     @export var character_name: CharacterName
-    
+
     enum CharacterItem {SWORD, SPEAR, MACE}
     enum CharacterItem {SWORD, SPEAR, MACE}
     @export var character_items: Array[CharacterItem]
     @export var character_items: Array[CharacterItem]
 
 
@@ -566,11 +566,11 @@ See also :ref:`@GlobalScope.PROPERTY_USAGE_GROUP<class_@GlobalScope_constant_PRO
     @export_group("Racer Properties")
     @export_group("Racer Properties")
     @export var nickname = "Nick"
     @export var nickname = "Nick"
     @export var age = 26
     @export var age = 26
-    
+
     @export_group("Car Properties", "car_")
     @export_group("Car Properties", "car_")
     @export var car_label = "Speedy"
     @export var car_label = "Speedy"
     @export var car_number = 3
     @export var car_number = 3
-    
+
     @export_group("", "")
     @export_group("", "")
     @export var ungrouped_number = 3
     @export var ungrouped_number = 3
 
 
@@ -657,10 +657,10 @@ See also :ref:`@GlobalScope.PROPERTY_HINT_RANGE<class_@GlobalScope_constant_PROP
     @export_range(-10, 20) var number
     @export_range(-10, 20) var number
     @export_range(-10, 20, 0.2) var number: float
     @export_range(-10, 20, 0.2) var number: float
     @export_range(0, 20) var numbers: Array[float]
     @export_range(0, 20) var numbers: Array[float]
-    
+
     @export_range(0, 100, 1, "or_greater") var power_percent
     @export_range(0, 100, 1, "or_greater") var power_percent
     @export_range(0, 100, 1, "or_greater", "or_less") var health_delta
     @export_range(0, 100, 1, "or_greater", "or_less") var health_delta
-    
+
     @export_range(-180, 180, 0.001, "radians_as_degrees") var angle_radians
     @export_range(-180, 180, 0.001, "radians_as_degrees") var angle_radians
     @export_range(0, 360, 1, "degrees") var angle_degrees
     @export_range(0, 360, 1, "degrees") var angle_degrees
     @export_range(-8, 8, 2, "suffix:px") var target_offset
     @export_range(-8, 8, 2, "suffix:px") var target_offset
@@ -702,7 +702,7 @@ See also :ref:`@GlobalScope.PROPERTY_USAGE_SUBGROUP<class_@GlobalScope_constant_
     @export_group("Racer Properties")
     @export_group("Racer Properties")
     @export var nickname = "Nick"
     @export var nickname = "Nick"
     @export var age = 26
     @export var age = 26
-    
+
     @export_subgroup("Car Properties", "car_")
     @export_subgroup("Car Properties", "car_")
     @export var car_label = "Speedy"
     @export var car_label = "Speedy"
     @export var car_number = 3
     @export var car_number = 3
@@ -744,14 +744,14 @@ See also :ref:`@GlobalScope.PROPERTY_HINT_TOOL_BUTTON<class_@GlobalScope_constan
 
 
     @tool
     @tool
     extends Sprite2D
     extends Sprite2D
-    
+
     @export_tool_button("Hello") var hello_action = hello
     @export_tool_button("Hello") var hello_action = hello
     @export_tool_button("Randomize the color!", "ColorRect")
     @export_tool_button("Randomize the color!", "ColorRect")
     var randomize_color_action = randomize_color
     var randomize_color_action = randomize_color
-    
+
     func hello():
     func hello():
         print("Hello world!")
         print("Hello world!")
-    
+
     func randomize_color():
     func randomize_color():
         var undo_redo = EditorInterface.get_editor_undo_redo()
         var undo_redo = EditorInterface.get_editor_undo_redo()
         undo_redo.create_action("Randomized Sprite2D Color")
         undo_redo.create_action("Randomized Sprite2D Color")
@@ -833,10 +833,10 @@ The order of ``mode``, ``sync`` and ``transfer_mode`` does not matter, but value
 
 
     @rpc
     @rpc
     func fn(): pass
     func fn(): pass
-    
+
     @rpc("any_peer", "unreliable_ordered")
     @rpc("any_peer", "unreliable_ordered")
     func fn_update_pos(): pass
     func fn_update_pos(): pass
-    
+
     @rpc("authority", "call_remote", "unreliable", 0) # Equivalent to @rpc
     @rpc("authority", "call_remote", "unreliable", 0) # Equivalent to @rpc
     func fn_default(): pass
     func fn_default(): pass
 
 
@@ -1027,7 +1027,7 @@ Converts ``what`` to ``type`` in the best way possible. The ``type`` uses the :r
 
 
     var a = [4, 2.5, 1.2]
     var a = [4, 2.5, 1.2]
     print(a is Array) # Prints true
     print(a is Array) # Prints true
-    
+
     var b = convert(a, TYPE_PACKED_BYTE_ARRAY)
     var b = convert(a, TYPE_PACKED_BYTE_ARRAY)
     print(b)          # Prints [4, 2, 1]
     print(b)          # Prints [4, 2, 1]
     print(b is Array) # Prints false
     print(b is Array) # Prints false
@@ -1062,10 +1062,10 @@ Returns an array of dictionaries representing the current call stack. See also :
 
 
     func _ready():
     func _ready():
         foo()
         foo()
-    
+
     func foo():
     func foo():
         bar()
         bar()
-    
+
     func bar():
     func bar():
         print(get_stack())
         print(get_stack())
 
 
@@ -1161,7 +1161,7 @@ Returns the length of the given Variant ``var``. The length can be the character
 
 
     var a = [1, 2, 3, 4]
     var a = [1, 2, 3, 4]
     len(a) # Returns 4
     len(a) # Returns 4
-    
+
     var b = "Hello!"
     var b = "Hello!"
     len(b) # Returns 6
     len(b) # Returns 6
 
 
@@ -1336,6 +1336,7 @@ Returns ``true`` if the given :ref:`Object<class_Object>`-derived class exists i
     type_exists("NonExistentClass") # Returns false
     type_exists("NonExistentClass") # Returns false
 
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
+.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`

+ 29 - 32
classes/[email protected]

@@ -3052,7 +3052,7 @@ Since :ref:`OK<class_@GlobalScope_constant_OK>` has value ``0``, and all other e
     var error = method_that_returns_error()
     var error = method_that_returns_error()
     if error != OK:
     if error != OK:
         printerr("Failure!")
         printerr("Failure!")
-    
+
     # Or, alternatively:
     # Or, alternatively:
     if error:
     if error:
         printerr("Still failing!")
         printerr("Still failing!")
@@ -3715,7 +3715,7 @@ If a property is :ref:`Dictionary<class_Dictionary>`, hints the editor how to sh
     hint_string = "%d/%d:Zero,One,Three:3,Six:6" % [TYPE_INT, PROPERTY_HINT_ENUM] # Array of integers (an enum).
     hint_string = "%d/%d:Zero,One,Three:3,Six:6" % [TYPE_INT, PROPERTY_HINT_ENUM] # Array of integers (an enum).
     hint_string = "%d/%d:*.png" % [TYPE_STRING, PROPERTY_HINT_FILE] # Array of strings (file paths).
     hint_string = "%d/%d:*.png" % [TYPE_STRING, PROPERTY_HINT_FILE] # Array of strings (file paths).
     hint_string = "%d/%d:Texture2D" % [TYPE_OBJECT, PROPERTY_HINT_RESOURCE_TYPE] # Array of textures.
     hint_string = "%d/%d:Texture2D" % [TYPE_OBJECT, PROPERTY_HINT_RESOURCE_TYPE] # Array of textures.
-    
+
     hint_string = "%d:%d:" % [TYPE_ARRAY, TYPE_FLOAT] # Two-dimensional array of floats.
     hint_string = "%d:%d:" % [TYPE_ARRAY, TYPE_FLOAT] # Two-dimensional array of floats.
     hint_string = "%d:%d/%d:" % [TYPE_ARRAY, TYPE_STRING, PROPERTY_HINT_MULTILINE_TEXT] # Two-dimensional array of multiline strings.
     hint_string = "%d:%d/%d:" % [TYPE_ARRAY, TYPE_STRING, PROPERTY_HINT_MULTILINE_TEXT] # Two-dimensional array of multiline strings.
     hint_string = "%d:%d/%d:-1,1,0.1" % [TYPE_ARRAY, TYPE_FLOAT, PROPERTY_HINT_RANGE] # Two-dimensional array of floats (in range from -1 to 1).
     hint_string = "%d:%d/%d:-1,1,0.1" % [TYPE_ARRAY, TYPE_FLOAT, PROPERTY_HINT_RANGE] # Two-dimensional array of floats (in range from -1 to 1).
@@ -3728,7 +3728,7 @@ If a property is :ref:`Dictionary<class_Dictionary>`, hints the editor how to sh
     hintString = $"{Variant.Type.Int:D}/{PropertyHint.Enum:D}:Zero,One,Three:3,Six:6"; // Array of integers (an enum).
     hintString = $"{Variant.Type.Int:D}/{PropertyHint.Enum:D}:Zero,One,Three:3,Six:6"; // Array of integers (an enum).
     hintString = $"{Variant.Type.String:D}/{PropertyHint.File:D}:*.png"; // Array of strings (file paths).
     hintString = $"{Variant.Type.String:D}/{PropertyHint.File:D}:*.png"; // Array of strings (file paths).
     hintString = $"{Variant.Type.Object:D}/{PropertyHint.ResourceType:D}:Texture2D"; // Array of textures.
     hintString = $"{Variant.Type.Object:D}/{PropertyHint.ResourceType:D}:Texture2D"; // Array of textures.
-    
+
     hintString = $"{Variant.Type.Array:D}:{Variant.Type.Float:D}:"; // Two-dimensional array of floats.
     hintString = $"{Variant.Type.Array:D}:{Variant.Type.Float:D}:"; // Two-dimensional array of floats.
     hintString = $"{Variant.Type.Array:D}:{Variant.Type.String:D}/{PropertyHint.MultilineText:D}:"; // Two-dimensional array of multiline strings.
     hintString = $"{Variant.Type.Array:D}:{Variant.Type.String:D}/{PropertyHint.MultilineText:D}:"; // Two-dimensional array of multiline strings.
     hintString = $"{Variant.Type.Array:D}:{Variant.Type.Float:D}/{PropertyHint.Range:D}:-1,1,0.1"; // Two-dimensional array of floats (in range from -1 to 1).
     hintString = $"{Variant.Type.Array:D}:{Variant.Type.Float:D}/{PropertyHint.Range:D}:-1,1,0.1"; // Two-dimensional array of floats (in range from -1 to 1).
@@ -5289,19 +5289,19 @@ Returns the absolute value of a :ref:`Variant<class_Variant>` parameter ``x`` (i
 
 
     var a = abs(-1)
     var a = abs(-1)
     # a is 1
     # a is 1
-    
+
     var b = abs(-1.2)
     var b = abs(-1.2)
     # b is 1.2
     # b is 1.2
-    
+
     var c = abs(Vector2(-3.5, -4))
     var c = abs(Vector2(-3.5, -4))
     # c is (3.5, 4)
     # c is (3.5, 4)
-    
+
     var d = abs(Vector2i(-5, -6))
     var d = abs(Vector2i(-5, -6))
     # d is (5, 6)
     # d is (5, 6)
-    
+
     var e = abs(Vector3(-7, 8.5, -3.8))
     var e = abs(Vector3(-7, 8.5, -3.8))
     # e is (7, 8.5, 3.8)
     # e is (7, 8.5, 3.8)
-    
+
     var f = abs(Vector3i(-7, -8, -9))
     var f = abs(Vector3i(-7, -8, -9))
     # f is (7, 8, 9)
     # f is (7, 8, 9)
 
 
@@ -5374,7 +5374,7 @@ Returns the hyperbolic arc (also called inverse) cosine of ``x``, returning a va
 
 
     var a = acosh(2) # Returns 1.31695789692482
     var a = acosh(2) # Returns 1.31695789692482
     cosh(a) # Returns 2
     cosh(a) # Returns 2
-    
+
     var b = acosh(-1) # Returns 0
     var b = acosh(-1) # Returns 0
 
 
 .. rst-class:: classref-item-separator
 .. rst-class:: classref-item-separator
@@ -5479,7 +5479,7 @@ In mathematics, the inverse hyperbolic tangent is only defined for -1 < ``x`` <
 
 
     var a = atanh(0.9) # Returns 1.47221948958322
     var a = atanh(0.9) # Returns 1.47221948958322
     tanh(a) # Returns 0.9
     tanh(a) # Returns 0.9
-    
+
     var b = atanh(-2) # Returns -inf
     var b = atanh(-2) # Returns -inf
     tanh(b) # Returns -1
     tanh(b) # Returns -1
 
 
@@ -5600,7 +5600,7 @@ Clamps the ``value``, returning a :ref:`Variant<class_Variant>` not less than ``
 
 
     var a = clamp(-10, -1, 5)
     var a = clamp(-10, -1, 5)
     # a is -1
     # a is -1
-    
+
     var b = clamp(8.1, 0.9, 5.5)
     var b = clamp(8.1, 0.9, 5.5)
     # b is 5.5
     # b is 5.5
 
 
@@ -5624,7 +5624,7 @@ Clamps the ``value``, returning a :ref:`float<class_float>` not less than ``min`
 
 
     var speed = 42.1
     var speed = 42.1
     var a = clampf(speed, 1.0, 20.5) # a is 20.5
     var a = clampf(speed, 1.0, 20.5) # a is 20.5
-    
+
     speed = -10.0
     speed = -10.0
     var b = clampf(speed, -1.0, 1.0) # b is -1.0
     var b = clampf(speed, -1.0, 1.0) # b is -1.0
 
 
@@ -5644,7 +5644,7 @@ Clamps the ``value``, returning an :ref:`int<class_int>` not less than ``min`` a
 
 
     var speed = 42
     var speed = 42
     var a = clampi(speed, 1, 20) # a is 20
     var a = clampi(speed, 1, 20) # a is 20
-    
+
     speed = -10
     speed = -10
     var b = clampi(speed, -1, 1) # b is -1
     var b = clampi(speed, -1, 1) # b is -1
 
 
@@ -5971,7 +5971,7 @@ Returns the :ref:`Object<class_Object>` that corresponds to ``instance_id``. All
  .. code-tab:: gdscript
  .. code-tab:: gdscript
 
 
     var drink = "water"
     var drink = "water"
-    
+
     func _ready():
     func _ready():
         var id = get_instance_id()
         var id = get_instance_id()
         var instance = instance_from_id(id)
         var instance = instance_from_id(id)
@@ -5982,7 +5982,7 @@ Returns the :ref:`Object<class_Object>` that corresponds to ``instance_id``. All
     public partial class MyNode : Node
     public partial class MyNode : Node
     {
     {
         public string Drink { get; set; } = "water";
         public string Drink { get; set; } = "water";
-    
+
         public override void _Ready()
         public override void _Ready()
         {
         {
             ulong id = GetInstanceId();
             ulong id = GetInstanceId();
@@ -6010,7 +6010,7 @@ Returns an interpolation or extrapolation factor considering the range specified
     # The interpolation ratio in the `lerp()` call below is 0.75.
     # The interpolation ratio in the `lerp()` call below is 0.75.
     var middle = lerp(20, 30, 0.75)
     var middle = lerp(20, 30, 0.75)
     # middle is now 27.5.
     # middle is now 27.5.
-    
+
     # Now, we pretend to have forgotten the original ratio and want to get it back.
     # Now, we pretend to have forgotten the original ratio and want to get it back.
     var ratio = inverse_lerp(20, 30, 27.5)
     var ratio = inverse_lerp(20, 30, 27.5)
     # ratio is now 0.75.
     # ratio is now 0.75.
@@ -6114,7 +6114,7 @@ Returns ``true``, for value types, if ``a`` and ``b`` share the same value. Retu
     is_same(vec2_a, vec2_a)  # true
     is_same(vec2_a, vec2_a)  # true
     is_same(vec2_a, vec2_b)  # true
     is_same(vec2_a, vec2_b)  # true
     is_same(vec2_a, vec2_c)  # false
     is_same(vec2_a, vec2_c)  # false
-    
+
     # Array is a reference type
     # Array is a reference type
     var arr_a = []
     var arr_a = []
     var arr_b = []
     var arr_b = []
@@ -6385,7 +6385,7 @@ Returns the smallest integer power of 2 that is greater than or equal to ``value
     nearest_po2(3) # Returns 4
     nearest_po2(3) # Returns 4
     nearest_po2(4) # Returns 4
     nearest_po2(4) # Returns 4
     nearest_po2(5) # Returns 8
     nearest_po2(5) # Returns 8
-    
+
     nearest_po2(0)  # Returns 0 (this may not be expected)
     nearest_po2(0)  # Returns 0 (this may not be expected)
     nearest_po2(-1) # Returns 0 (this may not be expected)
     nearest_po2(-1) # Returns 0 (this may not be expected)
 
 
@@ -6528,8 +6528,6 @@ When printing to standard output, the supported subset of BBCode is converted to
 
 
 \ **Note:** Consider using :ref:`push_error()<class_@GlobalScope_method_push_error>` and :ref:`push_warning()<class_@GlobalScope_method_push_warning>` to print error and warning messages instead of :ref:`print()<class_@GlobalScope_method_print>` or :ref:`print_rich()<class_@GlobalScope_method_print_rich>`. This distinguishes them from print messages used for debugging purposes, while also displaying a stack trace when an error or warning is printed.
 \ **Note:** Consider using :ref:`push_error()<class_@GlobalScope_method_push_error>` and :ref:`push_warning()<class_@GlobalScope_method_push_warning>` to print error and warning messages instead of :ref:`print()<class_@GlobalScope_method_print>` or :ref:`print_rich()<class_@GlobalScope_method_print_rich>`. This distinguishes them from print messages used for debugging purposes, while also displaying a stack trace when an error or warning is printed.
 
 
-\ **Note:** On Windows, only Windows 10 and later correctly displays ANSI escape codes in standard output.
-
 \ **Note:** Output displayed in the editor supports clickable ``[url=address]text[/url]`` tags. The ``[url]`` tag's ``address`` value is handled by :ref:`OS.shell_open()<class_OS_method_shell_open>` when clicked.
 \ **Note:** Output displayed in the editor supports clickable ``[url=address]text[/url]`` tags. The ``[url]`` tag's ``address`` value is handled by :ref:`OS.shell_open()<class_OS_method_shell_open>` when clicked.
 
 
 .. rst-class:: classref-item-separator
 .. rst-class:: classref-item-separator
@@ -6739,7 +6737,7 @@ Given a ``seed``, returns a :ref:`PackedInt64Array<class_PackedInt64Array>` of s
 ::
 ::
 
 
     var a = rand_from_seed(4)
     var a = rand_from_seed(4)
-    
+
     print(a[0]) # Prints 2879024997
     print(a[0]) # Prints 2879024997
     print(a[1]) # Prints 4
     print(a[1]) # Prints 4
 
 
@@ -7046,7 +7044,7 @@ Supported types: :ref:`int<class_int>`, :ref:`float<class_float>`, :ref:`Vector2
     sign(0.0)  # Returns 0
     sign(0.0)  # Returns 0
     sign(6.0)  # Returns 1
     sign(6.0)  # Returns 1
     sign(NAN)  # Returns 0
     sign(NAN)  # Returns 0
-    
+
     sign(Vector3(-6.0, 0.0, 6.0)) # Returns (-1, 0, 1)
     sign(Vector3(-6.0, 0.0, 6.0)) # Returns (-1, 0, 1)
 
 
 \ **Note:** For better type safety, use :ref:`signf()<class_@GlobalScope_method_signf>`, :ref:`signi()<class_@GlobalScope_method_signi>`, :ref:`Vector2.sign()<class_Vector2_method_sign>`, :ref:`Vector2i.sign()<class_Vector2i_method_sign>`, :ref:`Vector3.sign()<class_Vector3_method_sign>`, :ref:`Vector3i.sign()<class_Vector3i_method_sign>`, :ref:`Vector4.sign()<class_Vector4_method_sign>`, or :ref:`Vector4i.sign()<class_Vector4i_method_sign>`.
 \ **Note:** For better type safety, use :ref:`signf()<class_@GlobalScope_method_signf>`, :ref:`signi()<class_@GlobalScope_method_signi>`, :ref:`Vector2.sign()<class_Vector2_method_sign>`, :ref:`Vector2i.sign()<class_Vector2i_method_sign>`, :ref:`Vector3.sign()<class_Vector3_method_sign>`, :ref:`Vector3i.sign()<class_Vector3i_method_sign>`, :ref:`Vector4.sign()<class_Vector4_method_sign>`, or :ref:`Vector4i.sign()<class_Vector4i_method_sign>`.
@@ -7171,7 +7169,7 @@ The returned value is the same type of :ref:`Variant<class_Variant>` as ``step``
 
 
     snapped(100, 32)  # Returns 96
     snapped(100, 32)  # Returns 96
     snapped(3.14159, 0.01)  # Returns 3.14
     snapped(3.14159, 0.01)  # Returns 3.14
-    
+
     snapped(Vector2(34, 70), Vector2(8, 8))  # Returns (32, 72)
     snapped(Vector2(34, 70), Vector2(8, 8))  # Returns (32, 72)
 
 
 See also :ref:`ceil()<class_@GlobalScope_method_ceil>`, :ref:`floor()<class_@GlobalScope_method_floor>`, and :ref:`round()<class_@GlobalScope_method_round>`.
 See also :ref:`ceil()<class_@GlobalScope_method_ceil>`, :ref:`floor()<class_@GlobalScope_method_floor>`, and :ref:`round()<class_@GlobalScope_method_round>`.
@@ -7495,18 +7493,18 @@ A weak reference to an object is not enough to keep the object alive: when the o
 
 
 :ref:`Variant<class_Variant>` **wrap**\ (\ value\: :ref:`Variant<class_Variant>`, min\: :ref:`Variant<class_Variant>`, max\: :ref:`Variant<class_Variant>`\ ) :ref:`🔗<class_@GlobalScope_method_wrap>`
 :ref:`Variant<class_Variant>` **wrap**\ (\ value\: :ref:`Variant<class_Variant>`, min\: :ref:`Variant<class_Variant>`, max\: :ref:`Variant<class_Variant>`\ ) :ref:`🔗<class_@GlobalScope_method_wrap>`
 
 
-Wraps the :ref:`Variant<class_Variant>` ``value`` between ``min`` and ``max``. Can be used for creating loop-alike behavior or infinite surfaces.
+Wraps the :ref:`Variant<class_Variant>` ``value`` between ``min`` and ``max``. ``min`` is *inclusive* while ``max`` is *exclusive*. This can be used for creating loop-like behavior or infinite surfaces.
 
 
-Variant types :ref:`int<class_int>` and :ref:`float<class_float>` are supported. If any of the arguments is :ref:`float<class_float>` this function returns a :ref:`float<class_float>`, otherwise it returns an :ref:`int<class_int>`.
+Variant types :ref:`int<class_int>` and :ref:`float<class_float>` are supported. If any of the arguments is :ref:`float<class_float>`, this function returns a :ref:`float<class_float>`, otherwise it returns an :ref:`int<class_int>`.
 
 
 ::
 ::
 
 
     var a = wrap(4, 5, 10)
     var a = wrap(4, 5, 10)
     # a is 9 (int)
     # a is 9 (int)
-    
+
     var a = wrap(7, 5, 10)
     var a = wrap(7, 5, 10)
     # a is 7 (int)
     # a is 7 (int)
-    
+
     var a = wrap(10.5, 5, 10)
     var a = wrap(10.5, 5, 10)
     # a is 5.5 (float)
     # a is 5.5 (float)
 
 
@@ -7520,7 +7518,7 @@ Variant types :ref:`int<class_int>` and :ref:`float<class_float>` are supported.
 
 
 :ref:`float<class_float>` **wrapf**\ (\ value\: :ref:`float<class_float>`, min\: :ref:`float<class_float>`, max\: :ref:`float<class_float>`\ ) :ref:`🔗<class_@GlobalScope_method_wrapf>`
 :ref:`float<class_float>` **wrapf**\ (\ value\: :ref:`float<class_float>`, min\: :ref:`float<class_float>`, max\: :ref:`float<class_float>`\ ) :ref:`🔗<class_@GlobalScope_method_wrapf>`
 
 
-Wraps the float ``value`` between ``min`` and ``max``. Can be used for creating loop-alike behavior or infinite surfaces.
+Wraps the float ``value`` between ``min`` and ``max``. ``min`` is *inclusive* while ``max`` is *exclusive*. This can be used for creating loop-like behavior or infinite surfaces.
 
 
 ::
 ::
 
 
@@ -7537,9 +7535,7 @@ Wraps the float ``value`` between ``min`` and ``max``. Can be used for creating
     # Infinite rotation (in radians)
     # Infinite rotation (in radians)
     angle = wrapf(angle + 0.1, -PI, PI)
     angle = wrapf(angle + 0.1, -PI, PI)
 
 
-\ **Note:** If ``min`` is ``0``, this is equivalent to :ref:`fposmod()<class_@GlobalScope_method_fposmod>`, so prefer using that instead.
-
-\ :ref:`wrapf()<class_@GlobalScope_method_wrapf>` is more flexible than using the :ref:`fposmod()<class_@GlobalScope_method_fposmod>` approach by giving the user control over the minimum value.
+\ **Note:** If ``min`` is ``0``, this is equivalent to :ref:`fposmod()<class_@GlobalScope_method_fposmod>`, so prefer using that instead. :ref:`wrapf()<class_@GlobalScope_method_wrapf>` is more flexible than using the :ref:`fposmod()<class_@GlobalScope_method_fposmod>` approach by giving the user control over the minimum value.
 
 
 .. rst-class:: classref-item-separator
 .. rst-class:: classref-item-separator
 
 
@@ -7551,7 +7547,7 @@ Wraps the float ``value`` between ``min`` and ``max``. Can be used for creating
 
 
 :ref:`int<class_int>` **wrapi**\ (\ value\: :ref:`int<class_int>`, min\: :ref:`int<class_int>`, max\: :ref:`int<class_int>`\ ) :ref:`🔗<class_@GlobalScope_method_wrapi>`
 :ref:`int<class_int>` **wrapi**\ (\ value\: :ref:`int<class_int>`, min\: :ref:`int<class_int>`, max\: :ref:`int<class_int>`\ ) :ref:`🔗<class_@GlobalScope_method_wrapi>`
 
 
-Wraps the integer ``value`` between ``min`` and ``max``. Can be used for creating loop-alike behavior or infinite surfaces.
+Wraps the integer ``value`` between ``min`` and ``max``. ``min`` is *inclusive* while ``max`` is *exclusive*. This can be used for creating loop-like behavior or infinite surfaces.
 
 
 ::
 ::
 
 
@@ -7564,6 +7560,7 @@ Wraps the integer ``value`` between ``min`` and ``max``. Can be used for creatin
     var result = wrapi(-6, -5, -1)
     var result = wrapi(-6, -5, -1)
 
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
+.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`

+ 15 - 14
classes/class_aabb.rst

@@ -286,7 +286,7 @@ Returns ``true`` if this bounding box *completely* encloses the ``with`` box. Th
     var a = AABB(Vector3(0, 0, 0), Vector3(4, 4, 4))
     var a = AABB(Vector3(0, 0, 0), Vector3(4, 4, 4))
     var b = AABB(Vector3(1, 1, 1), Vector3(3, 3, 3))
     var b = AABB(Vector3(1, 1, 1), Vector3(3, 3, 3))
     var c = AABB(Vector3(2, 2, 2), Vector3(8, 8, 8))
     var c = AABB(Vector3(2, 2, 2), Vector3(8, 8, 8))
-    
+
     print(a.encloses(a)) # Prints true
     print(a.encloses(a)) # Prints true
     print(a.encloses(b)) # Prints true
     print(a.encloses(b)) # Prints true
     print(a.encloses(c)) # Prints false
     print(a.encloses(c)) # Prints false
@@ -296,7 +296,7 @@ Returns ``true`` if this bounding box *completely* encloses the ``with`` box. Th
     var a = new Aabb(new Vector3(0, 0, 0), new Vector3(4, 4, 4));
     var a = new Aabb(new Vector3(0, 0, 0), new Vector3(4, 4, 4));
     var b = new Aabb(new Vector3(1, 1, 1), new Vector3(3, 3, 3));
     var b = new Aabb(new Vector3(1, 1, 1), new Vector3(3, 3, 3));
     var c = new Aabb(new Vector3(2, 2, 2), new Vector3(8, 8, 8));
     var c = new Aabb(new Vector3(2, 2, 2), new Vector3(8, 8, 8));
-    
+
     GD.Print(a.Encloses(a)); // Prints True
     GD.Print(a.Encloses(a)); // Prints True
     GD.Print(a.Encloses(b)); // Prints True
     GD.Print(a.Encloses(b)); // Prints True
     GD.Print(a.Encloses(c)); // Prints False
     GD.Print(a.Encloses(c)); // Prints False
@@ -321,11 +321,11 @@ Returns a copy of this bounding box expanded to align the edges with the given `
  .. code-tab:: gdscript
  .. code-tab:: gdscript
 
 
     var box = AABB(Vector3(0, 0, 0), Vector3(5, 2, 5))
     var box = AABB(Vector3(0, 0, 0), Vector3(5, 2, 5))
-    
+
     box = box.expand(Vector3(10, 0, 0))
     box = box.expand(Vector3(10, 0, 0))
     print(box.position) # Prints (0.0, 0.0, 0.0)
     print(box.position) # Prints (0.0, 0.0, 0.0)
     print(box.size)     # Prints (10.0, 2.0, 5.0)
     print(box.size)     # Prints (10.0, 2.0, 5.0)
-    
+
     box = box.expand(Vector3(-5, 0, 5))
     box = box.expand(Vector3(-5, 0, 5))
     print(box.position) # Prints (-5.0, 0.0, 0.0)
     print(box.position) # Prints (-5.0, 0.0, 0.0)
     print(box.size)     # Prints (15.0, 2.0, 5.0)
     print(box.size)     # Prints (15.0, 2.0, 5.0)
@@ -333,11 +333,11 @@ Returns a copy of this bounding box expanded to align the edges with the given `
  .. code-tab:: csharp
  .. code-tab:: csharp
 
 
     var box = new Aabb(new Vector3(0, 0, 0), new Vector3(5, 2, 5));
     var box = new Aabb(new Vector3(0, 0, 0), new Vector3(5, 2, 5));
-    
+
     box = box.Expand(new Vector3(10, 0, 0));
     box = box.Expand(new Vector3(10, 0, 0));
     GD.Print(box.Position); // Prints (0, 0, 0)
     GD.Print(box.Position); // Prints (0, 0, 0)
     GD.Print(box.Size);     // Prints (10, 2, 5)
     GD.Print(box.Size);     // Prints (10, 2, 5)
-    
+
     box = box.Expand(new Vector3(-5, 0, 5));
     box = box.Expand(new Vector3(-5, 0, 5));
     GD.Print(box.Position); // Prints (-5, 0, 0)
     GD.Print(box.Position); // Prints (-5, 0, 0)
     GD.Print(box.Size);     // Prints (15, 2, 5)
     GD.Print(box.Size);     // Prints (15, 2, 5)
@@ -386,7 +386,7 @@ Returns the longest normalized axis of this bounding box's :ref:`size<class_AABB
  .. code-tab:: gdscript
  .. code-tab:: gdscript
 
 
     var box = AABB(Vector3(0, 0, 0), Vector3(2, 4, 8))
     var box = AABB(Vector3(0, 0, 0), Vector3(2, 4, 8))
-    
+
     print(box.get_longest_axis())       # Prints (0.0, 0.0, 1.0)
     print(box.get_longest_axis())       # Prints (0.0, 0.0, 1.0)
     print(box.get_longest_axis_index()) # Prints 2
     print(box.get_longest_axis_index()) # Prints 2
     print(box.get_longest_axis_size())  # Prints 8.0
     print(box.get_longest_axis_size())  # Prints 8.0
@@ -394,7 +394,7 @@ Returns the longest normalized axis of this bounding box's :ref:`size<class_AABB
  .. code-tab:: csharp
  .. code-tab:: csharp
 
 
     var box = new Aabb(new Vector3(0, 0, 0), new Vector3(2, 4, 8));
     var box = new Aabb(new Vector3(0, 0, 0), new Vector3(2, 4, 8));
-    
+
     GD.Print(box.GetLongestAxis());      // Prints (0, 0, 1)
     GD.Print(box.GetLongestAxis());      // Prints (0, 0, 1)
     GD.Print(box.GetLongestAxisIndex()); // Prints Z
     GD.Print(box.GetLongestAxisIndex()); // Prints Z
     GD.Print(box.GetLongestAxisSize());  // Prints 8
     GD.Print(box.GetLongestAxisSize());  // Prints 8
@@ -449,7 +449,7 @@ Returns the shortest normalized axis of this bounding box's :ref:`size<class_AAB
  .. code-tab:: gdscript
  .. code-tab:: gdscript
 
 
     var box = AABB(Vector3(0, 0, 0), Vector3(2, 4, 8))
     var box = AABB(Vector3(0, 0, 0), Vector3(2, 4, 8))
-    
+
     print(box.get_shortest_axis())       # Prints (1.0, 0.0, 0.0)
     print(box.get_shortest_axis())       # Prints (1.0, 0.0, 0.0)
     print(box.get_shortest_axis_index()) # Prints 0
     print(box.get_shortest_axis_index()) # Prints 0
     print(box.get_shortest_axis_size())  # Prints 2.0
     print(box.get_shortest_axis_size())  # Prints 2.0
@@ -457,7 +457,7 @@ Returns the shortest normalized axis of this bounding box's :ref:`size<class_AAB
  .. code-tab:: csharp
  .. code-tab:: csharp
 
 
     var box = new Aabb(new Vector3(0, 0, 0), new Vector3(2, 4, 8));
     var box = new Aabb(new Vector3(0, 0, 0), new Vector3(2, 4, 8));
-    
+
     GD.Print(box.GetShortestAxis());      // Prints (1, 0, 0)
     GD.Print(box.GetShortestAxis());      // Prints (1, 0, 0)
     GD.Print(box.GetShortestAxisIndex()); // Prints X
     GD.Print(box.GetShortestAxisIndex()); // Prints X
     GD.Print(box.GetShortestAxisSize());  // Prints 2
     GD.Print(box.GetShortestAxisSize());  // Prints 2
@@ -538,7 +538,7 @@ Returns a copy of this bounding box extended on all sides by the given amount ``
     var a = AABB(Vector3(4, 4, 4), Vector3(8, 8, 8)).grow(4)
     var a = AABB(Vector3(4, 4, 4), Vector3(8, 8, 8)).grow(4)
     print(a.position) # Prints (0.0, 0.0, 0.0)
     print(a.position) # Prints (0.0, 0.0, 0.0)
     print(a.size)     # Prints (16.0, 16.0, 16.0)
     print(a.size)     # Prints (16.0, 16.0, 16.0)
-    
+
     var b = AABB(Vector3(0, 0, 0), Vector3(8, 4, 2)).grow(2)
     var b = AABB(Vector3(0, 0, 0), Vector3(8, 4, 2)).grow(2)
     print(b.position) # Prints (-2.0, -2.0, -2.0)
     print(b.position) # Prints (-2.0, -2.0, -2.0)
     print(b.size)     # Prints (12.0, 8.0, 6.0)
     print(b.size)     # Prints (12.0, 8.0, 6.0)
@@ -548,7 +548,7 @@ Returns a copy of this bounding box extended on all sides by the given amount ``
     var a = new Aabb(new Vector3(4, 4, 4), new Vector3(8, 8, 8)).Grow(4);
     var a = new Aabb(new Vector3(4, 4, 4), new Vector3(8, 8, 8)).Grow(4);
     GD.Print(a.Position); // Prints (0, 0, 0)
     GD.Print(a.Position); // Prints (0, 0, 0)
     GD.Print(a.Size);     // Prints (16, 16, 16)
     GD.Print(a.Size);     // Prints (16, 16, 16)
-    
+
     var b = new Aabb(new Vector3(0, 0, 0), new Vector3(8, 4, 2)).Grow(2);
     var b = new Aabb(new Vector3(0, 0, 0), new Vector3(8, 4, 2)).Grow(2);
     GD.Print(b.Position); // Prints (-2, -2, -2)
     GD.Print(b.Position); // Prints (-2, -2, -2)
     GD.Print(b.Size);     // Prints (12, 8, 6)
     GD.Print(b.Size);     // Prints (12, 8, 6)
@@ -612,7 +612,7 @@ Returns the intersection between this bounding box and ``with``. If the boxes do
 
 
     var box1 = AABB(Vector3(0, 0, 0), Vector3(5, 2, 8))
     var box1 = AABB(Vector3(0, 0, 0), Vector3(5, 2, 8))
     var box2 = AABB(Vector3(2, 0, 2), Vector3(8, 4, 4))
     var box2 = AABB(Vector3(2, 0, 2), Vector3(8, 4, 4))
-    
+
     var intersection = box1.intersection(box2)
     var intersection = box1.intersection(box2)
     print(intersection.position) # Prints (2.0, 0.0, 2.0)
     print(intersection.position) # Prints (2.0, 0.0, 2.0)
     print(intersection.size)     # Prints (3.0, 2.0, 4.0)
     print(intersection.size)     # Prints (3.0, 2.0, 4.0)
@@ -621,7 +621,7 @@ Returns the intersection between this bounding box and ``with``. If the boxes do
 
 
     var box1 = new Aabb(new Vector3(0, 0, 0), new Vector3(5, 2, 8));
     var box1 = new Aabb(new Vector3(0, 0, 0), new Vector3(5, 2, 8));
     var box2 = new Aabb(new Vector3(2, 0, 2), new Vector3(8, 4, 4));
     var box2 = new Aabb(new Vector3(2, 0, 2), new Vector3(8, 4, 4));
-    
+
     var intersection = box1.Intersection(box2);
     var intersection = box1.Intersection(box2);
     GD.Print(intersection.Position); // Prints (2, 0, 2)
     GD.Print(intersection.Position); // Prints (2, 0, 2)
     GD.Print(intersection.Size);     // Prints (3, 2, 4)
     GD.Print(intersection.Size);     // Prints (3, 2, 4)
@@ -768,6 +768,7 @@ Returns ``true`` if both :ref:`position<class_AABB_property_position>` and :ref:
 \ **Note:** Due to floating-point precision errors, consider using :ref:`is_equal_approx()<class_AABB_method_is_equal_approx>` instead, which is more reliable.
 \ **Note:** Due to floating-point precision errors, consider using :ref:`is_equal_approx()<class_AABB_method_is_equal_approx>` instead, which is more reliable.
 
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
+.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`

+ 1 - 0
classes/class_acceptdialog.rst

@@ -373,6 +373,7 @@ The size of the vertical space between the dialog's content and the button row.
 The panel that fills the background of the window.
 The panel that fills the background of the window.
 
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
+.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`

+ 7 - 6
classes/class_aescontext.rst

@@ -27,9 +27,9 @@ This class holds the context information required for encryption and decryption
  .. code-tab:: gdscript
  .. code-tab:: gdscript
 
 
     extends Node
     extends Node
-    
+
     var aes = AESContext.new()
     var aes = AESContext.new()
-    
+
     func _ready():
     func _ready():
         var key = "My secret key!!!" # Key must be either 16 or 32 bytes.
         var key = "My secret key!!!" # Key must be either 16 or 32 bytes.
         var data = "My secret text!!" # Data size must be multiple of 16 bytes, apply padding if needed.
         var data = "My secret text!!" # Data size must be multiple of 16 bytes, apply padding if needed.
@@ -43,7 +43,7 @@ This class holds the context information required for encryption and decryption
         aes.finish()
         aes.finish()
         # Check ECB
         # Check ECB
         assert(decrypted == data.to_utf8_buffer())
         assert(decrypted == data.to_utf8_buffer())
-    
+
         var iv = "My secret iv!!!!" # IV must be of exactly 16 bytes.
         var iv = "My secret iv!!!!" # IV must be of exactly 16 bytes.
         # Encrypt CBC
         # Encrypt CBC
         aes.start(AESContext.MODE_CBC_ENCRYPT, key.to_utf8_buffer(), iv.to_utf8_buffer())
         aes.start(AESContext.MODE_CBC_ENCRYPT, key.to_utf8_buffer(), iv.to_utf8_buffer())
@@ -60,11 +60,11 @@ This class holds the context information required for encryption and decryption
 
 
     using Godot;
     using Godot;
     using System.Diagnostics;
     using System.Diagnostics;
-    
+
     public partial class MyNode : Node
     public partial class MyNode : Node
     {
     {
         private AesContext _aes = new AesContext();
         private AesContext _aes = new AesContext();
-    
+
         public override void _Ready()
         public override void _Ready()
         {
         {
             string key = "My secret key!!!"; // Key must be either 16 or 32 bytes.
             string key = "My secret key!!!"; // Key must be either 16 or 32 bytes.
@@ -79,7 +79,7 @@ This class holds the context information required for encryption and decryption
             _aes.Finish();
             _aes.Finish();
             // Check ECB
             // Check ECB
             Debug.Assert(decrypted == data.ToUtf8Buffer());
             Debug.Assert(decrypted == data.ToUtf8Buffer());
-    
+
             string iv = "My secret iv!!!!"; // IV must be of exactly 16 bytes.
             string iv = "My secret iv!!!!"; // IV must be of exactly 16 bytes.
             // Encrypt CBC
             // Encrypt CBC
             _aes.Start(AesContext.Mode.EcbEncrypt, key.ToUtf8Buffer(), iv.ToUtf8Buffer());
             _aes.Start(AesContext.Mode.EcbEncrypt, key.ToUtf8Buffer(), iv.ToUtf8Buffer());
@@ -227,6 +227,7 @@ Run the desired operation for this AES context. Will return a :ref:`PackedByteAr
 \ **Note:** The size of ``src`` must be a multiple of 16. Apply some padding if needed.
 \ **Note:** The size of ``src`` must be a multiple of 16. Apply some padding if needed.
 
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
+.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`

+ 197 - 0
classes/class_aimmodifier3d.rst

@@ -0,0 +1,197 @@
+:github_url: hide
+
+.. DO NOT EDIT THIS FILE!!!
+.. Generated automatically from Godot engine sources.
+.. Generator: https://github.com/godotengine/godot/tree/master/doc/tools/make_rst.py.
+.. XML source: https://github.com/godotengine/godot/tree/master/doc/classes/AimModifier3D.xml.
+
+.. _class_AimModifier3D:
+
+AimModifier3D
+=============
+
+**Inherits:** :ref:`BoneConstraint3D<class_BoneConstraint3D>` **<** :ref:`SkeletonModifier3D<class_SkeletonModifier3D>` **<** :ref:`Node3D<class_Node3D>` **<** :ref:`Node<class_Node>` **<** :ref:`Object<class_Object>`
+
+The **AimModifier3D** rotates a bone to look at a reference bone.
+
+.. rst-class:: classref-introduction-group
+
+Description
+-----------
+
+This is a simple version of :ref:`LookAtModifier3D<class_LookAtModifier3D>` that only allows bone to the reference without advanced options such as angle limitation or time-based interpolation.
+
+The feature is simplified, but instead it is implemented with smooth tracking without euler, see :ref:`set_use_euler()<class_AimModifier3D_method_set_use_euler>`.
+
+.. rst-class:: classref-reftable-group
+
+Properties
+----------
+
+.. table::
+   :widths: auto
+
+   +-----------------------+------------------------------------------------------------------+-------+
+   | :ref:`int<class_int>` | :ref:`setting_count<class_AimModifier3D_property_setting_count>` | ``0`` |
+   +-----------------------+------------------------------------------------------------------+-------+
+
+.. rst-class:: classref-reftable-group
+
+Methods
+-------
+
+.. table::
+   :widths: auto
+
+   +---------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`BoneAxis<enum_SkeletonModifier3D_BoneAxis>` | :ref:`get_forward_axis<class_AimModifier3D_method_get_forward_axis>`\ (\ index\: :ref:`int<class_int>`\ ) |const|                                                   |
+   +---------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Axis<enum_Vector3_Axis>`                    | :ref:`get_primary_rotation_axis<class_AimModifier3D_method_get_primary_rotation_axis>`\ (\ index\: :ref:`int<class_int>`\ ) |const|                                 |
+   +---------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`                           | :ref:`is_using_euler<class_AimModifier3D_method_is_using_euler>`\ (\ index\: :ref:`int<class_int>`\ ) |const|                                                       |
+   +---------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`                           | :ref:`is_using_secondary_rotation<class_AimModifier3D_method_is_using_secondary_rotation>`\ (\ index\: :ref:`int<class_int>`\ ) |const|                             |
+   +---------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | |void|                                            | :ref:`set_forward_axis<class_AimModifier3D_method_set_forward_axis>`\ (\ index\: :ref:`int<class_int>`, axis\: :ref:`BoneAxis<enum_SkeletonModifier3D_BoneAxis>`\ ) |
+   +---------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | |void|                                            | :ref:`set_primary_rotation_axis<class_AimModifier3D_method_set_primary_rotation_axis>`\ (\ index\: :ref:`int<class_int>`, axis\: :ref:`Axis<enum_Vector3_Axis>`\ )  |
+   +---------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | |void|                                            | :ref:`set_use_euler<class_AimModifier3D_method_set_use_euler>`\ (\ index\: :ref:`int<class_int>`, enabled\: :ref:`bool<class_bool>`\ )                              |
+   +---------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | |void|                                            | :ref:`set_use_secondary_rotation<class_AimModifier3D_method_set_use_secondary_rotation>`\ (\ index\: :ref:`int<class_int>`, enabled\: :ref:`bool<class_bool>`\ )    |
+   +---------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
+
+Property Descriptions
+---------------------
+
+.. _class_AimModifier3D_property_setting_count:
+
+.. rst-class:: classref-property
+
+:ref:`int<class_int>` **setting_count** = ``0`` :ref:`🔗<class_AimModifier3D_property_setting_count>`
+
+.. rst-class:: classref-property-setget
+
+- |void| **set_setting_count**\ (\ value\: :ref:`int<class_int>`\ )
+- :ref:`int<class_int>` **get_setting_count**\ (\ )
+
+The number of settings in the modifier.
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
+
+Method Descriptions
+-------------------
+
+.. _class_AimModifier3D_method_get_forward_axis:
+
+.. rst-class:: classref-method
+
+:ref:`BoneAxis<enum_SkeletonModifier3D_BoneAxis>` **get_forward_axis**\ (\ index\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_AimModifier3D_method_get_forward_axis>`
+
+Returns the forward axis of the bone.
+
+.. rst-class:: classref-item-separator
+
+----
+
+.. _class_AimModifier3D_method_get_primary_rotation_axis:
+
+.. rst-class:: classref-method
+
+:ref:`Axis<enum_Vector3_Axis>` **get_primary_rotation_axis**\ (\ index\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_AimModifier3D_method_get_primary_rotation_axis>`
+
+Returns the axis of the first rotation. It is enabled only if :ref:`is_using_euler()<class_AimModifier3D_method_is_using_euler>` is ``true``.
+
+.. rst-class:: classref-item-separator
+
+----
+
+.. _class_AimModifier3D_method_is_using_euler:
+
+.. rst-class:: classref-method
+
+:ref:`bool<class_bool>` **is_using_euler**\ (\ index\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_AimModifier3D_method_is_using_euler>`
+
+Returns ``true`` if it provides rotation with using euler.
+
+.. rst-class:: classref-item-separator
+
+----
+
+.. _class_AimModifier3D_method_is_using_secondary_rotation:
+
+.. rst-class:: classref-method
+
+:ref:`bool<class_bool>` **is_using_secondary_rotation**\ (\ index\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_AimModifier3D_method_is_using_secondary_rotation>`
+
+Returns ``true`` if it provides rotation by two axes. It is enabled only if :ref:`is_using_euler()<class_AimModifier3D_method_is_using_euler>` is ``true``.
+
+.. rst-class:: classref-item-separator
+
+----
+
+.. _class_AimModifier3D_method_set_forward_axis:
+
+.. rst-class:: classref-method
+
+|void| **set_forward_axis**\ (\ index\: :ref:`int<class_int>`, axis\: :ref:`BoneAxis<enum_SkeletonModifier3D_BoneAxis>`\ ) :ref:`🔗<class_AimModifier3D_method_set_forward_axis>`
+
+Sets the forward axis of the bone.
+
+.. rst-class:: classref-item-separator
+
+----
+
+.. _class_AimModifier3D_method_set_primary_rotation_axis:
+
+.. rst-class:: classref-method
+
+|void| **set_primary_rotation_axis**\ (\ index\: :ref:`int<class_int>`, axis\: :ref:`Axis<enum_Vector3_Axis>`\ ) :ref:`🔗<class_AimModifier3D_method_set_primary_rotation_axis>`
+
+Sets the axis of the first rotation. It is enabled only if :ref:`is_using_euler()<class_AimModifier3D_method_is_using_euler>` is ``true``.
+
+.. rst-class:: classref-item-separator
+
+----
+
+.. _class_AimModifier3D_method_set_use_euler:
+
+.. rst-class:: classref-method
+
+|void| **set_use_euler**\ (\ index\: :ref:`int<class_int>`, enabled\: :ref:`bool<class_bool>`\ ) :ref:`🔗<class_AimModifier3D_method_set_use_euler>`
+
+If sets ``enabled`` to ``true``, it provides rotation with using euler.
+
+If sets ``enabled`` to ``false``, it provides rotation with using rotation by arc generated from the forward axis vector and the vector toward the reference.
+
+.. rst-class:: classref-item-separator
+
+----
+
+.. _class_AimModifier3D_method_set_use_secondary_rotation:
+
+.. rst-class:: classref-method
+
+|void| **set_use_secondary_rotation**\ (\ index\: :ref:`int<class_int>`, enabled\: :ref:`bool<class_bool>`\ ) :ref:`🔗<class_AimModifier3D_method_set_use_secondary_rotation>`
+
+If sets ``enabled`` to ``true``, it provides rotation by two axes. It is enabled only if :ref:`is_using_euler()<class_AimModifier3D_method_is_using_euler>` is ``true``.
+
+.. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
+.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
+.. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
+.. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
+.. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
+.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`
+.. |operator| replace:: :abbr:`operator (This method describes a valid operator to use with this type as left-hand operand.)`
+.. |bitfield| replace:: :abbr:`BitField (This value is an integer composed as a bitmask of the following flags.)`
+.. |void| replace:: :abbr:`void (No return value.)`

+ 1 - 0
classes/class_animatablebody2d.rst

@@ -58,6 +58,7 @@ Property Descriptions
 If ``true``, the body's movement will be synchronized to the physics frame. This is useful when animating movement via :ref:`AnimationPlayer<class_AnimationPlayer>`, for example on moving platforms. Do **not** use together with :ref:`PhysicsBody2D.move_and_collide()<class_PhysicsBody2D_method_move_and_collide>`.
 If ``true``, the body's movement will be synchronized to the physics frame. This is useful when animating movement via :ref:`AnimationPlayer<class_AnimationPlayer>`, for example on moving platforms. Do **not** use together with :ref:`PhysicsBody2D.move_and_collide()<class_PhysicsBody2D_method_move_and_collide>`.
 
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
+.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`

+ 1 - 0
classes/class_animatablebody3d.rst

@@ -69,6 +69,7 @@ Property Descriptions
 If ``true``, the body's movement will be synchronized to the physics frame. This is useful when animating movement via :ref:`AnimationPlayer<class_AnimationPlayer>`, for example on moving platforms. Do **not** use together with :ref:`PhysicsBody3D.move_and_collide()<class_PhysicsBody3D_method_move_and_collide>`.
 If ``true``, the body's movement will be synchronized to the physics frame. This is useful when animating movement via :ref:`AnimationPlayer<class_AnimationPlayer>`, for example on moving platforms. Do **not** use together with :ref:`PhysicsBody3D.move_and_collide()<class_PhysicsBody3D_method_move_and_collide>`.
 
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
+.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`

+ 1 - 0
classes/class_animatedsprite2d.rst

@@ -442,6 +442,7 @@ Sets :ref:`frame<class_AnimatedSprite2D_property_frame>` and :ref:`frame_progres
 Stops the currently playing animation. The animation position is reset to ``0`` and the ``custom_speed`` is reset to ``1.0``. See also :ref:`pause()<class_AnimatedSprite2D_method_pause>`.
 Stops the currently playing animation. The animation position is reset to ``0`` and the ``custom_speed`` is reset to ``1.0``. See also :ref:`pause()<class_AnimatedSprite2D_method_pause>`.
 
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
+.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`

+ 1 - 0
classes/class_animatedsprite3d.rst

@@ -362,6 +362,7 @@ Sets :ref:`frame<class_AnimatedSprite3D_property_frame>` and :ref:`frame_progres
 Stops the currently playing animation. The animation position is reset to ``0`` and the ``custom_speed`` is reset to ``1.0``. See also :ref:`pause()<class_AnimatedSprite3D_method_pause>`.
 Stops the currently playing animation. The animation position is reset to ``0`` and the ``custom_speed`` is reset to ``1.0``. See also :ref:`pause()<class_AnimatedSprite3D_method_pause>`.
 
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
+.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`

+ 1 - 0
classes/class_animatedtexture.rst

@@ -234,6 +234,7 @@ Assigns a :ref:`Texture2D<class_Texture2D>` to the given frame. Frame IDs start
 You can define any number of textures up to :ref:`MAX_FRAMES<class_AnimatedTexture_constant_MAX_FRAMES>`, but keep in mind that only frames from 0 to :ref:`frames<class_AnimatedTexture_property_frames>` - 1 will be part of the animation.
 You can define any number of textures up to :ref:`MAX_FRAMES<class_AnimatedTexture_constant_MAX_FRAMES>`, but keep in mind that only frames from 0 to :ref:`frames<class_AnimatedTexture_property_frames>` - 1 will be part of the animation.
 
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
+.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`

+ 2 - 1
classes/class_animation.rst

@@ -1553,9 +1553,10 @@ A ``backward`` mainly affects the direction of key retrieval of the track with :
 
 
 |void| **value_track_set_update_mode**\ (\ track_idx\: :ref:`int<class_int>`, mode\: :ref:`UpdateMode<enum_Animation_UpdateMode>`\ ) :ref:`🔗<class_Animation_method_value_track_set_update_mode>`
 |void| **value_track_set_update_mode**\ (\ track_idx\: :ref:`int<class_int>`, mode\: :ref:`UpdateMode<enum_Animation_UpdateMode>`\ ) :ref:`🔗<class_Animation_method_value_track_set_update_mode>`
 
 
-Sets the update mode (see :ref:`UpdateMode<enum_Animation_UpdateMode>`) of a value track.
+Sets the update mode of a value track.
 
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
+.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`

+ 1 - 0
classes/class_animationlibrary.rst

@@ -197,6 +197,7 @@ Removes the :ref:`Animation<class_Animation>` with the key ``name``.
 Changes the key of the :ref:`Animation<class_Animation>` associated with the key ``name`` to ``newname``.
 Changes the key of the :ref:`Animation<class_Animation>` associated with the key ``name`` to ``newname``.
 
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
+.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`

+ 8 - 7
classes/class_animationmixer.rst

@@ -55,7 +55,7 @@ Properties
    +-----------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+--------------------+
    +-----------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+--------------------+
    | :ref:`bool<class_bool>`                                                                 | :ref:`reset_on_save<class_AnimationMixer_property_reset_on_save>`                   | ``true``           |
    | :ref:`bool<class_bool>`                                                                 | :ref:`reset_on_save<class_AnimationMixer_property_reset_on_save>`                   | ``true``           |
    +-----------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+--------------------+
    +-----------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+--------------------+
-   | :ref:`bool<class_bool>`                                                                 | :ref:`root_motion_local<class_AnimationMixer_property_root_motion_local>`           |                    |
+   | :ref:`bool<class_bool>`                                                                 | :ref:`root_motion_local<class_AnimationMixer_property_root_motion_local>`           | ``false``          |
    +-----------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+--------------------+
    +-----------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+--------------------+
    | :ref:`NodePath<class_NodePath>`                                                         | :ref:`root_motion_track<class_AnimationMixer_property_root_motion_track>`           | ``NodePath("")``   |
    | :ref:`NodePath<class_NodePath>`                                                         | :ref:`root_motion_track<class_AnimationMixer_property_root_motion_track>`           | ``NodePath("")``   |
    +-----------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+--------------------+
    +-----------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+--------------------+
@@ -480,7 +480,7 @@ This makes it more convenient to preview and edit animations in the editor, as c
 
 
 .. rst-class:: classref-property
 .. rst-class:: classref-property
 
 
-:ref:`bool<class_bool>` **root_motion_local** :ref:`🔗<class_AnimationMixer_property_root_motion_local>`
+:ref:`bool<class_bool>` **root_motion_local** = ``false`` :ref:`🔗<class_AnimationMixer_property_root_motion_local>`
 
 
 .. rst-class:: classref-property-setget
 .. rst-class:: classref-property-setget
 
 
@@ -704,7 +704,7 @@ The most basic example is applying position to :ref:`CharacterBody3D<class_Chara
  .. code-tab:: gdscript
  .. code-tab:: gdscript
 
 
     var current_rotation
     var current_rotation
-    
+
     func _process(delta):
     func _process(delta):
         if Input.is_action_just_pressed("animate"):
         if Input.is_action_just_pressed("animate"):
             current_rotation = get_quaternion()
             current_rotation = get_quaternion()
@@ -773,7 +773,7 @@ For example, if an animation with only one key ``Vector3(0, 0, 0)`` is played in
  .. code-tab:: gdscript
  .. code-tab:: gdscript
 
 
     var prev_root_motion_position_accumulator
     var prev_root_motion_position_accumulator
-    
+
     func _process(delta):
     func _process(delta):
         if Input.is_action_just_pressed("animate"):
         if Input.is_action_just_pressed("animate"):
             state_machine.travel("Animate")
             state_machine.travel("Animate")
@@ -840,7 +840,7 @@ For example, if an animation with only one key ``Quaternion(0, 0, 0, 1)`` is pla
  .. code-tab:: gdscript
  .. code-tab:: gdscript
 
 
     var prev_root_motion_rotation_accumulator
     var prev_root_motion_rotation_accumulator
-    
+
     func _process(delta):
     func _process(delta):
         if Input.is_action_just_pressed("animate"):
         if Input.is_action_just_pressed("animate"):
             state_machine.travel("Animate")
             state_machine.travel("Animate")
@@ -878,7 +878,7 @@ The most basic example is applying scale to :ref:`CharacterBody3D<class_Characte
 
 
     var current_scale = Vector3(1, 1, 1)
     var current_scale = Vector3(1, 1, 1)
     var scale_accum = Vector3(1, 1, 1)
     var scale_accum = Vector3(1, 1, 1)
-    
+
     func _process(delta):
     func _process(delta):
         if Input.is_action_just_pressed("animate"):
         if Input.is_action_just_pressed("animate"):
             current_scale = get_scale()
             current_scale = get_scale()
@@ -909,7 +909,7 @@ For example, if an animation with only one key ``Vector3(1, 1, 1)`` is played in
  .. code-tab:: gdscript
  .. code-tab:: gdscript
 
 
     var prev_root_motion_scale_accumulator
     var prev_root_motion_scale_accumulator
-    
+
     func _process(delta):
     func _process(delta):
         if Input.is_action_just_pressed("animate"):
         if Input.is_action_just_pressed("animate"):
             state_machine.travel("Animate")
             state_machine.travel("Animate")
@@ -971,6 +971,7 @@ Removes the :ref:`AnimationLibrary<class_AnimationLibrary>` associated with the
 Moves the :ref:`AnimationLibrary<class_AnimationLibrary>` associated with the key ``name`` to the key ``newname``.
 Moves the :ref:`AnimationLibrary<class_AnimationLibrary>` associated with the key ``name`` to the key ``newname``.
 
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
+.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`

+ 4 - 3
classes/class_animationnode.rst

@@ -349,9 +349,9 @@ Adds an input to the animation node. This is only useful for animation nodes cre
 
 
 |void| **blend_animation**\ (\ animation\: :ref:`StringName<class_StringName>`, time\: :ref:`float<class_float>`, delta\: :ref:`float<class_float>`, seeked\: :ref:`bool<class_bool>`, is_external_seeking\: :ref:`bool<class_bool>`, blend\: :ref:`float<class_float>`, looped_flag\: :ref:`LoopedFlag<enum_Animation_LoopedFlag>` = 0\ ) :ref:`🔗<class_AnimationNode_method_blend_animation>`
 |void| **blend_animation**\ (\ animation\: :ref:`StringName<class_StringName>`, time\: :ref:`float<class_float>`, delta\: :ref:`float<class_float>`, seeked\: :ref:`bool<class_bool>`, is_external_seeking\: :ref:`bool<class_bool>`, blend\: :ref:`float<class_float>`, looped_flag\: :ref:`LoopedFlag<enum_Animation_LoopedFlag>` = 0\ ) :ref:`🔗<class_AnimationNode_method_blend_animation>`
 
 
-Blend an animation by ``blend`` amount (name must be valid in the linked :ref:`AnimationPlayer<class_AnimationPlayer>`). A ``time`` and ``delta`` may be passed, as well as whether ``seeked`` happened.
+Blends an animation by ``blend`` amount (name must be valid in the linked :ref:`AnimationPlayer<class_AnimationPlayer>`). A ``time`` and ``delta`` may be passed, as well as whether ``seeked`` happened.
 
 
-A ``looped_flag`` is used by internal processing immediately after the loop. See also :ref:`LoopedFlag<enum_Animation_LoopedFlag>`.
+A ``looped_flag`` is used by internal processing immediately after the loop.
 
 
 .. rst-class:: classref-item-separator
 .. rst-class:: classref-item-separator
 
 
@@ -363,7 +363,7 @@ A ``looped_flag`` is used by internal processing immediately after the loop. See
 
 
 :ref:`float<class_float>` **blend_input**\ (\ input_index\: :ref:`int<class_int>`, time\: :ref:`float<class_float>`, seek\: :ref:`bool<class_bool>`, is_external_seeking\: :ref:`bool<class_bool>`, blend\: :ref:`float<class_float>`, filter\: :ref:`FilterAction<enum_AnimationNode_FilterAction>` = 0, sync\: :ref:`bool<class_bool>` = true, test_only\: :ref:`bool<class_bool>` = false\ ) :ref:`🔗<class_AnimationNode_method_blend_input>`
 :ref:`float<class_float>` **blend_input**\ (\ input_index\: :ref:`int<class_int>`, time\: :ref:`float<class_float>`, seek\: :ref:`bool<class_bool>`, is_external_seeking\: :ref:`bool<class_bool>`, blend\: :ref:`float<class_float>`, filter\: :ref:`FilterAction<enum_AnimationNode_FilterAction>` = 0, sync\: :ref:`bool<class_bool>` = true, test_only\: :ref:`bool<class_bool>` = false\ ) :ref:`🔗<class_AnimationNode_method_blend_input>`
 
 
-Blend an input. This is only useful for animation nodes created for an :ref:`AnimationNodeBlendTree<class_AnimationNodeBlendTree>`. The ``time`` parameter is a relative delta, unless ``seek`` is ``true``, in which case it is absolute. A filter mode may be optionally passed (see :ref:`FilterAction<enum_AnimationNode_FilterAction>` for options).
+Blends an input. This is only useful for animation nodes created for an :ref:`AnimationNodeBlendTree<class_AnimationNodeBlendTree>`. The ``time`` parameter is a relative delta, unless ``seek`` is ``true``, in which case it is absolute. A filter mode may be optionally passed.
 
 
 .. rst-class:: classref-item-separator
 .. rst-class:: classref-item-separator
 
 
@@ -512,6 +512,7 @@ Sets the name of the input at the given ``input`` index. If the setting fails, r
 Sets a custom parameter. These are used as local memory, because resources can be reused across the tree or scenes.
 Sets a custom parameter. These are used as local memory, because resources can be reused across the tree or scenes.
 
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
+.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`

+ 1 - 0
classes/class_animationnodeadd2.rst

@@ -33,6 +33,7 @@ Tutorials
 - :doc:`Using AnimationTree <../tutorials/animation/animation_tree>`
 - :doc:`Using AnimationTree <../tutorials/animation/animation_tree>`
 
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
+.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`

+ 1 - 0
classes/class_animationnodeadd3.rst

@@ -41,6 +41,7 @@ Tutorials
 - `Third Person Shooter (TPS) Demo <https://godotengine.org/asset-library/asset/2710>`__
 - `Third Person Shooter (TPS) Demo <https://godotengine.org/asset-library/asset/2710>`__
 
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
+.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`

+ 1 - 0
classes/class_animationnodeanimation.rst

@@ -241,6 +241,7 @@ If :ref:`use_custom_timeline<class_AnimationNodeAnimation_property_use_custom_ti
 If ``true``, :ref:`AnimationNode<class_AnimationNode>` provides an animation based on the :ref:`Animation<class_Animation>` resource with some parameters adjusted.
 If ``true``, :ref:`AnimationNode<class_AnimationNode>` provides an animation based on the :ref:`Animation<class_Animation>` resource with some parameters adjusted.
 
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
+.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`

+ 1 - 0
classes/class_animationnodeblend2.rst

@@ -35,6 +35,7 @@ Tutorials
 - `Third Person Shooter (TPS) Demo <https://godotengine.org/asset-library/asset/2710>`__
 - `Third Person Shooter (TPS) Demo <https://godotengine.org/asset-library/asset/2710>`__
 
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
+.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`

+ 1 - 0
classes/class_animationnodeblend3.rst

@@ -39,6 +39,7 @@ Tutorials
 - :doc:`Using AnimationTree <../tutorials/animation/animation_tree>`
 - :doc:`Using AnimationTree <../tutorials/animation/animation_tree>`
 
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
+.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`

+ 2 - 1
classes/class_animationnodeblendspace1d.rst

@@ -137,7 +137,7 @@ Property Descriptions
 - |void| **set_blend_mode**\ (\ value\: :ref:`BlendMode<enum_AnimationNodeBlendSpace1D_BlendMode>`\ )
 - |void| **set_blend_mode**\ (\ value\: :ref:`BlendMode<enum_AnimationNodeBlendSpace1D_BlendMode>`\ )
 - :ref:`BlendMode<enum_AnimationNodeBlendSpace1D_BlendMode>` **get_blend_mode**\ (\ )
 - :ref:`BlendMode<enum_AnimationNodeBlendSpace1D_BlendMode>` **get_blend_mode**\ (\ )
 
 
-Controls the interpolation between animations. See :ref:`BlendMode<enum_AnimationNodeBlendSpace1D_BlendMode>` constants.
+Controls the interpolation between animations.
 
 
 .. rst-class:: classref-item-separator
 .. rst-class:: classref-item-separator
 
 
@@ -316,6 +316,7 @@ Changes the :ref:`AnimationNode<class_AnimationNode>` referenced by the point at
 Updates the position of the point at index ``point`` on the blend axis.
 Updates the position of the point at index ``point`` on the blend axis.
 
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
+.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`

+ 2 - 1
classes/class_animationnodeblendspace2d.rst

@@ -185,7 +185,7 @@ If ``true``, the blend space is triangulated automatically. The mesh updates eve
 - |void| **set_blend_mode**\ (\ value\: :ref:`BlendMode<enum_AnimationNodeBlendSpace2D_BlendMode>`\ )
 - |void| **set_blend_mode**\ (\ value\: :ref:`BlendMode<enum_AnimationNodeBlendSpace2D_BlendMode>`\ )
 - :ref:`BlendMode<enum_AnimationNodeBlendSpace2D_BlendMode>` **get_blend_mode**\ (\ )
 - :ref:`BlendMode<enum_AnimationNodeBlendSpace2D_BlendMode>` **get_blend_mode**\ (\ )
 
 
-Controls the interpolation between animations. See :ref:`BlendMode<enum_AnimationNodeBlendSpace2D_BlendMode>` constants.
+Controls the interpolation between animations.
 
 
 .. rst-class:: classref-item-separator
 .. rst-class:: classref-item-separator
 
 
@@ -429,6 +429,7 @@ Changes the :ref:`AnimationNode<class_AnimationNode>` referenced by the point at
 Updates the position of the point at index ``point`` in the blend space.
 Updates the position of the point at index ``point`` in the blend space.
 
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
+.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`

+ 1 - 0
classes/class_animationnodeblendtree.rst

@@ -294,6 +294,7 @@ Changes the name of a sub animation node.
 Modifies the position of a sub animation node.
 Modifies the position of a sub animation node.
 
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
+.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`

+ 9 - 8
classes/class_animationnodeextension.rst

@@ -31,13 +31,13 @@ Methods
 .. table::
 .. table::
    :widths: auto
    :widths: auto
 
 
-   +-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-   | :ref:`PackedFloat32Array<class_PackedFloat32Array>` | :ref:`_process_animation_node<class_AnimationNodeExtension_private_method__process_animation_node>`\ (\ playback_info\: :ref:`PackedFloat64Array<class_PackedFloat64Array>`, test_only\: :ref:`bool<class_bool>`\ ) |virtual| |
-   +-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-   | :ref:`float<class_float>`                           | :ref:`get_remaining_time<class_AnimationNodeExtension_method_get_remaining_time>`\ (\ node_info\: :ref:`PackedFloat32Array<class_PackedFloat32Array>`, break_loop\: :ref:`bool<class_bool>`\ ) |static|                       |
-   +-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-   | :ref:`bool<class_bool>`                             | :ref:`is_looping<class_AnimationNodeExtension_method_is_looping>`\ (\ node_info\: :ref:`PackedFloat32Array<class_PackedFloat32Array>`\ ) |static|                                                                             |
-   +-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`PackedFloat32Array<class_PackedFloat32Array>` | :ref:`_process_animation_node<class_AnimationNodeExtension_private_method__process_animation_node>`\ (\ playback_info\: :ref:`PackedFloat64Array<class_PackedFloat64Array>`, test_only\: :ref:`bool<class_bool>`\ ) |virtual| |required| |
+   +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`float<class_float>`                           | :ref:`get_remaining_time<class_AnimationNodeExtension_method_get_remaining_time>`\ (\ node_info\: :ref:`PackedFloat32Array<class_PackedFloat32Array>`, break_loop\: :ref:`bool<class_bool>`\ ) |static|                                  |
+   +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`                             | :ref:`is_looping<class_AnimationNodeExtension_method_is_looping>`\ (\ node_info\: :ref:`PackedFloat32Array<class_PackedFloat32Array>`\ ) |static|                                                                                        |
+   +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 
 
 .. rst-class:: classref-section-separator
 .. rst-class:: classref-section-separator
 
 
@@ -52,7 +52,7 @@ Method Descriptions
 
 
 .. rst-class:: classref-method
 .. rst-class:: classref-method
 
 
-:ref:`PackedFloat32Array<class_PackedFloat32Array>` **_process_animation_node**\ (\ playback_info\: :ref:`PackedFloat64Array<class_PackedFloat64Array>`, test_only\: :ref:`bool<class_bool>`\ ) |virtual| :ref:`🔗<class_AnimationNodeExtension_private_method__process_animation_node>`
+:ref:`PackedFloat32Array<class_PackedFloat32Array>` **_process_animation_node**\ (\ playback_info\: :ref:`PackedFloat64Array<class_PackedFloat64Array>`, test_only\: :ref:`bool<class_bool>`\ ) |virtual| |required| :ref:`🔗<class_AnimationNodeExtension_private_method__process_animation_node>`
 
 
 A version of the :ref:`AnimationNode._process()<class_AnimationNode_private_method__process>` method that is meant to be overridden by custom nodes. It returns a :ref:`PackedFloat32Array<class_PackedFloat32Array>` with the processed animation data.
 A version of the :ref:`AnimationNode._process()<class_AnimationNode_private_method__process>` method that is meant to be overridden by custom nodes. It returns a :ref:`PackedFloat32Array<class_PackedFloat32Array>` with the processed animation data.
 
 
@@ -85,6 +85,7 @@ Returns the animation's remaining time for the given node info. For looping anim
 Returns ``true`` if the animation for the given ``node_info`` is looping.
 Returns ``true`` if the animation for the given ``node_info`` is looping.
 
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
+.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`

+ 9 - 8
classes/class_animationnodeoneshot.rst

@@ -32,22 +32,22 @@ After setting the request and changing the animation playback, the one-shot node
     animation_tree.set("parameters/OneShot/request", AnimationNodeOneShot.ONE_SHOT_REQUEST_FIRE)
     animation_tree.set("parameters/OneShot/request", AnimationNodeOneShot.ONE_SHOT_REQUEST_FIRE)
     # Alternative syntax (same result as above).
     # Alternative syntax (same result as above).
     animation_tree["parameters/OneShot/request"] = AnimationNodeOneShot.ONE_SHOT_REQUEST_FIRE
     animation_tree["parameters/OneShot/request"] = AnimationNodeOneShot.ONE_SHOT_REQUEST_FIRE
-    
+
     # Abort child animation connected to "shot" port.
     # Abort child animation connected to "shot" port.
     animation_tree.set("parameters/OneShot/request", AnimationNodeOneShot.ONE_SHOT_REQUEST_ABORT)
     animation_tree.set("parameters/OneShot/request", AnimationNodeOneShot.ONE_SHOT_REQUEST_ABORT)
     # Alternative syntax (same result as above).
     # Alternative syntax (same result as above).
     animation_tree["parameters/OneShot/request"] = AnimationNodeOneShot.ONE_SHOT_REQUEST_ABORT
     animation_tree["parameters/OneShot/request"] = AnimationNodeOneShot.ONE_SHOT_REQUEST_ABORT
-    
+
     # Abort child animation with fading out connected to "shot" port.
     # Abort child animation with fading out connected to "shot" port.
     animation_tree.set("parameters/OneShot/request", AnimationNodeOneShot.ONE_SHOT_REQUEST_FADE_OUT)
     animation_tree.set("parameters/OneShot/request", AnimationNodeOneShot.ONE_SHOT_REQUEST_FADE_OUT)
     # Alternative syntax (same result as above).
     # Alternative syntax (same result as above).
     animation_tree["parameters/OneShot/request"] = AnimationNodeOneShot.ONE_SHOT_REQUEST_FADE_OUT
     animation_tree["parameters/OneShot/request"] = AnimationNodeOneShot.ONE_SHOT_REQUEST_FADE_OUT
-    
+
     # Get current state (read-only).
     # Get current state (read-only).
     animation_tree.get("parameters/OneShot/active")
     animation_tree.get("parameters/OneShot/active")
     # Alternative syntax (same result as above).
     # Alternative syntax (same result as above).
     animation_tree["parameters/OneShot/active"]
     animation_tree["parameters/OneShot/active"]
-    
+
     # Get current internal state (read-only).
     # Get current internal state (read-only).
     animation_tree.get("parameters/OneShot/internal_active")
     animation_tree.get("parameters/OneShot/internal_active")
     # Alternative syntax (same result as above).
     # Alternative syntax (same result as above).
@@ -57,16 +57,16 @@ After setting the request and changing the animation playback, the one-shot node
 
 
     // Play child animation connected to "shot" port.
     // Play child animation connected to "shot" port.
     animationTree.Set("parameters/OneShot/request", (int)AnimationNodeOneShot.OneShotRequest.Fire);
     animationTree.Set("parameters/OneShot/request", (int)AnimationNodeOneShot.OneShotRequest.Fire);
-    
+
     // Abort child animation connected to "shot" port.
     // Abort child animation connected to "shot" port.
     animationTree.Set("parameters/OneShot/request", (int)AnimationNodeOneShot.OneShotRequest.Abort);
     animationTree.Set("parameters/OneShot/request", (int)AnimationNodeOneShot.OneShotRequest.Abort);
-    
+
     // Abort child animation with fading out connected to "shot" port.
     // Abort child animation with fading out connected to "shot" port.
     animationTree.Set("parameters/OneShot/request", (int)AnimationNodeOneShot.OneShotRequest.FadeOut);
     animationTree.Set("parameters/OneShot/request", (int)AnimationNodeOneShot.OneShotRequest.FadeOut);
-    
+
     // Get current state (read-only).
     // Get current state (read-only).
     animationTree.Get("parameters/OneShot/active");
     animationTree.Get("parameters/OneShot/active");
-    
+
     // Get current internal state (read-only).
     // Get current internal state (read-only).
     animationTree.Get("parameters/OneShot/internal_active");
     animationTree.Get("parameters/OneShot/internal_active");
 
 
@@ -347,6 +347,7 @@ The fade-out duration. For example, setting this to ``1.0`` for a 5 second lengt
 The blend type.
 The blend type.
 
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
+.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`

+ 1 - 0
classes/class_animationnodeoutput.rst

@@ -33,6 +33,7 @@ Tutorials
 - `Third Person Shooter (TPS) Demo <https://godotengine.org/asset-library/asset/2710>`__
 - `Third Person Shooter (TPS) Demo <https://godotengine.org/asset-library/asset/2710>`__
 
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
+.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`

+ 1 - 0
classes/class_animationnodestatemachine.rst

@@ -452,6 +452,7 @@ Sets the draw offset of the graph. Used for display in the editor.
 Sets the animation node's coordinates. Used for display in the editor.
 Sets the animation node's coordinates. Used for display in the editor.
 
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
+.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`

+ 32 - 0
classes/class_animationnodestatemachineplayback.rst

@@ -91,6 +91,37 @@ Methods
 
 
 .. rst-class:: classref-descriptions-group
 .. rst-class:: classref-descriptions-group
 
 
+Signals
+-------
+
+.. _class_AnimationNodeStateMachinePlayback_signal_state_finished:
+
+.. rst-class:: classref-signal
+
+**state_finished**\ (\ state\: :ref:`StringName<class_StringName>`\ ) :ref:`🔗<class_AnimationNodeStateMachinePlayback_signal_state_finished>`
+
+Emitted when the ``state`` finishes playback. If ``state`` is a state machine set to grouped mode, its signals are passed through with its name prefixed.
+
+If there is a crossfade, this will be fired when the influence of the :ref:`get_fading_from_node()<class_AnimationNodeStateMachinePlayback_method_get_fading_from_node>` animation is no longer present.
+
+.. rst-class:: classref-item-separator
+
+----
+
+.. _class_AnimationNodeStateMachinePlayback_signal_state_started:
+
+.. rst-class:: classref-signal
+
+**state_started**\ (\ state\: :ref:`StringName<class_StringName>`\ ) :ref:`🔗<class_AnimationNodeStateMachinePlayback_signal_state_started>`
+
+Emitted when the ``state`` starts playback. If ``state`` is a state machine set to grouped mode, its signals are passed through with its name prefixed.
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
+
 Method Descriptions
 Method Descriptions
 -------------------
 -------------------
 
 
@@ -221,6 +252,7 @@ If the path does not connect from the current state, the animation will play aft
 If ``reset_on_teleport`` is ``true``, the animation is played from the beginning when the travel cause a teleportation.
 If ``reset_on_teleport`` is ``true``, the animation is played from the beginning when the travel cause a teleportation.
 
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
+.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`

+ 1 - 0
classes/class_animationnodestatemachinetransition.rst

@@ -322,6 +322,7 @@ The time to cross-fade between this state and the next.
 \ **Note:** :ref:`AnimationNodeStateMachine<class_AnimationNodeStateMachine>` transitions the current state immediately after the start of the fading. The precise remaining time can only be inferred from the main animation. When :ref:`AnimationNodeOutput<class_AnimationNodeOutput>` is considered as the most upstream, so the :ref:`xfade_time<class_AnimationNodeStateMachineTransition_property_xfade_time>` is not scaled depending on the downstream delta. See also :ref:`AnimationNodeOneShot.fadeout_time<class_AnimationNodeOneShot_property_fadeout_time>`.
 \ **Note:** :ref:`AnimationNodeStateMachine<class_AnimationNodeStateMachine>` transitions the current state immediately after the start of the fading. The precise remaining time can only be inferred from the main animation. When :ref:`AnimationNodeOutput<class_AnimationNodeOutput>` is considered as the most upstream, so the :ref:`xfade_time<class_AnimationNodeStateMachineTransition_property_xfade_time>` is not scaled depending on the downstream delta. See also :ref:`AnimationNodeOneShot.fadeout_time<class_AnimationNodeOneShot_property_fadeout_time>`.
 
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
+.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`

+ 1 - 0
classes/class_animationnodesub2.rst

@@ -35,6 +35,7 @@ Tutorials
 - :doc:`AnimationTree <../tutorials/animation/animation_tree>`
 - :doc:`AnimationTree <../tutorials/animation/animation_tree>`
 
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
+.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`

+ 1 - 0
classes/class_animationnodesync.rst

@@ -67,6 +67,7 @@ If ``false``, the blended animations' frame are stopped when the blend value is
 If ``true``, forcing the blended animations to advance frame.
 If ``true``, forcing the blended animations to advance frame.
 
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
+.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`

+ 1 - 0
classes/class_animationnodetimescale.rst

@@ -31,6 +31,7 @@ Tutorials
 - `3D Platformer Demo <https://godotengine.org/asset-library/asset/2748>`__
 - `3D Platformer Demo <https://godotengine.org/asset-library/asset/2748>`__
 
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
+.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`

+ 3 - 2
classes/class_animationnodetimeseek.rst

@@ -32,7 +32,7 @@ After setting the time and changing the animation playback, the time seek node a
     animation_tree.set("parameters/TimeSeek/seek_request", 0.0)
     animation_tree.set("parameters/TimeSeek/seek_request", 0.0)
     # Alternative syntax (same result as above).
     # Alternative syntax (same result as above).
     animation_tree["parameters/TimeSeek/seek_request"] = 0.0
     animation_tree["parameters/TimeSeek/seek_request"] = 0.0
-    
+
     # Play child animation from 12 second timestamp.
     # Play child animation from 12 second timestamp.
     animation_tree.set("parameters/TimeSeek/seek_request", 12.0)
     animation_tree.set("parameters/TimeSeek/seek_request", 12.0)
     # Alternative syntax (same result as above).
     # Alternative syntax (same result as above).
@@ -42,7 +42,7 @@ After setting the time and changing the animation playback, the time seek node a
 
 
     // Play child animation from the start.
     // Play child animation from the start.
     animationTree.Set("parameters/TimeSeek/seek_request", 0.0);
     animationTree.Set("parameters/TimeSeek/seek_request", 0.0);
-    
+
     // Play child animation from 12 second timestamp.
     // Play child animation from 12 second timestamp.
     animationTree.Set("parameters/TimeSeek/seek_request", 12.0);
     animationTree.Set("parameters/TimeSeek/seek_request", 12.0);
 
 
@@ -90,6 +90,7 @@ Property Descriptions
 If ``true``, some processes are executed to handle keys between seeks, such as calculating root motion and finding the nearest discrete key.
 If ``true``, some processes are executed to handle keys between seeks, such as calculating root motion and finding the nearest discrete key.
 
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
+.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`

+ 5 - 4
classes/class_animationnodetransition.rst

@@ -34,12 +34,12 @@ After setting the request and changing the animation playback, the transition no
     animation_tree.set("parameters/Transition/transition_request", "state_2")
     animation_tree.set("parameters/Transition/transition_request", "state_2")
     # Alternative syntax (same result as above).
     # Alternative syntax (same result as above).
     animation_tree["parameters/Transition/transition_request"] = "state_2"
     animation_tree["parameters/Transition/transition_request"] = "state_2"
-    
+
     # Get current state name (read-only).
     # Get current state name (read-only).
     animation_tree.get("parameters/Transition/current_state")
     animation_tree.get("parameters/Transition/current_state")
     # Alternative syntax (same result as above).
     # Alternative syntax (same result as above).
     animation_tree["parameters/Transition/current_state"]
     animation_tree["parameters/Transition/current_state"]
-    
+
     # Get current state index (read-only).
     # Get current state index (read-only).
     animation_tree.get("parameters/Transition/current_index")
     animation_tree.get("parameters/Transition/current_index")
     # Alternative syntax (same result as above).
     # Alternative syntax (same result as above).
@@ -49,10 +49,10 @@ After setting the request and changing the animation playback, the transition no
 
 
     // Play child animation connected to "state_2" port.
     // Play child animation connected to "state_2" port.
     animationTree.Set("parameters/Transition/transition_request", "state_2");
     animationTree.Set("parameters/Transition/transition_request", "state_2");
-    
+
     // Get current state name (read-only).
     // Get current state name (read-only).
     animationTree.Get("parameters/Transition/current_state");
     animationTree.Get("parameters/Transition/current_state");
-    
+
     // Get current state index (read-only).
     // Get current state index (read-only).
     animationTree.Get("parameters/Transition/current_index");
     animationTree.Get("parameters/Transition/current_index");
 
 
@@ -262,6 +262,7 @@ If ``true``, breaks the loop at the end of the loop cycle for transition, even i
 If ``true``, the destination animation is restarted when the animation transitions.
 If ``true``, the destination animation is restarted when the animation transitions.
 
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
+.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`

+ 1 - 0
classes/class_animationplayer.rst

@@ -902,6 +902,7 @@ If ``keep_state`` is ``true``, the animation state is not updated visually.
 \ **Note:** The method / audio / animation playback tracks will not be processed by this method.
 \ **Note:** The method / audio / animation playback tracks will not be processed by this method.
 
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
+.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`

+ 1 - 0
classes/class_animationrootnode.rst

@@ -33,6 +33,7 @@ Tutorials
 - :doc:`Using AnimationTree <../tutorials/animation/animation_tree>`
 - :doc:`Using AnimationTree <../tutorials/animation/animation_tree>`
 
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
+.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`

+ 1 - 0
classes/class_animationtree.rst

@@ -218,6 +218,7 @@ Returns the process notification in which to update animations.
 Sets the process notification in which to update animations.
 Sets the process notification in which to update animations.
 
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
+.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`

+ 6 - 5
classes/class_area2d.rst

@@ -155,7 +155,7 @@ Emitted when a :ref:`Shape2D<class_Shape2D>` of the received ``area`` enters a s
 
 
     var other_shape_owner = area.shape_find_owner(area_shape_index)
     var other_shape_owner = area.shape_find_owner(area_shape_index)
     var other_shape_node = area.shape_owner_get_owner(other_shape_owner)
     var other_shape_node = area.shape_owner_get_owner(other_shape_owner)
-    
+
     var local_shape_owner = shape_find_owner(local_shape_index)
     var local_shape_owner = shape_find_owner(local_shape_index)
     var local_shape_node = shape_owner_get_owner(local_shape_owner)
     var local_shape_node = shape_owner_get_owner(local_shape_owner)
 
 
@@ -222,7 +222,7 @@ Emitted when a :ref:`Shape2D<class_Shape2D>` of the received ``body`` enters a s
 
 
     var body_shape_owner = body.shape_find_owner(body_shape_index)
     var body_shape_owner = body.shape_find_owner(body_shape_index)
     var body_shape_node = body.shape_owner_get_owner(body_shape_owner)
     var body_shape_node = body.shape_owner_get_owner(body_shape_owner)
-    
+
     var local_shape_owner = shape_find_owner(local_shape_index)
     var local_shape_owner = shape_find_owner(local_shape_index)
     var local_shape_node = shape_owner_get_owner(local_shape_owner)
     var local_shape_node = shape_owner_get_owner(local_shape_owner)
 
 
@@ -336,7 +336,7 @@ See :ref:`ProjectSettings.physics/2d/default_angular_damp<class_ProjectSettings_
 - |void| **set_angular_damp_space_override_mode**\ (\ value\: :ref:`SpaceOverride<enum_Area2D_SpaceOverride>`\ )
 - |void| **set_angular_damp_space_override_mode**\ (\ value\: :ref:`SpaceOverride<enum_Area2D_SpaceOverride>`\ )
 - :ref:`SpaceOverride<enum_Area2D_SpaceOverride>` **get_angular_damp_space_override_mode**\ (\ )
 - :ref:`SpaceOverride<enum_Area2D_SpaceOverride>` **get_angular_damp_space_override_mode**\ (\ )
 
 
-Override mode for angular damping calculations within this area. See :ref:`SpaceOverride<enum_Area2D_SpaceOverride>` for possible values.
+Override mode for angular damping calculations within this area.
 
 
 .. rst-class:: classref-item-separator
 .. rst-class:: classref-item-separator
 
 
@@ -474,7 +474,7 @@ The above is true only when the unit distance is a positive number. When this is
 - |void| **set_gravity_space_override_mode**\ (\ value\: :ref:`SpaceOverride<enum_Area2D_SpaceOverride>`\ )
 - |void| **set_gravity_space_override_mode**\ (\ value\: :ref:`SpaceOverride<enum_Area2D_SpaceOverride>`\ )
 - :ref:`SpaceOverride<enum_Area2D_SpaceOverride>` **get_gravity_space_override_mode**\ (\ )
 - :ref:`SpaceOverride<enum_Area2D_SpaceOverride>` **get_gravity_space_override_mode**\ (\ )
 
 
-Override mode for gravity calculations within this area. See :ref:`SpaceOverride<enum_Area2D_SpaceOverride>` for possible values.
+Override mode for gravity calculations within this area.
 
 
 .. rst-class:: classref-item-separator
 .. rst-class:: classref-item-separator
 
 
@@ -510,7 +510,7 @@ See :ref:`ProjectSettings.physics/2d/default_linear_damp<class_ProjectSettings_p
 - |void| **set_linear_damp_space_override_mode**\ (\ value\: :ref:`SpaceOverride<enum_Area2D_SpaceOverride>`\ )
 - |void| **set_linear_damp_space_override_mode**\ (\ value\: :ref:`SpaceOverride<enum_Area2D_SpaceOverride>`\ )
 - :ref:`SpaceOverride<enum_Area2D_SpaceOverride>` **get_linear_damp_space_override_mode**\ (\ )
 - :ref:`SpaceOverride<enum_Area2D_SpaceOverride>` **get_linear_damp_space_override_mode**\ (\ )
 
 
-Override mode for linear damping calculations within this area. See :ref:`SpaceOverride<enum_Area2D_SpaceOverride>` for possible values.
+Override mode for linear damping calculations within this area.
 
 
 .. rst-class:: classref-item-separator
 .. rst-class:: classref-item-separator
 
 
@@ -655,6 +655,7 @@ Returns ``true`` if the given physics body intersects or overlaps this **Area2D*
 The ``body`` argument can either be a :ref:`PhysicsBody2D<class_PhysicsBody2D>` or a :ref:`TileMap<class_TileMap>` instance. While TileMaps are not physics bodies themselves, they register their tiles with collision shapes as a virtual physics body.
 The ``body`` argument can either be a :ref:`PhysicsBody2D<class_PhysicsBody2D>` or a :ref:`TileMap<class_TileMap>` instance. While TileMaps are not physics bodies themselves, they register their tiles with collision shapes as a virtual physics body.
 
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
+.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`

+ 6 - 5
classes/class_area3d.rst

@@ -169,7 +169,7 @@ Emitted when a :ref:`Shape3D<class_Shape3D>` of the received ``area`` enters a s
 
 
     var other_shape_owner = area.shape_find_owner(area_shape_index)
     var other_shape_owner = area.shape_find_owner(area_shape_index)
     var other_shape_node = area.shape_owner_get_owner(other_shape_owner)
     var other_shape_node = area.shape_owner_get_owner(other_shape_owner)
-    
+
     var local_shape_owner = shape_find_owner(local_shape_index)
     var local_shape_owner = shape_find_owner(local_shape_index)
     var local_shape_node = shape_owner_get_owner(local_shape_owner)
     var local_shape_node = shape_owner_get_owner(local_shape_owner)
 
 
@@ -236,7 +236,7 @@ Emitted when a :ref:`Shape3D<class_Shape3D>` of the received ``body`` enters a s
 
 
     var body_shape_owner = body.shape_find_owner(body_shape_index)
     var body_shape_owner = body.shape_find_owner(body_shape_index)
     var body_shape_node = body.shape_owner_get_owner(body_shape_owner)
     var body_shape_node = body.shape_owner_get_owner(body_shape_owner)
-    
+
     var local_shape_owner = shape_find_owner(local_shape_index)
     var local_shape_owner = shape_find_owner(local_shape_index)
     var local_shape_node = shape_owner_get_owner(local_shape_owner)
     var local_shape_node = shape_owner_get_owner(local_shape_owner)
 
 
@@ -350,7 +350,7 @@ See :ref:`ProjectSettings.physics/3d/default_angular_damp<class_ProjectSettings_
 - |void| **set_angular_damp_space_override_mode**\ (\ value\: :ref:`SpaceOverride<enum_Area3D_SpaceOverride>`\ )
 - |void| **set_angular_damp_space_override_mode**\ (\ value\: :ref:`SpaceOverride<enum_Area3D_SpaceOverride>`\ )
 - :ref:`SpaceOverride<enum_Area3D_SpaceOverride>` **get_angular_damp_space_override_mode**\ (\ )
 - :ref:`SpaceOverride<enum_Area3D_SpaceOverride>` **get_angular_damp_space_override_mode**\ (\ )
 
 
-Override mode for angular damping calculations within this area. See :ref:`SpaceOverride<enum_Area3D_SpaceOverride>` for possible values.
+Override mode for angular damping calculations within this area.
 
 
 .. rst-class:: classref-item-separator
 .. rst-class:: classref-item-separator
 
 
@@ -488,7 +488,7 @@ The above is true only when the unit distance is a positive number. When this is
 - |void| **set_gravity_space_override_mode**\ (\ value\: :ref:`SpaceOverride<enum_Area3D_SpaceOverride>`\ )
 - |void| **set_gravity_space_override_mode**\ (\ value\: :ref:`SpaceOverride<enum_Area3D_SpaceOverride>`\ )
 - :ref:`SpaceOverride<enum_Area3D_SpaceOverride>` **get_gravity_space_override_mode**\ (\ )
 - :ref:`SpaceOverride<enum_Area3D_SpaceOverride>` **get_gravity_space_override_mode**\ (\ )
 
 
-Override mode for gravity calculations within this area. See :ref:`SpaceOverride<enum_Area3D_SpaceOverride>` for possible values.
+Override mode for gravity calculations within this area.
 
 
 .. rst-class:: classref-item-separator
 .. rst-class:: classref-item-separator
 
 
@@ -524,7 +524,7 @@ See :ref:`ProjectSettings.physics/3d/default_linear_damp<class_ProjectSettings_p
 - |void| **set_linear_damp_space_override_mode**\ (\ value\: :ref:`SpaceOverride<enum_Area3D_SpaceOverride>`\ )
 - |void| **set_linear_damp_space_override_mode**\ (\ value\: :ref:`SpaceOverride<enum_Area3D_SpaceOverride>`\ )
 - :ref:`SpaceOverride<enum_Area3D_SpaceOverride>` **get_linear_damp_space_override_mode**\ (\ )
 - :ref:`SpaceOverride<enum_Area3D_SpaceOverride>` **get_linear_damp_space_override_mode**\ (\ )
 
 
-Override mode for linear damping calculations within this area. See :ref:`SpaceOverride<enum_Area3D_SpaceOverride>` for possible values.
+Override mode for linear damping calculations within this area.
 
 
 .. rst-class:: classref-item-separator
 .. rst-class:: classref-item-separator
 
 
@@ -794,6 +794,7 @@ Returns ``true`` if the given physics body intersects or overlaps this **Area3D*
 The ``body`` argument can either be a :ref:`PhysicsBody3D<class_PhysicsBody3D>` or a :ref:`GridMap<class_GridMap>` instance. While GridMaps are not physics body themselves, they register their tiles with collision shapes as a virtual physics body.
 The ``body`` argument can either be a :ref:`PhysicsBody3D<class_PhysicsBody3D>` or a :ref:`GridMap<class_GridMap>` instance. While GridMaps are not physics body themselves, they register their tiles with collision shapes as a virtual physics body.
 
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
+.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`

+ 36 - 33
classes/class_array.rst

@@ -28,7 +28,7 @@ An array data structure that can contain a sequence of elements of any :ref:`Var
     print(array[0])  # Prints "First"
     print(array[0])  # Prints "First"
     print(array[2])  # Prints 3
     print(array[2])  # Prints 3
     print(array[-1]) # Prints "Last"
     print(array[-1]) # Prints "Last"
-    
+
     array[1] = "Second"
     array[1] = "Second"
     print(array[1])  # Prints "Second"
     print(array[1])  # Prints "Second"
     print(array[-3]) # Prints "Second"
     print(array[-3]) # Prints "Second"
@@ -39,7 +39,7 @@ An array data structure that can contain a sequence of elements of any :ref:`Var
     GD.Print(array[0]); // Prints "First"
     GD.Print(array[0]); // Prints "First"
     GD.Print(array[2]); // Prints 3
     GD.Print(array[2]); // Prints 3
     GD.Print(array[^1]); // Prints "Last"
     GD.Print(array[^1]); // Prints "Last"
-    
+
     array[1] = "Second";
     array[1] = "Second";
     GD.Print(array[1]); // Prints "Second"
     GD.Print(array[1]); // Prints "Second"
     GD.Print(array[^3]); // Prints "Second"
     GD.Print(array[^3]); // Prints "Second"
@@ -269,10 +269,10 @@ If ``type`` is not :ref:`@GlobalScope.TYPE_OBJECT<class_@GlobalScope_constant_TY
 
 
     class_name Sword
     class_name Sword
     extends Node
     extends Node
-    
+
     class Stats:
     class Stats:
         pass
         pass
-    
+
     func _ready():
     func _ready():
         var a = Array([], TYPE_INT, "", null)               # Array[int]
         var a = Array([], TYPE_INT, "", null)               # Array[int]
         var b = Array([], TYPE_OBJECT, "Node", null)        # Array[Node]
         var b = Array([], TYPE_OBJECT, "Node", null)        # Array[Node]
@@ -287,7 +287,7 @@ In GDScript, this constructor is usually not necessary, as it is possible to cre
 
 
     var numbers: Array[float] = []
     var numbers: Array[float] = []
     var children: Array[Node] = [$Node, $Sprite2D, $RigidBody3D]
     var children: Array[Node] = [$Node, $Sprite2D, $RigidBody3D]
-    
+
     var integers: Array[int] = [0.2, 4.5, -2.0]
     var integers: Array[int] = [0.2, 4.5, -2.0]
     print(integers) # Prints [0, 4, -2]
     print(integers) # Prints [0, 4, -2]
 
 
@@ -427,13 +427,13 @@ The ``method`` should take one :ref:`Variant<class_Variant>` parameter (the curr
 
 
     func greater_than_5(number):
     func greater_than_5(number):
         return number > 5
         return number > 5
-    
+
     func _ready():
     func _ready():
         print([6, 10, 6].all(greater_than_5)) # Prints true (3/3 elements evaluate to true).
         print([6, 10, 6].all(greater_than_5)) # Prints true (3/3 elements evaluate to true).
         print([4, 10, 4].all(greater_than_5)) # Prints false (1/3 elements evaluate to true).
         print([4, 10, 4].all(greater_than_5)) # Prints false (1/3 elements evaluate to true).
         print([4, 4, 4].all(greater_than_5))  # Prints false (0/3 elements evaluate to true).
         print([4, 4, 4].all(greater_than_5))  # Prints false (0/3 elements evaluate to true).
         print([].all(greater_than_5))         # Prints true (0/0 elements evaluate to true).
         print([].all(greater_than_5))         # Prints true (0/0 elements evaluate to true).
-    
+
         # Same as the first line above, but using a lambda function.
         # Same as the first line above, but using a lambda function.
         print([6, 10, 6].all(func(element): return element > 5)) # Prints true
         print([6, 10, 6].all(func(element): return element > 5)) # Prints true
 
 
@@ -443,7 +443,7 @@ The ``method`` should take one :ref:`Variant<class_Variant>` parameter (the curr
     {
     {
         return number > 5;
         return number > 5;
     }
     }
-    
+
     public override void _Ready()
     public override void _Ready()
     {
     {
         // Prints True (3/3 elements evaluate to true).
         // Prints True (3/3 elements evaluate to true).
@@ -454,7 +454,7 @@ The ``method`` should take one :ref:`Variant<class_Variant>` parameter (the curr
         GD.Print(new Godot.Collections.Array>int< { 4, 4, 4 }.All(GreaterThan5));
         GD.Print(new Godot.Collections.Array>int< { 4, 4, 4 }.All(GreaterThan5));
         // Prints True (0/0 elements evaluate to true).
         // Prints True (0/0 elements evaluate to true).
         GD.Print(new Godot.Collections.Array>int< { }.All(GreaterThan5));
         GD.Print(new Godot.Collections.Array>int< { }.All(GreaterThan5));
-    
+
         // Same as the first line above, but using a lambda function.
         // Same as the first line above, but using a lambda function.
         GD.Print(new Godot.Collections.Array>int< { 6, 10, 6 }.All(element => element > 5)); // Prints True
         GD.Print(new Godot.Collections.Array>int< { 6, 10, 6 }.All(element => element > 5)); // Prints True
     }
     }
@@ -485,13 +485,13 @@ The ``method`` should take one :ref:`Variant<class_Variant>` parameter (the curr
 
 
     func greater_than_5(number):
     func greater_than_5(number):
         return number > 5
         return number > 5
-    
+
     func _ready():
     func _ready():
         print([6, 10, 6].any(greater_than_5)) # Prints true (3 elements evaluate to true).
         print([6, 10, 6].any(greater_than_5)) # Prints true (3 elements evaluate to true).
         print([4, 10, 4].any(greater_than_5)) # Prints true (1 elements evaluate to true).
         print([4, 10, 4].any(greater_than_5)) # Prints true (1 elements evaluate to true).
         print([4, 4, 4].any(greater_than_5))  # Prints false (0 elements evaluate to true).
         print([4, 4, 4].any(greater_than_5))  # Prints false (0 elements evaluate to true).
         print([].any(greater_than_5))         # Prints false (0 elements evaluate to true).
         print([].any(greater_than_5))         # Prints false (0 elements evaluate to true).
-    
+
         # Same as the first line above, but using a lambda function.
         # Same as the first line above, but using a lambda function.
         print([6, 10, 6].any(func(number): return number > 5)) # Prints true
         print([6, 10, 6].any(func(number): return number > 5)) # Prints true
 
 
@@ -576,10 +576,10 @@ If ``before`` is ``true`` (as by default), the returned index comes before all e
 
 
     var numbers = [2, 4, 8, 10]
     var numbers = [2, 4, 8, 10]
     var idx = numbers.bsearch(7)
     var idx = numbers.bsearch(7)
-    
+
     numbers.insert(idx, 7)
     numbers.insert(idx, 7)
     print(numbers) # Prints [2, 4, 7, 8, 10]
     print(numbers) # Prints [2, 4, 7, 8, 10]
-    
+
     var fruits = ["Apple", "Lemon", "Lemon", "Orange"]
     var fruits = ["Apple", "Lemon", "Lemon", "Orange"]
     print(fruits.bsearch("Lemon", true))  # Prints 1, points at the first "Lemon".
     print(fruits.bsearch("Lemon", true))  # Prints 1, points at the first "Lemon".
     print(fruits.bsearch("Lemon", false)) # Prints 3, points at "Orange".
     print(fruits.bsearch("Lemon", false)) # Prints 3, points at "Orange".
@@ -608,18 +608,18 @@ If ``before`` is ``true`` (as by default), the returned index comes before all e
         if a[1] < b[1]:
         if a[1] < b[1]:
             return true
             return true
         return false
         return false
-    
+
     func _ready():
     func _ready():
         var my_items = [["Tomato", 2], ["Kiwi", 5], ["Rice", 9]]
         var my_items = [["Tomato", 2], ["Kiwi", 5], ["Rice", 9]]
-    
+
         var apple = ["Apple", 5]
         var apple = ["Apple", 5]
         # "Apple" is inserted before "Kiwi".
         # "Apple" is inserted before "Kiwi".
         my_items.insert(my_items.bsearch_custom(apple, sort_by_amount, true), apple)
         my_items.insert(my_items.bsearch_custom(apple, sort_by_amount, true), apple)
-    
+
         var banana = ["Banana", 5]
         var banana = ["Banana", 5]
         # "Banana" is inserted after "Kiwi".
         # "Banana" is inserted after "Kiwi".
         my_items.insert(my_items.bsearch_custom(banana, sort_by_amount, false), banana)
         my_items.insert(my_items.bsearch_custom(banana, sort_by_amount, false), banana)
-    
+
         # Prints [["Tomato", 2], ["Apple", 5], ["Kiwi", 5], ["Banana", 5], ["Rice", 9]]
         # Prints [["Tomato", 2], ["Apple", 5], ["Kiwi", 5], ["Banana", 5], ["Rice", 9]]
         print(my_items)
         print(my_items)
 
 
@@ -750,10 +750,10 @@ The ``method`` receives one of the array elements as an argument, and should ret
 
 
     func is_even(number):
     func is_even(number):
         return number % 2 == 0
         return number % 2 == 0
-    
+
     func _ready():
     func _ready():
         print([1, 4, 5, 8].filter(is_even)) # Prints [4, 8]
         print([1, 4, 5, 8].filter(is_even)) # Prints [4, 8]
-    
+
         # Same as above, but using a lambda function.
         # Same as above, but using a lambda function.
         print([1, 4, 5, 8].filter(func(number): return number % 2 == 0))
         print([1, 4, 5, 8].filter(func(number): return number % 2 == 0))
 
 
@@ -798,7 +798,7 @@ Returns the index of the **first** element in the array that causes ``method`` t
 
 
     func is_even(number):
     func is_even(number):
         return number % 2 == 0
         return number % 2 == 0
-    
+
     func _ready():
     func _ready():
         print([1, 3, 4, 7].find_custom(is_even.bind())) # Prints 2
         print([1, 3, 4, 7].find_custom(is_even.bind())) # Prints 2
 
 
@@ -828,7 +828,9 @@ Returns the first element of the array. If the array is empty, fails and returns
 
 
 :ref:`Variant<class_Variant>` **get**\ (\ index\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_Array_method_get>`
 :ref:`Variant<class_Variant>` **get**\ (\ index\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_Array_method_get>`
 
 
-Returns the element at the given ``index`` in the array. This is the same as using the ``[]`` operator (``array[index]``).
+Returns the element at the given ``index`` in the array. If ``index`` out-of-bounds or negative, this method fails and returns ``null``.
+
+This method is similar (but not identical) to the ``[]`` operator. Most notably, when this method fails, it doesn't pause project execution if run from the editor.
 
 
 .. rst-class:: classref-item-separator
 .. rst-class:: classref-item-separator
 
 
@@ -1027,10 +1029,10 @@ The ``method`` should take one :ref:`Variant<class_Variant>` parameter (the curr
 
 
     func double(number):
     func double(number):
         return number * 2
         return number * 2
-    
+
     func _ready():
     func _ready():
         print([1, 2, 3].map(double)) # Prints [2, 4, 6]
         print([1, 2, 3].map(double)) # Prints [2, 4, 6]
-    
+
         # Same as above, but using a lambda function.
         # Same as above, but using a lambda function.
         print([1, 2, 3].map(func(element): return element * 2))
         print([1, 2, 3].map(func(element): return element * 2))
 
 
@@ -1175,11 +1177,11 @@ The ``method`` takes two arguments: the current value of ``accum`` and the curre
 
 
     func sum(accum, number):
     func sum(accum, number):
         return accum + number
         return accum + number
-    
+
     func _ready():
     func _ready():
         print([1, 2, 3].reduce(sum, 0))  # Prints 6
         print([1, 2, 3].reduce(sum, 0))  # Prints 6
         print([1, 2, 3].reduce(sum, 10)) # Prints 16
         print([1, 2, 3].reduce(sum, 10)) # Prints 16
-    
+
         # Same as above, but using a lambda function.
         # Same as above, but using a lambda function.
         print([1, 2, 3].reduce(func(accum, number): return accum + number, 10))
         print([1, 2, 3].reduce(func(accum, number): return accum + number, 10))
 
 
@@ -1189,10 +1191,10 @@ If :ref:`max()<class_Array_method_max>` is not desirable, this method may also b
 
 
     func _ready():
     func _ready():
         var arr = [Vector2i(5, 0), Vector2i(3, 4), Vector2i(1, 2)]
         var arr = [Vector2i(5, 0), Vector2i(3, 4), Vector2i(1, 2)]
-    
+
         var longest_vec = arr.reduce(func(max, vec): return vec if is_length_greater(vec, max) else max)
         var longest_vec = arr.reduce(func(max, vec): return vec if is_length_greater(vec, max) else max)
         print(longest_vec) # Prints (3, 4)
         print(longest_vec) # Prints (3, 4)
-    
+
     func is_length_greater(a, b):
     func is_length_greater(a, b):
         return a.length() > b.length()
         return a.length() > b.length()
 
 
@@ -1202,7 +1204,7 @@ This method can also be used to count how many elements in an array satisfy a ce
 
 
     func is_even(number):
     func is_even(number):
         return number % 2 == 0
         return number % 2 == 0
-    
+
     func _ready():
     func _ready():
         var arr = [1, 2, 3, 4, 5]
         var arr = [1, 2, 3, 4, 5]
         # If the current element is even, increment count, otherwise leave count the same.
         # If the current element is even, increment count, otherwise leave count the same.
@@ -1335,16 +1337,16 @@ If either ``begin`` or ``end`` are negative, their value is relative to the end
 
 
 If ``step`` is negative, this method iterates through the array in reverse, returning a slice ordered backwards. For this to work, ``begin`` must be greater than ``end``.
 If ``step`` is negative, this method iterates through the array in reverse, returning a slice ordered backwards. For this to work, ``begin`` must be greater than ``end``.
 
 
-If ``deep`` is ``true``, all nested **Array** and :ref:`Dictionary<class_Dictionary>` elements in the slice are duplicated from the original, recursively. See also :ref:`duplicate()<class_Array_method_duplicate>`).
+If ``deep`` is ``true``, all nested **Array** and :ref:`Dictionary<class_Dictionary>` elements in the slice are duplicated from the original, recursively. See also :ref:`duplicate()<class_Array_method_duplicate>`.
 
 
 ::
 ::
 
 
     var letters = ["A", "B", "C", "D", "E", "F"]
     var letters = ["A", "B", "C", "D", "E", "F"]
-    
+
     print(letters.slice(0, 2))  # Prints ["A", "B"]
     print(letters.slice(0, 2))  # Prints ["A", "B"]
     print(letters.slice(2, -2)) # Prints ["C", "D"]
     print(letters.slice(2, -2)) # Prints ["C", "D"]
     print(letters.slice(-2, 6)) # Prints ["E", "F"]
     print(letters.slice(-2, 6)) # Prints ["E", "F"]
-    
+
     print(letters.slice(0, 6, 2))  # Prints ["A", "C", "E"]
     print(letters.slice(0, 6, 2))  # Prints ["A", "C", "E"]
     print(letters.slice(4, 1, -1)) # Prints ["E", "D", "C"]
     print(letters.slice(4, 1, -1)) # Prints ["E", "D", "C"]
 
 
@@ -1399,12 +1401,12 @@ Sorts the array using a custom :ref:`Callable<class_Callable>`.
         if a[1] < b[1]:
         if a[1] < b[1]:
             return true
             return true
         return false
         return false
-    
+
     func _ready():
     func _ready():
         var my_items = [["Tomato", 5], ["Apple", 9], ["Rice", 4]]
         var my_items = [["Tomato", 5], ["Apple", 9], ["Rice", 4]]
         my_items.sort_custom(sort_ascending)
         my_items.sort_custom(sort_ascending)
         print(my_items) # Prints [["Rice", 4], ["Tomato", 5], ["Apple", 9]]
         print(my_items) # Prints [["Rice", 4], ["Tomato", 5], ["Apple", 9]]
-    
+
         # Sort descending, using a lambda function.
         # Sort descending, using a lambda function.
         my_items.sort_custom(func(a, b): return a[1] > b[1])
         my_items.sort_custom(func(a, b): return a[1] > b[1])
         print(my_items) # Prints [["Apple", 9], ["Tomato", 5], ["Rice", 4]]
         print(my_items) # Prints [["Apple", 9], ["Tomato", 5], ["Rice", 4]]
@@ -1553,6 +1555,7 @@ If all searched elements are equal, returns ``true`` if this array's size is gre
 Returns the :ref:`Variant<class_Variant>` element at the specified ``index``. Arrays start at index 0. If ``index`` is greater or equal to ``0``, the element is fetched starting from the beginning of the array. If ``index`` is a negative value, the element is fetched starting from the end. Accessing an array out-of-bounds will cause a run-time error, pausing the project execution if run from the editor.
 Returns the :ref:`Variant<class_Variant>` element at the specified ``index``. Arrays start at index 0. If ``index`` is greater or equal to ``0``, the element is fetched starting from the beginning of the array. If ``index`` is a negative value, the element is fetched starting from the end. Accessing an array out-of-bounds will cause a run-time error, pausing the project execution if run from the editor.
 
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
+.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`

+ 6 - 5
classes/class_arraymesh.rst

@@ -32,13 +32,13 @@ The most basic example is the creation of a single triangle:
     vertices.push_back(Vector3(0, 1, 0))
     vertices.push_back(Vector3(0, 1, 0))
     vertices.push_back(Vector3(1, 0, 0))
     vertices.push_back(Vector3(1, 0, 0))
     vertices.push_back(Vector3(0, 0, 1))
     vertices.push_back(Vector3(0, 0, 1))
-    
+
     # Initialize the ArrayMesh.
     # Initialize the ArrayMesh.
     var arr_mesh = ArrayMesh.new()
     var arr_mesh = ArrayMesh.new()
     var arrays = []
     var arrays = []
     arrays.resize(Mesh.ARRAY_MAX)
     arrays.resize(Mesh.ARRAY_MAX)
     arrays[Mesh.ARRAY_VERTEX] = vertices
     arrays[Mesh.ARRAY_VERTEX] = vertices
-    
+
     # Create the Mesh.
     # Create the Mesh.
     arr_mesh.add_surface_from_arrays(Mesh.PRIMITIVE_TRIANGLES, arrays)
     arr_mesh.add_surface_from_arrays(Mesh.PRIMITIVE_TRIANGLES, arrays)
     var m = MeshInstance3D.new()
     var m = MeshInstance3D.new()
@@ -52,13 +52,13 @@ The most basic example is the creation of a single triangle:
         new Vector3(1, 0, 0),
         new Vector3(1, 0, 0),
         new Vector3(0, 0, 1),
         new Vector3(0, 0, 1),
     ];
     ];
-    
+
     // Initialize the ArrayMesh.
     // Initialize the ArrayMesh.
     var arrMesh = new ArrayMesh();
     var arrMesh = new ArrayMesh();
     Godot.Collections.Array arrays = [];
     Godot.Collections.Array arrays = [];
     arrays.Resize((int)Mesh.ArrayType.Max);
     arrays.Resize((int)Mesh.ArrayType.Max);
     arrays[(int)Mesh.ArrayType.Vertex] = vertices;
     arrays[(int)Mesh.ArrayType.Vertex] = vertices;
-    
+
     // Create the Mesh.
     // Create the Mesh.
     arrMesh.AddSurfaceFromArrays(Mesh.PrimitiveType.Triangles, arrays);
     arrMesh.AddSurfaceFromArrays(Mesh.PrimitiveType.Triangles, arrays);
     var m = new MeshInstance3D();
     var m = new MeshInstance3D();
@@ -165,7 +165,7 @@ Property Descriptions
 - |void| **set_blend_shape_mode**\ (\ value\: :ref:`BlendShapeMode<enum_Mesh_BlendShapeMode>`\ )
 - |void| **set_blend_shape_mode**\ (\ value\: :ref:`BlendShapeMode<enum_Mesh_BlendShapeMode>`\ )
 - :ref:`BlendShapeMode<enum_Mesh_BlendShapeMode>` **get_blend_shape_mode**\ (\ )
 - :ref:`BlendShapeMode<enum_Mesh_BlendShapeMode>` **get_blend_shape_mode**\ (\ )
 
 
-Sets the blend shape mode to one of :ref:`BlendShapeMode<enum_Mesh_BlendShapeMode>`.
+The blend shape mode.
 
 
 .. rst-class:: classref-item-separator
 .. rst-class:: classref-item-separator
 
 
@@ -467,6 +467,7 @@ Sets a name for a given surface.
 	There is currently no description for this method. Please help us by :ref:`contributing one <doc_updating_the_class_reference>`!
 	There is currently no description for this method. Please help us by :ref:`contributing one <doc_updating_the_class_reference>`!
 
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
+.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`

+ 1 - 0
classes/class_arrayoccluder3d.rst

@@ -121,6 +121,7 @@ Method Descriptions
 Sets :ref:`indices<class_ArrayOccluder3D_property_indices>` and :ref:`vertices<class_ArrayOccluder3D_property_vertices>`, while updating the final occluder only once after both values are set.
 Sets :ref:`indices<class_ArrayOccluder3D_property_indices>` and :ref:`vertices<class_ArrayOccluder3D_property_vertices>`, while updating the final occluder only once after both values are set.
 
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
+.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`

+ 1 - 0
classes/class_aspectratiocontainer.rst

@@ -203,6 +203,7 @@ The aspect ratio to enforce on child controls. This is the width divided by the
 The stretch mode used to align child controls.
 The stretch mode used to align child controls.
 
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
+.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`

+ 15 - 7
classes/class_astar2d.rst

@@ -23,6 +23,13 @@ An implementation of the A\* algorithm, used to find the shortest path between t
 
 
 See :ref:`AStar3D<class_AStar3D>` for a more thorough explanation on how to use this class. **AStar2D** is a wrapper for :ref:`AStar3D<class_AStar3D>` that enforces 2D coordinates.
 See :ref:`AStar3D<class_AStar3D>` for a more thorough explanation on how to use this class. **AStar2D** is a wrapper for :ref:`AStar3D<class_AStar3D>` that enforces 2D coordinates.
 
 
+.. rst-class:: classref-introduction-group
+
+Tutorials
+---------
+
+- `Grid-based Navigation with AStarGrid2D Demo <https://godotengine.org/asset-library/asset/2723>`__
+
 .. rst-class:: classref-reftable-group
 .. rst-class:: classref-reftable-group
 
 
 Methods
 Methods
@@ -301,12 +308,12 @@ If there is no valid path to the target, and ``allow_partial_path`` is ``true``,
     astar.add_point(2, Vector2(0, 1), 1) # Default weight is 1
     astar.add_point(2, Vector2(0, 1), 1) # Default weight is 1
     astar.add_point(3, Vector2(1, 1))
     astar.add_point(3, Vector2(1, 1))
     astar.add_point(4, Vector2(2, 0))
     astar.add_point(4, Vector2(2, 0))
-    
+
     astar.connect_points(1, 2, false)
     astar.connect_points(1, 2, false)
     astar.connect_points(2, 3, false)
     astar.connect_points(2, 3, false)
     astar.connect_points(4, 3, false)
     astar.connect_points(4, 3, false)
     astar.connect_points(1, 4, false)
     astar.connect_points(1, 4, false)
-    
+
     var res = astar.get_id_path(1, 3) # Returns [1, 2, 3]
     var res = astar.get_id_path(1, 3) # Returns [1, 2, 3]
 
 
  .. code-tab:: csharp
  .. code-tab:: csharp
@@ -316,7 +323,7 @@ If there is no valid path to the target, and ``allow_partial_path`` is ``true``,
     astar.AddPoint(2, new Vector2(0, 1), 1); // Default weight is 1
     astar.AddPoint(2, new Vector2(0, 1), 1); // Default weight is 1
     astar.AddPoint(3, new Vector2(1, 1));
     astar.AddPoint(3, new Vector2(1, 1));
     astar.AddPoint(4, new Vector2(2, 0));
     astar.AddPoint(4, new Vector2(2, 0));
-    
+
     astar.ConnectPoints(1, 2, false);
     astar.ConnectPoints(1, 2, false);
     astar.ConnectPoints(2, 3, false);
     astar.ConnectPoints(2, 3, false);
     astar.ConnectPoints(4, 3, false);
     astar.ConnectPoints(4, 3, false);
@@ -361,10 +368,10 @@ Returns an array with the IDs of the points that form the connection with the gi
     astar.add_point(2, Vector2(0, 1))
     astar.add_point(2, Vector2(0, 1))
     astar.add_point(3, Vector2(1, 1))
     astar.add_point(3, Vector2(1, 1))
     astar.add_point(4, Vector2(2, 0))
     astar.add_point(4, Vector2(2, 0))
-    
+
     astar.connect_points(1, 2, true)
     astar.connect_points(1, 2, true)
     astar.connect_points(1, 3, true)
     astar.connect_points(1, 3, true)
-    
+
     var neighbors = astar.get_point_connections(1) # Returns [2, 3]
     var neighbors = astar.get_point_connections(1) # Returns [2, 3]
 
 
  .. code-tab:: csharp
  .. code-tab:: csharp
@@ -374,10 +381,10 @@ Returns an array with the IDs of the points that form the connection with the gi
     astar.AddPoint(2, new Vector2(0, 1));
     astar.AddPoint(2, new Vector2(0, 1));
     astar.AddPoint(3, new Vector2(1, 1));
     astar.AddPoint(3, new Vector2(1, 1));
     astar.AddPoint(4, new Vector2(2, 0));
     astar.AddPoint(4, new Vector2(2, 0));
-    
+
     astar.ConnectPoints(1, 2, true);
     astar.ConnectPoints(1, 2, true);
     astar.ConnectPoints(1, 3, true);
     astar.ConnectPoints(1, 3, true);
-    
+
     long[] neighbors = astar.GetPointConnections(1); // Returns [2, 3]
     long[] neighbors = astar.GetPointConnections(1); // Returns [2, 3]
 
 
 
 
@@ -533,6 +540,7 @@ Sets the ``position`` for the point with the given ``id``.
 Sets the ``weight_scale`` for the point with the given ``id``. The ``weight_scale`` is multiplied by the result of :ref:`_compute_cost()<class_AStar2D_private_method__compute_cost>` when determining the overall cost of traveling across a segment from a neighboring point to this point.
 Sets the ``weight_scale`` for the point with the given ``id``. The ``weight_scale`` is multiplied by the result of :ref:`_compute_cost()<class_AStar2D_private_method__compute_cost>` when determining the overall cost of traveling across a segment from a neighboring point to this point.
 
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
+.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`

+ 11 - 10
classes/class_astar3d.rst

@@ -34,12 +34,12 @@ It is also possible to use non-Euclidean distances. To do so, create a script th
 
 
     class_name MyAStar3D
     class_name MyAStar3D
     extends AStar3D
     extends AStar3D
-    
+
     func _compute_cost(u, v):
     func _compute_cost(u, v):
         var u_pos = get_point_position(u)
         var u_pos = get_point_position(u)
         var v_pos = get_point_position(v)
         var v_pos = get_point_position(v)
         return abs(u_pos.x - v_pos.x) + abs(u_pos.y - v_pos.y) + abs(u_pos.z - v_pos.z)
         return abs(u_pos.x - v_pos.x) + abs(u_pos.y - v_pos.y) + abs(u_pos.z - v_pos.z)
-    
+
     func _estimate_cost(u, v):
     func _estimate_cost(u, v):
         var u_pos = get_point_position(u)
         var u_pos = get_point_position(u)
         var v_pos = get_point_position(v)
         var v_pos = get_point_position(v)
@@ -48,7 +48,7 @@ It is also possible to use non-Euclidean distances. To do so, create a script th
  .. code-tab:: csharp
  .. code-tab:: csharp
 
 
     using Godot;
     using Godot;
-    
+
     [GlobalClass]
     [GlobalClass]
     public partial class MyAStar3D : AStar3D
     public partial class MyAStar3D : AStar3D
     {
     {
@@ -56,10 +56,10 @@ It is also possible to use non-Euclidean distances. To do so, create a script th
         {
         {
             Vector3 fromPoint = GetPointPosition(fromId);
             Vector3 fromPoint = GetPointPosition(fromId);
             Vector3 toPoint = GetPointPosition(toId);
             Vector3 toPoint = GetPointPosition(toId);
-    
+
             return Mathf.Abs(fromPoint.X - toPoint.X) + Mathf.Abs(fromPoint.Y - toPoint.Y) + Mathf.Abs(fromPoint.Z - toPoint.Z);
             return Mathf.Abs(fromPoint.X - toPoint.X) + Mathf.Abs(fromPoint.Y - toPoint.Y) + Mathf.Abs(fromPoint.Z - toPoint.Z);
         }
         }
-    
+
         public override float _EstimateCost(long fromId, long toId)
         public override float _EstimateCost(long fromId, long toId)
         {
         {
             Vector3 fromPoint = GetPointPosition(fromId);
             Vector3 fromPoint = GetPointPosition(fromId);
@@ -352,12 +352,12 @@ If there is no valid path to the target, and ``allow_partial_path`` is ``true``,
     astar.add_point(2, Vector3(0, 1, 0), 1) # Default weight is 1
     astar.add_point(2, Vector3(0, 1, 0), 1) # Default weight is 1
     astar.add_point(3, Vector3(1, 1, 0))
     astar.add_point(3, Vector3(1, 1, 0))
     astar.add_point(4, Vector3(2, 0, 0))
     astar.add_point(4, Vector3(2, 0, 0))
-    
+
     astar.connect_points(1, 2, false)
     astar.connect_points(1, 2, false)
     astar.connect_points(2, 3, false)
     astar.connect_points(2, 3, false)
     astar.connect_points(4, 3, false)
     astar.connect_points(4, 3, false)
     astar.connect_points(1, 4, false)
     astar.connect_points(1, 4, false)
-    
+
     var res = astar.get_id_path(1, 3) # Returns [1, 2, 3]
     var res = astar.get_id_path(1, 3) # Returns [1, 2, 3]
 
 
  .. code-tab:: csharp
  .. code-tab:: csharp
@@ -411,10 +411,10 @@ Returns an array with the IDs of the points that form the connection with the gi
     astar.add_point(2, Vector3(0, 1, 0))
     astar.add_point(2, Vector3(0, 1, 0))
     astar.add_point(3, Vector3(1, 1, 0))
     astar.add_point(3, Vector3(1, 1, 0))
     astar.add_point(4, Vector3(2, 0, 0))
     astar.add_point(4, Vector3(2, 0, 0))
-    
+
     astar.connect_points(1, 2, true)
     astar.connect_points(1, 2, true)
     astar.connect_points(1, 3, true)
     astar.connect_points(1, 3, true)
-    
+
     var neighbors = astar.get_point_connections(1) # Returns [2, 3]
     var neighbors = astar.get_point_connections(1) # Returns [2, 3]
 
 
  .. code-tab:: csharp
  .. code-tab:: csharp
@@ -426,7 +426,7 @@ Returns an array with the IDs of the points that form the connection with the gi
     astar.AddPoint(4, new Vector3(2, 0, 0));
     astar.AddPoint(4, new Vector3(2, 0, 0));
     astar.ConnectPoints(1, 2, true);
     astar.ConnectPoints(1, 2, true);
     astar.ConnectPoints(1, 3, true);
     astar.ConnectPoints(1, 3, true);
-    
+
     long[] neighbors = astar.GetPointConnections(1); // Returns [2, 3]
     long[] neighbors = astar.GetPointConnections(1); // Returns [2, 3]
 
 
 
 
@@ -582,6 +582,7 @@ Sets the ``position`` for the point with the given ``id``.
 Sets the ``weight_scale`` for the point with the given ``id``. The ``weight_scale`` is multiplied by the result of :ref:`_compute_cost()<class_AStar3D_private_method__compute_cost>` when determining the overall cost of traveling across a segment from a neighboring point to this point.
 Sets the ``weight_scale`` for the point with the given ``id``. The ``weight_scale`` is multiplied by the result of :ref:`_compute_cost()<class_AStar3D_private_method__compute_cost>` when determining the overall cost of traveling across a segment from a neighboring point to this point.
 
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
+.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`

+ 8 - 0
classes/class_astargrid2d.rst

@@ -48,6 +48,13 @@ To use **AStarGrid2D**, you only need to set the :ref:`region<class_AStarGrid2D_
 
 
 To remove a point from the pathfinding grid, it must be set as "solid" with :ref:`set_point_solid()<class_AStarGrid2D_method_set_point_solid>`.
 To remove a point from the pathfinding grid, it must be set as "solid" with :ref:`set_point_solid()<class_AStarGrid2D_method_set_point_solid>`.
 
 
+.. rst-class:: classref-introduction-group
+
+Tutorials
+---------
+
+- `Grid-based Navigation with AStarGrid2D Demo <https://godotengine.org/asset-library/asset/2723>`__
+
 .. rst-class:: classref-reftable-group
 .. rst-class:: classref-reftable-group
 
 
 Properties
 Properties
@@ -692,6 +699,7 @@ Updates the internal state of the grid according to the parameters to prepare it
 \ **Note:** All point data (solidity and weight scale) will be cleared.
 \ **Note:** All point data (solidity and weight scale) will be cleared.
 
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
+.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`

+ 1 - 0
classes/class_atlastexture.rst

@@ -119,6 +119,7 @@ The margin around the :ref:`region<class_AtlasTexture_property_region>`. Useful
 The region used to draw the :ref:`atlas<class_AtlasTexture_property_atlas>`. If either dimension of the region's size is ``0``, the value from :ref:`atlas<class_AtlasTexture_property_atlas>` size will be used for that axis instead.
 The region used to draw the :ref:`atlas<class_AtlasTexture_property_atlas>`. If either dimension of the region's size is ``0``, the value from :ref:`atlas<class_AtlasTexture_property_atlas>` size will be used for that axis instead.
 
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
+.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`

+ 1 - 0
classes/class_audiobuslayout.rst

@@ -22,6 +22,7 @@ Description
 Stores position, muting, solo, bypass, effects, effect position, volume, and the connections between buses. See :ref:`AudioServer<class_AudioServer>` for usage.
 Stores position, muting, solo, bypass, effects, effect position, volume, and the connections between buses. See :ref:`AudioServer<class_AudioServer>` for usage.
 
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
+.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`

+ 8 - 7
classes/class_audioeffect.rst

@@ -42,9 +42,9 @@ Methods
 .. table::
 .. table::
    :widths: auto
    :widths: auto
 
 
-   +-------------------------------------------------------+------------------------------------------------------------------------------------+
-   | :ref:`AudioEffectInstance<class_AudioEffectInstance>` | :ref:`_instantiate<class_AudioEffect_private_method__instantiate>`\ (\ ) |virtual| |
-   +-------------------------------------------------------+------------------------------------------------------------------------------------+
+   +-------------------------------------------------------+-----------------------------------------------------------------------------------------------+
+   | :ref:`AudioEffectInstance<class_AudioEffectInstance>` | :ref:`_instantiate<class_AudioEffect_private_method__instantiate>`\ (\ ) |virtual| |required| |
+   +-------------------------------------------------------+-----------------------------------------------------------------------------------------------+
 
 
 .. rst-class:: classref-section-separator
 .. rst-class:: classref-section-separator
 
 
@@ -59,25 +59,26 @@ Method Descriptions
 
 
 .. rst-class:: classref-method
 .. rst-class:: classref-method
 
 
-:ref:`AudioEffectInstance<class_AudioEffectInstance>` **_instantiate**\ (\ ) |virtual| :ref:`🔗<class_AudioEffect_private_method__instantiate>`
+:ref:`AudioEffectInstance<class_AudioEffectInstance>` **_instantiate**\ (\ ) |virtual| |required| :ref:`🔗<class_AudioEffect_private_method__instantiate>`
 
 
 Override this method to customize the :ref:`AudioEffectInstance<class_AudioEffectInstance>` created when this effect is applied on a bus in the editor's Audio panel, or through :ref:`AudioServer.add_bus_effect()<class_AudioServer_method_add_bus_effect>`.
 Override this method to customize the :ref:`AudioEffectInstance<class_AudioEffectInstance>` created when this effect is applied on a bus in the editor's Audio panel, or through :ref:`AudioServer.add_bus_effect()<class_AudioServer_method_add_bus_effect>`.
 
 
 ::
 ::
 
 
     extends AudioEffect
     extends AudioEffect
-    
+
     @export var strength = 4.0
     @export var strength = 4.0
-    
+
     func _instantiate():
     func _instantiate():
         var effect = CustomAudioEffectInstance.new()
         var effect = CustomAudioEffectInstance.new()
         effect.base = self
         effect.base = self
-    
+
         return effect
         return effect
 
 
 \ **Note:** It is recommended to keep a reference to the original **AudioEffect** in the new instance. Depending on the implementation this allows the effect instance to listen for changes at run-time and be modified accordingly.
 \ **Note:** It is recommended to keep a reference to the original **AudioEffect** in the new instance. Depending on the implementation this allows the effect instance to listen for changes at run-time and be modified accordingly.
 
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
+.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`

+ 1 - 0
classes/class_audioeffectamplify.rst

@@ -84,6 +84,7 @@ Amount of amplification as a linear value.
 \ **Note:** This member modifies :ref:`volume_db<class_AudioEffectAmplify_property_volume_db>` for convenience. The returned value is equivalent to the result of :ref:`@GlobalScope.db_to_linear()<class_@GlobalScope_method_db_to_linear>` on :ref:`volume_db<class_AudioEffectAmplify_property_volume_db>`. Setting this member is equivalent to setting :ref:`volume_db<class_AudioEffectAmplify_property_volume_db>` to the result of :ref:`@GlobalScope.linear_to_db()<class_@GlobalScope_method_linear_to_db>` on a value.
 \ **Note:** This member modifies :ref:`volume_db<class_AudioEffectAmplify_property_volume_db>` for convenience. The returned value is equivalent to the result of :ref:`@GlobalScope.db_to_linear()<class_@GlobalScope_method_db_to_linear>` on :ref:`volume_db<class_AudioEffectAmplify_property_volume_db>`. Setting this member is equivalent to setting :ref:`volume_db<class_AudioEffectAmplify_property_volume_db>` to the result of :ref:`@GlobalScope.linear_to_db()<class_@GlobalScope_method_linear_to_db>` on a value.
 
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
+.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`

+ 1 - 0
classes/class_audioeffectbandlimitfilter.rst

@@ -29,6 +29,7 @@ Tutorials
 - :doc:`Audio buses <../tutorials/audio/audio_buses>`
 - :doc:`Audio buses <../tutorials/audio/audio_buses>`
 
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
+.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`

+ 1 - 0
classes/class_audioeffectbandpassfilter.rst

@@ -29,6 +29,7 @@ Tutorials
 - :doc:`Audio buses <../tutorials/audio/audio_buses>`
 - :doc:`Audio buses <../tutorials/audio/audio_buses>`
 
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
+.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`

+ 1 - 0
classes/class_audioeffectcapture.rst

@@ -186,6 +186,7 @@ Returns the number of frames available to read using :ref:`get_buffer()<class_Au
 Returns the number of audio frames inserted from the audio bus.
 Returns the number of audio frames inserted from the audio bus.
 
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
+.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`

+ 1 - 0
classes/class_audioeffectchorus.rst

@@ -764,6 +764,7 @@ Method Descriptions
 	There is currently no description for this method. Please help us by :ref:`contributing one <doc_updating_the_class_reference>`!
 	There is currently no description for this method. Please help us by :ref:`contributing one <doc_updating_the_class_reference>`!
 
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
+.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`

+ 2 - 1
classes/class_audioeffectcompressor.rst

@@ -25,7 +25,7 @@ Dynamic range compressor reduces the level of the sound when the amplitude goes
 
 
 Compressor has many uses in the mix:
 Compressor has many uses in the mix:
 
 
-- In the Master bus to compress the whole output (although an :ref:`AudioEffectLimiter<class_AudioEffectLimiter>` is probably better).
+- In the Master bus to compress the whole output (although an :ref:`AudioEffectHardLimiter<class_AudioEffectHardLimiter>` is probably better).
 
 
 - In voice channels to ensure they sound as balanced as possible.
 - In voice channels to ensure they sound as balanced as possible.
 
 
@@ -189,6 +189,7 @@ Reduce the sound level using another audio bus for threshold detection.
 The level above which compression is applied to the audio. Value can range from -60 to 0.
 The level above which compression is applied to the audio. Value can range from -60 to 0.
 
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
+.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`

+ 1 - 0
classes/class_audioeffectdelay.rst

@@ -293,6 +293,7 @@ Sound level for the second tap.
 Pan position for the second tap. Value can range from -1 (fully left) to 1 (fully right).
 Pan position for the second tap. Value can range from -1 (fully left) to 1 (fully right).
 
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
+.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`

+ 1 - 0
classes/class_audioeffectdistortion.rst

@@ -202,6 +202,7 @@ Increases or decreases the volume after the effect, in decibels. Value can range
 Increases or decreases the volume before the effect, in decibels. Value can range from -60 to 60.
 Increases or decreases the volume before the effect, in decibels. Value can range from -60 to 60.
 
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
+.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`

+ 1 - 0
classes/class_audioeffecteq.rst

@@ -90,6 +90,7 @@ Returns the band's gain at the specified index, in dB.
 Sets band's gain at the specified index, in dB.
 Sets band's gain at the specified index, in dB.
 
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
+.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`

+ 1 - 0
classes/class_audioeffecteq10.rst

@@ -53,6 +53,7 @@ Tutorials
 - :doc:`Audio buses <../tutorials/audio/audio_buses>`
 - :doc:`Audio buses <../tutorials/audio/audio_buses>`
 
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
+.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`

+ 1 - 0
classes/class_audioeffecteq21.rst

@@ -75,6 +75,7 @@ Tutorials
 - :doc:`Audio buses <../tutorials/audio/audio_buses>`
 - :doc:`Audio buses <../tutorials/audio/audio_buses>`
 
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
+.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`

+ 1 - 0
classes/class_audioeffecteq6.rst

@@ -45,6 +45,7 @@ Tutorials
 - :doc:`Audio buses <../tutorials/audio/audio_buses>`
 - :doc:`Audio buses <../tutorials/audio/audio_buses>`
 
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
+.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`

+ 1 - 0
classes/class_audioeffectfilter.rst

@@ -169,6 +169,7 @@ Gain amount of the frequencies after the filter.
 Amount of boost in the frequency range near the cutoff frequency.
 Amount of boost in the frequency range near the cutoff frequency.
 
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
+.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`

+ 1 - 0
classes/class_audioeffecthardlimiter.rst

@@ -103,6 +103,7 @@ Gain to apply before limiting, in decibels.
 Time it takes in seconds for the gain reduction to fully release.
 Time it takes in seconds for the gain reduction to fully release.
 
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
+.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`

+ 1 - 0
classes/class_audioeffecthighpassfilter.rst

@@ -29,6 +29,7 @@ Tutorials
 - :doc:`Audio buses <../tutorials/audio/audio_buses>`
 - :doc:`Audio buses <../tutorials/audio/audio_buses>`
 
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
+.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`

+ 1 - 0
classes/class_audioeffecthighshelffilter.rst

@@ -29,6 +29,7 @@ Tutorials
 - :doc:`Audio buses <../tutorials/audio/audio_buses>`
 - :doc:`Audio buses <../tutorials/audio/audio_buses>`
 
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
+.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`

+ 7 - 6
classes/class_audioeffectinstance.rst

@@ -38,11 +38,11 @@ Methods
 .. table::
 .. table::
    :widths: auto
    :widths: auto
 
 
-   +-------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-   | |void|                  | :ref:`_process<class_AudioEffectInstance_private_method__process>`\ (\ src_buffer\: ``const void*``, dst_buffer\: ``AudioFrame*``, frame_count\: :ref:`int<class_int>`\ ) |virtual| |
-   +-------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-   | :ref:`bool<class_bool>` | :ref:`_process_silence<class_AudioEffectInstance_private_method__process_silence>`\ (\ ) |virtual| |const|                                                                          |
-   +-------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   +-------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | |void|                  | :ref:`_process<class_AudioEffectInstance_private_method__process>`\ (\ src_buffer\: ``const void*``, dst_buffer\: ``AudioFrame*``, frame_count\: :ref:`int<class_int>`\ ) |virtual| |required| |
+   +-------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>` | :ref:`_process_silence<class_AudioEffectInstance_private_method__process_silence>`\ (\ ) |virtual| |const|                                                                                     |
+   +-------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 
 
 .. rst-class:: classref-section-separator
 .. rst-class:: classref-section-separator
 
 
@@ -57,7 +57,7 @@ Method Descriptions
 
 
 .. rst-class:: classref-method
 .. rst-class:: classref-method
 
 
-|void| **_process**\ (\ src_buffer\: ``const void*``, dst_buffer\: ``AudioFrame*``, frame_count\: :ref:`int<class_int>`\ ) |virtual| :ref:`🔗<class_AudioEffectInstance_private_method__process>`
+|void| **_process**\ (\ src_buffer\: ``const void*``, dst_buffer\: ``AudioFrame*``, frame_count\: :ref:`int<class_int>`\ ) |virtual| |required| :ref:`🔗<class_AudioEffectInstance_private_method__process>`
 
 
 Called by the :ref:`AudioServer<class_AudioServer>` to process this effect. When :ref:`_process_silence()<class_AudioEffectInstance_private_method__process_silence>` is not overridden or it returns ``false``, this method is called only when the bus is active.
 Called by the :ref:`AudioServer<class_AudioServer>` to process this effect. When :ref:`_process_silence()<class_AudioEffectInstance_private_method__process_silence>` is not overridden or it returns ``false``, this method is called only when the bus is active.
 
 
@@ -78,6 +78,7 @@ Override this method to customize the processing behavior of this effect instanc
 Should return ``true`` to force the :ref:`AudioServer<class_AudioServer>` to always call :ref:`_process()<class_AudioEffectInstance_private_method__process>`, even if the bus has been muted or cannot otherwise be heard.
 Should return ``true`` to force the :ref:`AudioServer<class_AudioServer>` to always call :ref:`_process()<class_AudioEffectInstance_private_method__process>`, even if the bus has been muted or cannot otherwise be heard.
 
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
+.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`

+ 1 - 0
classes/class_audioeffectlimiter.rst

@@ -126,6 +126,7 @@ Applies a gain to the limited waves, in decibels. Value can range from 0 to 6.
 Threshold from which the limiter begins to be active, in decibels. Value can range from -30 to 0.
 Threshold from which the limiter begins to be active, in decibels. Value can range from -30 to 0.
 
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
+.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`

+ 1 - 0
classes/class_audioeffectlowpassfilter.rst

@@ -29,6 +29,7 @@ Tutorials
 - :doc:`Audio buses <../tutorials/audio/audio_buses>`
 - :doc:`Audio buses <../tutorials/audio/audio_buses>`
 
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
+.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`

+ 1 - 0
classes/class_audioeffectlowshelffilter.rst

@@ -29,6 +29,7 @@ Tutorials
 - :doc:`Audio buses <../tutorials/audio/audio_buses>`
 - :doc:`Audio buses <../tutorials/audio/audio_buses>`
 
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
+.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`

+ 1 - 0
classes/class_audioeffectnotchfilter.rst

@@ -29,6 +29,7 @@ Tutorials
 - :doc:`Audio buses <../tutorials/audio/audio_buses>`
 - :doc:`Audio buses <../tutorials/audio/audio_buses>`
 
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
+.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`

+ 1 - 0
classes/class_audioeffectpanner.rst

@@ -63,6 +63,7 @@ Property Descriptions
 Pan position. Value can range from -1 (fully left) to 1 (fully right).
 Pan position. Value can range from -1 (fully left) to 1 (fully right).
 
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
+.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`

+ 1 - 0
classes/class_audioeffectphaser.rst

@@ -141,6 +141,7 @@ Determines the minimum frequency affected by the LFO modulations, in Hz. Value c
 Adjusts the rate in Hz at which the effect sweeps up and down across the frequency range.
 Adjusts the rate in Hz at which the effect sweeps up and down across the frequency range.
 
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
+.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`

+ 1 - 0
classes/class_audioeffectpitchshift.rst

@@ -166,6 +166,7 @@ The oversampling factor to use. Higher values result in better quality, but are
 The pitch scale to use. ``1.0`` is the default pitch and plays sounds unaffected. :ref:`pitch_scale<class_AudioEffectPitchShift_property_pitch_scale>` can range from ``0.0`` (infinitely low pitch, inaudible) to ``16`` (16 times higher than the initial pitch).
 The pitch scale to use. ``1.0`` is the default pitch and plays sounds unaffected. :ref:`pitch_scale<class_AudioEffectPitchShift_property_pitch_scale>` can range from ``0.0`` (infinitely low pitch, inaudible) to ``16`` (16 times higher than the initial pitch).
 
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
+.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`

+ 2 - 1
classes/class_audioeffectrecord.rst

@@ -84,7 +84,7 @@ Property Descriptions
 - |void| **set_format**\ (\ value\: :ref:`Format<enum_AudioStreamWAV_Format>`\ )
 - |void| **set_format**\ (\ value\: :ref:`Format<enum_AudioStreamWAV_Format>`\ )
 - :ref:`Format<enum_AudioStreamWAV_Format>` **get_format**\ (\ )
 - :ref:`Format<enum_AudioStreamWAV_Format>` **get_format**\ (\ )
 
 
-Specifies the format in which the sample will be recorded. See :ref:`Format<enum_AudioStreamWAV_Format>` for available formats.
+Specifies the format in which the sample will be recorded.
 
 
 .. rst-class:: classref-section-separator
 .. rst-class:: classref-section-separator
 
 
@@ -128,6 +128,7 @@ Returns whether the recording is active or not.
 If ``true``, the sound will be recorded. Note that restarting the recording will remove the previously recorded sample.
 If ``true``, the sound will be recorded. Note that restarting the recording will remove the previously recorded sample.
 
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
+.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`

+ 1 - 0
classes/class_audioeffectreverb.rst

@@ -198,6 +198,7 @@ Widens or narrows the stereo image of the reverb tail. 1 means fully widens. Val
 Output percent of modified sound. At 0, only original sound is outputted. Value can range from 0 to 1.
 Output percent of modified sound. At 0, only original sound is outputted. Value can range from 0 to 1.
 
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
+.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`

+ 1 - 0
classes/class_audioeffectspectrumanalyzer.rst

@@ -170,6 +170,7 @@ The size of the `Fast Fourier transform <https://en.wikipedia.org/wiki/Fast_Four
 	There is currently no description for this property. Please help us by :ref:`contributing one <doc_updating_the_class_reference>`!
 	There is currently no description for this property. Please help us by :ref:`contributing one <doc_updating_the_class_reference>`!
 
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
+.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`

+ 2 - 1
classes/class_audioeffectspectrumanalyzerinstance.rst

@@ -90,9 +90,10 @@ Method Descriptions
 
 
 Returns the magnitude of the frequencies from ``from_hz`` to ``to_hz`` in linear energy as a Vector2. The ``x`` component of the return value represents the left stereo channel, and ``y`` represents the right channel.
 Returns the magnitude of the frequencies from ``from_hz`` to ``to_hz`` in linear energy as a Vector2. The ``x`` component of the return value represents the left stereo channel, and ``y`` represents the right channel.
 
 
-\ ``mode`` determines how the frequency range will be processed. See :ref:`MagnitudeMode<enum_AudioEffectSpectrumAnalyzerInstance_MagnitudeMode>`.
+\ ``mode`` determines how the frequency range will be processed.
 
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
+.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`

+ 1 - 0
classes/class_audioeffectstereoenhance.rst

@@ -101,6 +101,7 @@ Widens sound stage through phase shifting in conjunction with :ref:`time_pullout
 Widens sound stage through phase shifting in conjunction with :ref:`surround<class_AudioEffectStereoEnhance_property_surround>`. Just delays the right channel if :ref:`surround<class_AudioEffectStereoEnhance_property_surround>` is 0.
 Widens sound stage through phase shifting in conjunction with :ref:`surround<class_AudioEffectStereoEnhance_property_surround>`. Just delays the right channel if :ref:`surround<class_AudioEffectStereoEnhance_property_surround>` is 0.
 
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
+.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`

+ 1 - 0
classes/class_audiolistener2d.rst

@@ -86,6 +86,7 @@ Makes the **AudioListener2D** active, setting it as the hearing point for the so
 This method will have no effect if the **AudioListener2D** is not added to :ref:`SceneTree<class_SceneTree>`.
 This method will have no effect if the **AudioListener2D** is not added to :ref:`SceneTree<class_SceneTree>`.
 
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
+.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`

+ 1 - 0
classes/class_audiolistener3d.rst

@@ -98,6 +98,7 @@ Returns ``true`` if the listener was made current using :ref:`make_current()<cla
 Enables the listener. This will override the current camera's listener.
 Enables the listener. This will override the current camera's listener.
 
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
+.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`

+ 1 - 0
classes/class_audiosample.rst

@@ -24,6 +24,7 @@ Description
 Base class for audio samples.
 Base class for audio samples.
 
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
+.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`

+ 1 - 0
classes/class_audiosampleplayback.rst

@@ -24,6 +24,7 @@ Description
 Meta class for playing back audio samples.
 Meta class for playing back audio samples.
 
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
+.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`

+ 1 - 0
classes/class_audioserver.rst

@@ -923,6 +923,7 @@ Swaps the position of two effects in bus ``bus_idx``.
 Unlocks the audio driver's main loop. (After locking it, you should always unlock it.)
 Unlocks the audio driver's main loop. (After locking it, you should always unlock it.)
 
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
+.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`

+ 17 - 0
classes/class_audiostream.rst

@@ -57,6 +57,8 @@ Methods
    +------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------+
    +------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------+
    | :ref:`String<class_String>`                                      | :ref:`_get_stream_name<class_AudioStream_private_method__get_stream_name>`\ (\ ) |virtual| |const|           |
    | :ref:`String<class_String>`                                      | :ref:`_get_stream_name<class_AudioStream_private_method__get_stream_name>`\ (\ ) |virtual| |const|           |
    +------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------+
    +------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------+
+   | :ref:`Dictionary<class_Dictionary>`                              | :ref:`_get_tags<class_AudioStream_private_method__get_tags>`\ (\ ) |virtual| |const|                         |
+   +------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------+
    | :ref:`bool<class_bool>`                                          | :ref:`_has_loop<class_AudioStream_private_method__has_loop>`\ (\ ) |virtual| |const|                         |
    | :ref:`bool<class_bool>`                                          | :ref:`_has_loop<class_AudioStream_private_method__has_loop>`\ (\ ) |virtual| |const|                         |
    +------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------+
    +------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------+
    | :ref:`AudioStreamPlayback<class_AudioStreamPlayback>`            | :ref:`_instantiate_playback<class_AudioStream_private_method__instantiate_playback>`\ (\ ) |virtual| |const| |
    | :ref:`AudioStreamPlayback<class_AudioStreamPlayback>`            | :ref:`_instantiate_playback<class_AudioStream_private_method__instantiate_playback>`\ (\ ) |virtual| |const| |
@@ -178,6 +180,20 @@ Override this method to customize the name assigned to this audio stream. Unused
 
 
 ----
 ----
 
 
+.. _class_AudioStream_private_method__get_tags:
+
+.. rst-class:: classref-method
+
+:ref:`Dictionary<class_Dictionary>` **_get_tags**\ (\ ) |virtual| |const| :ref:`🔗<class_AudioStream_private_method__get_tags>`
+
+Override this method to customize the tags for this audio stream. Should return a :ref:`Dictionary<class_Dictionary>` of strings with the tag as the key and its content as the value.
+
+Commonly used tags include ``title``, ``artist``, ``album``, ``tracknumber``, and ``date``.
+
+.. rst-class:: classref-item-separator
+
+----
+
 .. _class_AudioStream_private_method__has_loop:
 .. _class_AudioStream_private_method__has_loop:
 
 
 .. rst-class:: classref-method
 .. rst-class:: classref-method
@@ -287,6 +303,7 @@ Returns ``true`` if the stream is a collection of other streams, ``false`` other
 Returns ``true`` if this audio stream only supports one channel (*monophony*), or ``false`` if the audio stream supports two or more channels (*polyphony*).
 Returns ``true`` if this audio stream only supports one channel (*monophony*), or ``false`` if the audio stream supports two or more channels (*polyphony*).
 
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
+.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`

+ 8 - 7
classes/class_audiostreamgenerator.rst

@@ -32,16 +32,16 @@ Here's a sample on how to use it to generate a sine wave:
     @onready var sample_hz = $AudioStreamPlayer.stream.mix_rate
     @onready var sample_hz = $AudioStreamPlayer.stream.mix_rate
     var pulse_hz = 440.0 # The frequency of the sound wave.
     var pulse_hz = 440.0 # The frequency of the sound wave.
     var phase = 0.0
     var phase = 0.0
-    
+
     func _ready():
     func _ready():
         $AudioStreamPlayer.play()
         $AudioStreamPlayer.play()
         playback = $AudioStreamPlayer.get_stream_playback()
         playback = $AudioStreamPlayer.get_stream_playback()
         fill_buffer()
         fill_buffer()
-    
+
     func fill_buffer():
     func fill_buffer():
         var increment = pulse_hz / sample_hz
         var increment = pulse_hz / sample_hz
         var frames_available = playback.get_frames_available()
         var frames_available = playback.get_frames_available()
-    
+
         for i in range(frames_available):
         for i in range(frames_available):
             playback.push_frame(Vector2.ONE * sin(phase * TAU))
             playback.push_frame(Vector2.ONE * sin(phase * TAU))
             phase = fmod(phase + increment, 1.0)
             phase = fmod(phase + increment, 1.0)
@@ -49,12 +49,12 @@ Here's a sample on how to use it to generate a sine wave:
  .. code-tab:: csharp
  .. code-tab:: csharp
 
 
     [Export] public AudioStreamPlayer Player { get; set; }
     [Export] public AudioStreamPlayer Player { get; set; }
-    
+
     private AudioStreamGeneratorPlayback _playback; // Will hold the AudioStreamGeneratorPlayback.
     private AudioStreamGeneratorPlayback _playback; // Will hold the AudioStreamGeneratorPlayback.
     private float _sampleHz;
     private float _sampleHz;
     private float _pulseHz = 440.0f; // The frequency of the sound wave.
     private float _pulseHz = 440.0f; // The frequency of the sound wave.
     private double phase = 0.0;
     private double phase = 0.0;
-    
+
     public override void _Ready()
     public override void _Ready()
     {
     {
         if (Player.Stream is AudioStreamGenerator generator) // Type as a generator to access MixRate.
         if (Player.Stream is AudioStreamGenerator generator) // Type as a generator to access MixRate.
@@ -65,12 +65,12 @@ Here's a sample on how to use it to generate a sine wave:
             FillBuffer();
             FillBuffer();
         }
         }
     }
     }
-    
+
     public void FillBuffer()
     public void FillBuffer()
     {
     {
         float increment = _pulseHz / _sampleHz;
         float increment = _pulseHz / _sampleHz;
         int framesAvailable = _playback.GetFramesAvailable();
         int framesAvailable = _playback.GetFramesAvailable();
-    
+
         for (int i = 0; i < framesAvailable; i++)
         for (int i = 0; i < framesAvailable; i++)
         {
         {
             _playback.PushFrame(Vector2.One * (float)Mathf.Sin(phase * Mathf.Tau));
             _playback.PushFrame(Vector2.One * (float)Mathf.Sin(phase * Mathf.Tau));
@@ -221,6 +221,7 @@ According to the `Nyquist-Shannon sampling theorem <https://en.wikipedia.org/wik
 Mixing rate mode. If set to :ref:`MIX_RATE_CUSTOM<class_AudioStreamGenerator_constant_MIX_RATE_CUSTOM>`, :ref:`mix_rate<class_AudioStreamGenerator_property_mix_rate>` is used, otherwise current :ref:`AudioServer<class_AudioServer>` mixing rate is used.
 Mixing rate mode. If set to :ref:`MIX_RATE_CUSTOM<class_AudioStreamGenerator_constant_MIX_RATE_CUSTOM>`, :ref:`mix_rate<class_AudioStreamGenerator_property_mix_rate>` is used, otherwise current :ref:`AudioServer<class_AudioServer>` mixing rate is used.
 
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
+.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`

+ 1 - 0
classes/class_audiostreamgeneratorplayback.rst

@@ -130,6 +130,7 @@ Pushes several audio data frames to the buffer. This is usually more efficient t
 Pushes a single audio data frame to the buffer. This is usually less efficient than :ref:`push_buffer()<class_AudioStreamGeneratorPlayback_method_push_buffer>` in C# and compiled languages via GDExtension, but :ref:`push_frame()<class_AudioStreamGeneratorPlayback_method_push_frame>` may be *more* efficient in GDScript.
 Pushes a single audio data frame to the buffer. This is usually less efficient than :ref:`push_buffer()<class_AudioStreamGeneratorPlayback_method_push_buffer>` in C# and compiled languages via GDExtension, but :ref:`push_frame()<class_AudioStreamGeneratorPlayback_method_push_frame>` may be *more* efficient in GDScript.
 
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
+.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`

+ 1 - 0
classes/class_audiostreaminteractive.rst

@@ -546,6 +546,7 @@ Set the name of the current clip (for easier identification).
 Set the :ref:`AudioStream<class_AudioStream>` associated with the current clip.
 Set the :ref:`AudioStream<class_AudioStream>` associated with the current clip.
 
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
+.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`

+ 1 - 0
classes/class_audiostreammicrophone.rst

@@ -33,6 +33,7 @@ Tutorials
 - `Audio Mic Record Demo <https://github.com/godotengine/godot-demo-projects/tree/master/audio/mic_record>`__
 - `Audio Mic Record Demo <https://github.com/godotengine/godot-demo-projects/tree/master/audio/mic_record>`__
 
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
+.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`

+ 1 - 0
classes/class_audiostreammp3.rst

@@ -229,6 +229,7 @@ Creates a new **AudioStreamMP3** instance from the given buffer. The buffer must
 Creates a new **AudioStreamMP3** instance from the given file path. The file must be in MP3 format.
 Creates a new **AudioStreamMP3** instance from the given file path. The file must be in MP3 format.
 
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
+.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`

+ 24 - 0
classes/class_audiostreamoggvorbis.rst

@@ -49,6 +49,8 @@ Properties
    +---------------------------------------------------+-----------------------------------------------------------------------------+-----------+
    +---------------------------------------------------+-----------------------------------------------------------------------------+-----------+
    | :ref:`OggPacketSequence<class_OggPacketSequence>` | :ref:`packet_sequence<class_AudioStreamOggVorbis_property_packet_sequence>` |           |
    | :ref:`OggPacketSequence<class_OggPacketSequence>` | :ref:`packet_sequence<class_AudioStreamOggVorbis_property_packet_sequence>` |           |
    +---------------------------------------------------+-----------------------------------------------------------------------------+-----------+
    +---------------------------------------------------+-----------------------------------------------------------------------------+-----------+
+   | :ref:`Dictionary<class_Dictionary>`               | :ref:`tags<class_AudioStreamOggVorbis_property_tags>`                       | ``{}``    |
+   +---------------------------------------------------+-----------------------------------------------------------------------------+-----------+
 
 
 .. rst-class:: classref-reftable-group
 .. rst-class:: classref-reftable-group
 
 
@@ -177,6 +179,27 @@ Time in seconds at which the stream starts after being looped.
 
 
 Contains the raw Ogg data for this stream.
 Contains the raw Ogg data for this stream.
 
 
+.. rst-class:: classref-item-separator
+
+----
+
+.. _class_AudioStreamOggVorbis_property_tags:
+
+.. rst-class:: classref-property
+
+:ref:`Dictionary<class_Dictionary>` **tags** = ``{}`` :ref:`🔗<class_AudioStreamOggVorbis_property_tags>`
+
+.. rst-class:: classref-property-setget
+
+- |void| **set_tags**\ (\ value\: :ref:`Dictionary<class_Dictionary>`\ )
+- :ref:`Dictionary<class_Dictionary>` **get_tags**\ (\ )
+
+Contains user-defined tags if found in the Ogg Vorbis data.
+
+Commonly used tags include ``title``, ``artist``, ``album``, ``tracknumber``, and ``date`` (``date`` does not have a standard date format).
+
+\ **Note:** No tag is *guaranteed* to be present in every file, so make sure to account for the keys not always existing.
+
 .. rst-class:: classref-section-separator
 .. rst-class:: classref-section-separator
 
 
 ----
 ----
@@ -207,6 +230,7 @@ Creates a new **AudioStreamOggVorbis** instance from the given buffer. The buffe
 Creates a new **AudioStreamOggVorbis** instance from the given file path. The file must be in Ogg Vorbis format.
 Creates a new **AudioStreamOggVorbis** instance from the given file path. The file must be in Ogg Vorbis format.
 
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
+.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`

+ 41 - 40
classes/class_audiostreamplayback.rst

@@ -38,45 +38,45 @@ Methods
 .. table::
 .. table::
    :widths: auto
    :widths: auto
 
 
-   +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-   | :ref:`int<class_int>`                                 | :ref:`_get_loop_count<class_AudioStreamPlayback_private_method__get_loop_count>`\ (\ ) |virtual| |const|                                                                          |
-   +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-   | :ref:`Variant<class_Variant>`                         | :ref:`_get_parameter<class_AudioStreamPlayback_private_method__get_parameter>`\ (\ name\: :ref:`StringName<class_StringName>`\ ) |virtual| |const|                                |
-   +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-   | :ref:`float<class_float>`                             | :ref:`_get_playback_position<class_AudioStreamPlayback_private_method__get_playback_position>`\ (\ ) |virtual| |const|                                                            |
-   +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-   | :ref:`bool<class_bool>`                               | :ref:`_is_playing<class_AudioStreamPlayback_private_method__is_playing>`\ (\ ) |virtual| |const|                                                                                  |
-   +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-   | :ref:`int<class_int>`                                 | :ref:`_mix<class_AudioStreamPlayback_private_method__mix>`\ (\ buffer\: ``AudioFrame*``, rate_scale\: :ref:`float<class_float>`, frames\: :ref:`int<class_int>`\ ) |virtual|      |
-   +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-   | |void|                                                | :ref:`_seek<class_AudioStreamPlayback_private_method__seek>`\ (\ position\: :ref:`float<class_float>`\ ) |virtual|                                                                |
-   +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-   | |void|                                                | :ref:`_set_parameter<class_AudioStreamPlayback_private_method__set_parameter>`\ (\ name\: :ref:`StringName<class_StringName>`, value\: :ref:`Variant<class_Variant>`\ ) |virtual| |
-   +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-   | |void|                                                | :ref:`_start<class_AudioStreamPlayback_private_method__start>`\ (\ from_pos\: :ref:`float<class_float>`\ ) |virtual|                                                              |
-   +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-   | |void|                                                | :ref:`_stop<class_AudioStreamPlayback_private_method__stop>`\ (\ ) |virtual|                                                                                                      |
-   +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-   | |void|                                                | :ref:`_tag_used_streams<class_AudioStreamPlayback_private_method__tag_used_streams>`\ (\ ) |virtual|                                                                              |
-   +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-   | :ref:`int<class_int>`                                 | :ref:`get_loop_count<class_AudioStreamPlayback_method_get_loop_count>`\ (\ ) |const|                                                                                              |
-   +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-   | :ref:`float<class_float>`                             | :ref:`get_playback_position<class_AudioStreamPlayback_method_get_playback_position>`\ (\ ) |const|                                                                                |
-   +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-   | :ref:`AudioSamplePlayback<class_AudioSamplePlayback>` | :ref:`get_sample_playback<class_AudioStreamPlayback_method_get_sample_playback>`\ (\ ) |const|                                                                                    |
-   +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-   | :ref:`bool<class_bool>`                               | :ref:`is_playing<class_AudioStreamPlayback_method_is_playing>`\ (\ ) |const|                                                                                                      |
-   +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-   | :ref:`PackedVector2Array<class_PackedVector2Array>`   | :ref:`mix_audio<class_AudioStreamPlayback_method_mix_audio>`\ (\ rate_scale\: :ref:`float<class_float>`, frames\: :ref:`int<class_int>`\ )                                        |
-   +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-   | |void|                                                | :ref:`seek<class_AudioStreamPlayback_method_seek>`\ (\ time\: :ref:`float<class_float>` = 0.0\ )                                                                                  |
-   +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-   | |void|                                                | :ref:`set_sample_playback<class_AudioStreamPlayback_method_set_sample_playback>`\ (\ playback_sample\: :ref:`AudioSamplePlayback<class_AudioSamplePlayback>`\ )                   |
-   +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-   | |void|                                                | :ref:`start<class_AudioStreamPlayback_method_start>`\ (\ from_pos\: :ref:`float<class_float>` = 0.0\ )                                                                            |
-   +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-   | |void|                                                | :ref:`stop<class_AudioStreamPlayback_method_stop>`\ (\ )                                                                                                                          |
-   +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`int<class_int>`                                 | :ref:`_get_loop_count<class_AudioStreamPlayback_private_method__get_loop_count>`\ (\ ) |virtual| |const|                                                                                |
+   +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Variant<class_Variant>`                         | :ref:`_get_parameter<class_AudioStreamPlayback_private_method__get_parameter>`\ (\ name\: :ref:`StringName<class_StringName>`\ ) |virtual| |const|                                      |
+   +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`float<class_float>`                             | :ref:`_get_playback_position<class_AudioStreamPlayback_private_method__get_playback_position>`\ (\ ) |virtual| |const|                                                                  |
+   +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`                               | :ref:`_is_playing<class_AudioStreamPlayback_private_method__is_playing>`\ (\ ) |virtual| |const|                                                                                        |
+   +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`int<class_int>`                                 | :ref:`_mix<class_AudioStreamPlayback_private_method__mix>`\ (\ buffer\: ``AudioFrame*``, rate_scale\: :ref:`float<class_float>`, frames\: :ref:`int<class_int>`\ ) |virtual| |required| |
+   +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | |void|                                                | :ref:`_seek<class_AudioStreamPlayback_private_method__seek>`\ (\ position\: :ref:`float<class_float>`\ ) |virtual|                                                                      |
+   +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | |void|                                                | :ref:`_set_parameter<class_AudioStreamPlayback_private_method__set_parameter>`\ (\ name\: :ref:`StringName<class_StringName>`, value\: :ref:`Variant<class_Variant>`\ ) |virtual|       |
+   +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | |void|                                                | :ref:`_start<class_AudioStreamPlayback_private_method__start>`\ (\ from_pos\: :ref:`float<class_float>`\ ) |virtual|                                                                    |
+   +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | |void|                                                | :ref:`_stop<class_AudioStreamPlayback_private_method__stop>`\ (\ ) |virtual|                                                                                                            |
+   +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | |void|                                                | :ref:`_tag_used_streams<class_AudioStreamPlayback_private_method__tag_used_streams>`\ (\ ) |virtual|                                                                                    |
+   +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`int<class_int>`                                 | :ref:`get_loop_count<class_AudioStreamPlayback_method_get_loop_count>`\ (\ ) |const|                                                                                                    |
+   +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`float<class_float>`                             | :ref:`get_playback_position<class_AudioStreamPlayback_method_get_playback_position>`\ (\ ) |const|                                                                                      |
+   +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`AudioSamplePlayback<class_AudioSamplePlayback>` | :ref:`get_sample_playback<class_AudioStreamPlayback_method_get_sample_playback>`\ (\ ) |const|                                                                                          |
+   +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`                               | :ref:`is_playing<class_AudioStreamPlayback_method_is_playing>`\ (\ ) |const|                                                                                                            |
+   +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`PackedVector2Array<class_PackedVector2Array>`   | :ref:`mix_audio<class_AudioStreamPlayback_method_mix_audio>`\ (\ rate_scale\: :ref:`float<class_float>`, frames\: :ref:`int<class_int>`\ )                                              |
+   +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | |void|                                                | :ref:`seek<class_AudioStreamPlayback_method_seek>`\ (\ time\: :ref:`float<class_float>` = 0.0\ )                                                                                        |
+   +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | |void|                                                | :ref:`set_sample_playback<class_AudioStreamPlayback_method_set_sample_playback>`\ (\ playback_sample\: :ref:`AudioSamplePlayback<class_AudioSamplePlayback>`\ )                         |
+   +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | |void|                                                | :ref:`start<class_AudioStreamPlayback_method_start>`\ (\ from_pos\: :ref:`float<class_float>` = 0.0\ )                                                                                  |
+   +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | |void|                                                | :ref:`stop<class_AudioStreamPlayback_method_stop>`\ (\ )                                                                                                                                |
+   +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 
 
 .. rst-class:: classref-section-separator
 .. rst-class:: classref-section-separator
 
 
@@ -139,7 +139,7 @@ Overridable method. Should return ``true`` if this playback is active and playin
 
 
 .. rst-class:: classref-method
 .. rst-class:: classref-method
 
 
-:ref:`int<class_int>` **_mix**\ (\ buffer\: ``AudioFrame*``, rate_scale\: :ref:`float<class_float>`, frames\: :ref:`int<class_int>`\ ) |virtual| :ref:`🔗<class_AudioStreamPlayback_private_method__mix>`
+:ref:`int<class_int>` **_mix**\ (\ buffer\: ``AudioFrame*``, rate_scale\: :ref:`float<class_float>`, frames\: :ref:`int<class_int>`\ ) |virtual| |required| :ref:`🔗<class_AudioStreamPlayback_private_method__mix>`
 
 
 Override this method to customize how the audio stream is mixed. This method is called even if the playback is not active.
 Override this method to customize how the audio stream is mixed. This method is called even if the playback is not active.
 
 
@@ -322,6 +322,7 @@ Starts the stream from the given ``from_pos``, in seconds.
 Stops the stream.
 Stops the stream.
 
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
+.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`

+ 1 - 0
classes/class_audiostreamplaybackinteractive.rst

@@ -90,6 +90,7 @@ Switch to a clip (by index).
 Switch to a clip (by name).
 Switch to a clip (by name).
 
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
+.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`

+ 1 - 0
classes/class_audiostreamplaybackoggvorbis.rst

@@ -17,6 +17,7 @@ AudioStreamPlaybackOggVorbis
 	There is currently no description for this class. Please help us by :ref:`contributing one <doc_updating_the_class_reference>`!
 	There is currently no description for this class. Please help us by :ref:`contributing one <doc_updating_the_class_reference>`!
 
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
+.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`

+ 1 - 0
classes/class_audiostreamplaybackplaylist.rst

@@ -15,6 +15,7 @@ AudioStreamPlaybackPlaylist
 Playback class used for :ref:`AudioStreamPlaylist<class_AudioStreamPlaylist>`.
 Playback class used for :ref:`AudioStreamPlaylist<class_AudioStreamPlaylist>`.
 
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
+.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`

+ 1 - 0
classes/class_audiostreamplaybackpolyphonic.rst

@@ -130,6 +130,7 @@ Change the stream volume (in db). The ``stream`` argument is an integer ID retur
 Stop a stream. The ``stream`` argument is an integer ID returned by :ref:`play_stream()<class_AudioStreamPlaybackPolyphonic_method_play_stream>`, which becomes invalid after calling this function.
 Stop a stream. The ``stream`` argument is an integer ID returned by :ref:`play_stream()<class_AudioStreamPlaybackPolyphonic_method_play_stream>`, which becomes invalid after calling this function.
 
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
+.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`

+ 10 - 9
classes/class_audiostreamplaybackresampled.rst

@@ -26,13 +26,13 @@ Methods
 .. table::
 .. table::
    :widths: auto
    :widths: auto
 
 
-   +---------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-   | :ref:`float<class_float>` | :ref:`_get_stream_sampling_rate<class_AudioStreamPlaybackResampled_private_method__get_stream_sampling_rate>`\ (\ ) |virtual| |const|                                      |
-   +---------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-   | :ref:`int<class_int>`     | :ref:`_mix_resampled<class_AudioStreamPlaybackResampled_private_method__mix_resampled>`\ (\ dst_buffer\: ``AudioFrame*``, frame_count\: :ref:`int<class_int>`\ ) |virtual| |
-   +---------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-   | |void|                    | :ref:`begin_resample<class_AudioStreamPlaybackResampled_method_begin_resample>`\ (\ )                                                                                      |
-   +---------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   +---------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`float<class_float>` | :ref:`_get_stream_sampling_rate<class_AudioStreamPlaybackResampled_private_method__get_stream_sampling_rate>`\ (\ ) |virtual| |required| |const|                                      |
+   +---------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`int<class_int>`     | :ref:`_mix_resampled<class_AudioStreamPlaybackResampled_private_method__mix_resampled>`\ (\ dst_buffer\: ``AudioFrame*``, frame_count\: :ref:`int<class_int>`\ ) |virtual| |required| |
+   +---------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | |void|                    | :ref:`begin_resample<class_AudioStreamPlaybackResampled_method_begin_resample>`\ (\ )                                                                                                 |
+   +---------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 
 
 .. rst-class:: classref-section-separator
 .. rst-class:: classref-section-separator
 
 
@@ -47,7 +47,7 @@ Method Descriptions
 
 
 .. rst-class:: classref-method
 .. rst-class:: classref-method
 
 
-:ref:`float<class_float>` **_get_stream_sampling_rate**\ (\ ) |virtual| |const| :ref:`🔗<class_AudioStreamPlaybackResampled_private_method__get_stream_sampling_rate>`
+:ref:`float<class_float>` **_get_stream_sampling_rate**\ (\ ) |virtual| |required| |const| :ref:`🔗<class_AudioStreamPlaybackResampled_private_method__get_stream_sampling_rate>`
 
 
 .. container:: contribute
 .. container:: contribute
 
 
@@ -61,7 +61,7 @@ Method Descriptions
 
 
 .. rst-class:: classref-method
 .. rst-class:: classref-method
 
 
-:ref:`int<class_int>` **_mix_resampled**\ (\ dst_buffer\: ``AudioFrame*``, frame_count\: :ref:`int<class_int>`\ ) |virtual| :ref:`🔗<class_AudioStreamPlaybackResampled_private_method__mix_resampled>`
+:ref:`int<class_int>` **_mix_resampled**\ (\ dst_buffer\: ``AudioFrame*``, frame_count\: :ref:`int<class_int>`\ ) |virtual| |required| :ref:`🔗<class_AudioStreamPlaybackResampled_private_method__mix_resampled>`
 
 
 .. container:: contribute
 .. container:: contribute
 
 
@@ -82,6 +82,7 @@ Method Descriptions
 	There is currently no description for this method. Please help us by :ref:`contributing one <doc_updating_the_class_reference>`!
 	There is currently no description for this method. Please help us by :ref:`contributing one <doc_updating_the_class_reference>`!
 
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
+.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`

+ 1 - 0
classes/class_audiostreamplaybacksynchronized.rst

@@ -17,6 +17,7 @@ AudioStreamPlaybackSynchronized
 	There is currently no description for this class. Please help us by :ref:`contributing one <doc_updating_the_class_reference>`!
 	There is currently no description for this class. Please help us by :ref:`contributing one <doc_updating_the_class_reference>`!
 
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
+.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`

+ 2 - 1
classes/class_audiostreamplayer.rst

@@ -228,7 +228,7 @@ The maximum number of sounds this node can play at the same time. Calling :ref:`
 - |void| **set_mix_target**\ (\ value\: :ref:`MixTarget<enum_AudioStreamPlayer_MixTarget>`\ )
 - |void| **set_mix_target**\ (\ value\: :ref:`MixTarget<enum_AudioStreamPlayer_MixTarget>`\ )
 - :ref:`MixTarget<enum_AudioStreamPlayer_MixTarget>` **get_mix_target**\ (\ )
 - :ref:`MixTarget<enum_AudioStreamPlayer_MixTarget>` **get_mix_target**\ (\ )
 
 
-The mix target channels, as one of the :ref:`MixTarget<enum_AudioStreamPlayer_MixTarget>` constants. Has no effect when two speakers or less are detected (see :ref:`SpeakerMode<enum_AudioServer_SpeakerMode>`).
+The mix target channels. Has no effect when two speakers or less are detected (see :ref:`SpeakerMode<enum_AudioServer_SpeakerMode>`).
 
 
 .. rst-class:: classref-item-separator
 .. rst-class:: classref-item-separator
 
 
@@ -439,6 +439,7 @@ Restarts all sounds to be played from the given ``to_position``, in seconds. Doe
 Stops all sounds from this node.
 Stops all sounds from this node.
 
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
+.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`

+ 1 - 0
classes/class_audiostreamplayer2d.rst

@@ -441,6 +441,7 @@ Sets the position from which audio will be played, in seconds.
 Stops the audio.
 Stops the audio.
 
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
+.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`

+ 1 - 0
classes/class_audiostreamplayer3d.rst

@@ -678,6 +678,7 @@ Sets the position from which audio will be played, in seconds.
 Stops the audio.
 Stops the audio.
 
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
+.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
 .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`

Некоторые файлы не были показаны из-за большого количества измененных файлов