diff --git a/doc/classes/AABB.xml b/doc/classes/AABB.xml
index 5d18f69409d..1be6d5a4400 100644
--- a/doc/classes/AABB.xml
+++ b/doc/classes/AABB.xml
@@ -9,7 +9,7 @@
[b]Note:[/b] Unlike [Rect2], [AABB] does not have a variant that uses integer coordinates.
- https://docs.godotengine.org/en/latest/tutorials/math/index.html
+ https://docs.godotengine.org/en/latest/tutorials/math/index.html
https://docs.godotengine.org/en/latest/tutorials/math/vector_math.html
https://docs.godotengine.org/en/latest/tutorials/math/vectors_advanced.html
diff --git a/doc/classes/Animation.xml b/doc/classes/Animation.xml
index 38e02745d44..d2ecbdde268 100644
--- a/doc/classes/Animation.xml
+++ b/doc/classes/Animation.xml
@@ -28,7 +28,7 @@
Animations are just data containers, and must be added to nodes such as an [AnimationPlayer] to be played back. Animation tracks have different types, each with its own set of dedicated methods. Check [enum TrackType] to see available types.
- https://docs.godotengine.org/en/latest/tutorials/animation/index.html
+ https://docs.godotengine.org/en/latest/tutorials/animation/index.html
diff --git a/doc/classes/AnimationPlayer.xml b/doc/classes/AnimationPlayer.xml
index 3d3a5c26f6a..2fd923df859 100644
--- a/doc/classes/AnimationPlayer.xml
+++ b/doc/classes/AnimationPlayer.xml
@@ -10,7 +10,7 @@
https://docs.godotengine.org/en/latest/tutorials/2d/2d_sprite_animation.html
- https://docs.godotengine.org/en/latest/tutorials/animation/index.html
+ https://docs.godotengine.org/en/latest/tutorials/animation/index.html
https://godotengine.org/asset-library/asset/678
diff --git a/doc/classes/ArrayMesh.xml b/doc/classes/ArrayMesh.xml
index 49ce2588c59..7b77462322f 100644
--- a/doc/classes/ArrayMesh.xml
+++ b/doc/classes/ArrayMesh.xml
@@ -47,7 +47,7 @@
[b]Note:[/b] Godot uses clockwise [url=https://learnopengl.com/Advanced-OpenGL/Face-culling]winding order[/url] for front faces of triangle primitive modes.
- https://docs.godotengine.org/en/latest/tutorials/content/procedural_geometry/arraymesh.html
+ https://docs.godotengine.org/en/latest/tutorials/3d/procedural_geometry/arraymesh.html
diff --git a/doc/classes/BaseMaterial3D.xml b/doc/classes/BaseMaterial3D.xml
index 8e45425e68a..818ab500305 100644
--- a/doc/classes/BaseMaterial3D.xml
+++ b/doc/classes/BaseMaterial3D.xml
@@ -7,7 +7,7 @@
This provides a default material with a wide variety of rendering features and properties without the need to write shader code. See the tutorial below for details.
- https://docs.godotengine.org/en/latest/tutorials/3d/spatial_material.html
+ https://docs.godotengine.org/en/latest/tutorials/3d/standard_material_3d.html
diff --git a/doc/classes/Basis.xml b/doc/classes/Basis.xml
index 63df5c40b27..7f0d4cbbe38 100644
--- a/doc/classes/Basis.xml
+++ b/doc/classes/Basis.xml
@@ -10,7 +10,7 @@
For more information, read the "Matrices and transforms" documentation article.
- https://docs.godotengine.org/en/latest/tutorials/math/index.html
+ https://docs.godotengine.org/en/latest/tutorials/math/index.html
https://docs.godotengine.org/en/latest/tutorials/math/matrices_and_transforms.html
https://docs.godotengine.org/en/latest/tutorials/3d/using_transforms.html
https://godotengine.org/asset-library/asset/584
diff --git a/doc/classes/CharFXTransform.xml b/doc/classes/CharFXTransform.xml
index b00031edf64..2d8e7817c1a 100644
--- a/doc/classes/CharFXTransform.xml
+++ b/doc/classes/CharFXTransform.xml
@@ -7,7 +7,7 @@
By setting various properties on this object, you can control how individual characters will be displayed in a [RichTextEffect].
- https://docs.godotengine.org/en/latest/tutorials/gui/bbcode_in_richtextlabel.html
+ https://docs.godotengine.org/en/latest/tutorials/ui/bbcode_in_richtextlabel.html
https://github.com/Eoin-ONeill-Yokai/Godot-Rich-Text-Effect-Test-Project
diff --git a/doc/classes/Control.xml b/doc/classes/Control.xml
index 6ec754d3f9b..7c8239977f9 100644
--- a/doc/classes/Control.xml
+++ b/doc/classes/Control.xml
@@ -16,7 +16,7 @@
[b]Note:[/b] Theme items are [i]not[/i] [Object] properties. This means you can't access their values using [method Object.get] and [method Object.set]. Instead, use the [code]get_theme_*[/code] and [code]add_theme_*_override[/code] methods provided by this class.
- https://docs.godotengine.org/en/latest/tutorials/ui/index.html
+ https://docs.godotengine.org/en/latest/tutorials/ui/index.html
https://docs.godotengine.org/en/latest/tutorials/2d/custom_drawing_in_2d.html
https://docs.godotengine.org/en/latest/tutorials/ui/control_node_gallery.html
https://github.com/godotengine/godot-demo-projects/tree/master/gui
diff --git a/doc/classes/Dictionary.xml b/doc/classes/Dictionary.xml
index adc1eab3931..bab1a261ab6 100644
--- a/doc/classes/Dictionary.xml
+++ b/doc/classes/Dictionary.xml
@@ -177,7 +177,7 @@
[b]Note:[/b] When declaring a dictionary with [code]const[/code], the dictionary itself can still be mutated by defining the values of individual keys. Using [code]const[/code] will only prevent assigning the constant with another value after it was initialized.
- https://docs.godotengine.org/en/latest/getting_started/scripting/gdscript/gdscript_basics.html#dictionary
+ https://docs.godotengine.org/en/latest/tutorials/scripting/gdscript/gdscript_basics.html#dictionary
https://godotengine.org/asset-library/asset/676
https://godotengine.org/asset-library/asset/677
diff --git a/doc/classes/Directory.xml b/doc/classes/Directory.xml
index c8fda27989a..93f04ff2a27 100644
--- a/doc/classes/Directory.xml
+++ b/doc/classes/Directory.xml
@@ -54,7 +54,7 @@
[/codeblocks]
- https://docs.godotengine.org/en/latest/getting_started/step_by_step/filesystem.html
+ https://docs.godotengine.org/en/latest/tutorials/scripting/filesystem.html
diff --git a/doc/classes/EditorPlugin.xml b/doc/classes/EditorPlugin.xml
index b8436be76a8..43e65f1aa0b 100644
--- a/doc/classes/EditorPlugin.xml
+++ b/doc/classes/EditorPlugin.xml
@@ -7,7 +7,7 @@
Plugins are used by the editor to extend functionality. The most common types of plugins are those which edit a given node or resource type, import plugins and export plugins. See also [EditorScript] to add functions to the editor.
- https://docs.godotengine.org/en/latest/tutorials/plugins/editor/index.html
+ https://docs.godotengine.org/en/latest/tutorials/plugins/editor/index.html
diff --git a/doc/classes/EditorScenePostImport.xml b/doc/classes/EditorScenePostImport.xml
index 241531c35f7..8a731a6d1d0 100644
--- a/doc/classes/EditorScenePostImport.xml
+++ b/doc/classes/EditorScenePostImport.xml
@@ -52,7 +52,7 @@
[/codeblocks]
- https://docs.godotengine.org/en/latest/getting_started/workflow/assets/importing_scenes.html#custom-script
+ https://docs.godotengine.org/en/latest/tutorials/assets_pipeline/importing_scenes.html#custom-script
diff --git a/doc/classes/File.xml b/doc/classes/File.xml
index cf08029c720..811aeb8aab5 100644
--- a/doc/classes/File.xml
+++ b/doc/classes/File.xml
@@ -45,7 +45,7 @@
[b]Note:[/b] Files are automatically closed only if the process exits "normally" (such as by clicking the window manager's close button or pressing [b]Alt + F4[/b]). If you stop the project execution by pressing [b]F8[/b] while the project is running, the file won't be closed as the game process will be killed. You can work around this by calling [method flush] at regular intervals.
- https://docs.godotengine.org/en/latest/getting_started/step_by_step/filesystem.html
+ https://docs.godotengine.org/en/latest/tutorials/scripting/filesystem.html
https://godotengine.org/asset-library/asset/676
diff --git a/doc/classes/GPUParticles3D.xml b/doc/classes/GPUParticles3D.xml
index 3f7b20f274c..0bed561de3e 100644
--- a/doc/classes/GPUParticles3D.xml
+++ b/doc/classes/GPUParticles3D.xml
@@ -8,7 +8,7 @@
Use the [code]process_material[/code] property to add a [ParticlesMaterial] to configure particle appearance and behavior. Alternatively, you can add a [ShaderMaterial] which will be applied to all particles.
- https://docs.godotengine.org/en/latest/tutorials/3d/vertex_animation/controlling_thousands_of_fish.html
+ https://docs.godotengine.org/en/latest/tutorials/performance/vertex_animation/controlling_thousands_of_fish.html
https://godotengine.org/asset-library/asset/678
diff --git a/doc/classes/Image.xml b/doc/classes/Image.xml
index 5d79e22c49e..492bddca1fd 100644
--- a/doc/classes/Image.xml
+++ b/doc/classes/Image.xml
@@ -9,7 +9,7 @@
[b]Note:[/b] The maximum image size is 16384×16384 pixels due to graphics hardware limitations. Larger images may fail to import.
- https://docs.godotengine.org/en/latest/getting_started/workflow/assets/importing_images.html
+ https://docs.godotengine.org/en/latest/tutorials/assets_pipeline/importing_images.html
diff --git a/doc/classes/Input.xml b/doc/classes/Input.xml
index ebbcd2b8944..675126f85e0 100644
--- a/doc/classes/Input.xml
+++ b/doc/classes/Input.xml
@@ -7,7 +7,7 @@
A singleton that deals with inputs. This includes key presses, mouse buttons and movement, joypads, and input actions. Actions and their events can be set in the [b]Input Map[/b] tab in the [b]Project > Project Settings[/b], or with the [InputMap] class.
- https://docs.godotengine.org/en/latest/tutorials/inputs/index.html
+ https://docs.godotengine.org/en/latest/tutorials/inputs/index.html
https://godotengine.org/asset-library/asset/515
https://godotengine.org/asset-library/asset/676
diff --git a/doc/classes/JavaScript.xml b/doc/classes/JavaScript.xml
index 5865ad734ee..2bb2666df46 100644
--- a/doc/classes/JavaScript.xml
+++ b/doc/classes/JavaScript.xml
@@ -8,7 +8,7 @@
[b]Note:[/b] This singleton can be disabled at build-time to improve security. By default, the JavaScript singleton is enabled. Official export templates also have the JavaScript singleton enabled. See [url=https://docs.godotengine.org/en/latest/development/compiling/compiling_for_web.html]Compiling for the Web[/url] in the documentation for more information.
- https://docs.godotengine.org/en/latest/getting_started/workflow/export/exporting_for_web.html#calling-javascript-from-script
+ https://docs.godotengine.org/en/latest/tutorials/export/exporting_for_web.html#calling-javascript-from-script
diff --git a/doc/classes/MultiMesh.xml b/doc/classes/MultiMesh.xml
index 7b4a53a8102..7890bbcc339 100644
--- a/doc/classes/MultiMesh.xml
+++ b/doc/classes/MultiMesh.xml
@@ -10,8 +10,8 @@
Since instances may have any behavior, the AABB used for visibility must be provided by the user.
- https://docs.godotengine.org/en/latest/tutorials/3d/vertex_animation/animating_thousands_of_fish.html
- https://docs.godotengine.org/en/latest/tutorials/optimization/using_multimesh.html
+ https://docs.godotengine.org/en/latest/tutorials/performance/vertex_animation/animating_thousands_of_fish.html
+ https://docs.godotengine.org/en/latest/tutorials/performance/using_multimesh.html
diff --git a/doc/classes/MultiMeshInstance3D.xml b/doc/classes/MultiMeshInstance3D.xml
index 7bf05d2d340..158579e9520 100644
--- a/doc/classes/MultiMeshInstance3D.xml
+++ b/doc/classes/MultiMeshInstance3D.xml
@@ -8,9 +8,9 @@
This is useful to optimize the rendering of a high amount of instances of a given mesh (for example trees in a forest or grass strands).
- https://docs.godotengine.org/en/latest/tutorials/3d/vertex_animation/animating_thousands_of_fish.html
+ https://docs.godotengine.org/en/latest/tutorials/performance/vertex_animation/animating_thousands_of_fish.html
https://docs.godotengine.org/en/latest/tutorials/3d/using_multi_mesh_instance.html
- https://docs.godotengine.org/en/latest/tutorials/optimization/using_multimesh.html
+ https://docs.godotengine.org/en/latest/tutorials/performance/using_multimesh.html
diff --git a/doc/classes/Mutex.xml b/doc/classes/Mutex.xml
index eb9bec11043..a840cb2ec74 100644
--- a/doc/classes/Mutex.xml
+++ b/doc/classes/Mutex.xml
@@ -7,7 +7,7 @@
A synchronization mutex (mutual exclusion). This is used to synchronize multiple [Thread]s, and is equivalent to a binary [Semaphore]. It guarantees that only one thread can ever acquire the lock at a time. A mutex can be used to protect a critical section; however, be careful to avoid deadlocks.
- https://docs.godotengine.org/en/latest/tutorials/threads/using_multiple_threads.html
+ https://docs.godotengine.org/en/latest/tutorials/performance/using_multiple_threads.html
diff --git a/doc/classes/Node.xml b/doc/classes/Node.xml
index b4edcf49f4e..11c42fbd4a8 100644
--- a/doc/classes/Node.xml
+++ b/doc/classes/Node.xml
@@ -17,7 +17,7 @@
[b]Networking with nodes:[/b] After connecting to a server (or making one, see [ENetMultiplayerPeer]), it is possible to use the built-in RPC (remote procedure call) system to communicate over the network. By calling [method rpc] with a method name, it will be called locally and in all connected peers (peers = clients and the server that accepts connections). To identify which node receives the RPC call, Godot will use its [NodePath] (make sure node names are the same on all peers). Also, take a look at the high-level networking tutorial and corresponding demos.
- https://docs.godotengine.org/en/latest/getting_started/step_by_step/scenes_and_nodes.html
+ https://docs.godotengine.org/en/latest/getting_started/step_by_step/nodes_and_scenes.htmltml
https://github.com/godotengine/godot-demo-projects/
diff --git a/doc/classes/Object.xml b/doc/classes/Object.xml
index ed045f83900..5a84364b923 100644
--- a/doc/classes/Object.xml
+++ b/doc/classes/Object.xml
@@ -29,7 +29,7 @@
[b]Note:[/b] Unlike references to a [RefCounted], references to an Object stored in a variable can become invalid without warning. Therefore, it's recommended to use [RefCounted] for data classes instead of [Object].
- https://docs.godotengine.org/en/latest/getting_started/workflow/best_practices/node_alternatives.html
+ https://docs.godotengine.org/en/latest/tutorials/best_practices/node_alternatives.html
diff --git a/doc/classes/Plane.xml b/doc/classes/Plane.xml
index bc9b3cafb5d..78e1e81752b 100644
--- a/doc/classes/Plane.xml
+++ b/doc/classes/Plane.xml
@@ -7,7 +7,7 @@
Plane represents a normalized plane equation. Basically, "normal" is the normal of the plane (a,b,c normalized), and "d" is the distance from the origin to the plane (in the direction of "normal"). "Over" or "Above" the plane is considered the side of the plane towards where the normal is pointing.
- https://docs.godotengine.org/en/latest/tutorials/math/index.html
+ https://docs.godotengine.org/en/latest/tutorials/math/index.html
diff --git a/doc/classes/Rect2.xml b/doc/classes/Rect2.xml
index e5852248182..a6bb81b5895 100644
--- a/doc/classes/Rect2.xml
+++ b/doc/classes/Rect2.xml
@@ -9,7 +9,7 @@
The 3D counterpart to [Rect2] is [AABB].
- https://docs.godotengine.org/en/latest/tutorials/math/index.html
+ https://docs.godotengine.org/en/latest/tutorials/math/index.html
https://docs.godotengine.org/en/latest/tutorials/math/vector_math.html
https://docs.godotengine.org/en/latest/tutorials/math/vectors_advanced.html
diff --git a/doc/classes/Rect2i.xml b/doc/classes/Rect2i.xml
index 2f6f4de66d3..0ba013caded 100644
--- a/doc/classes/Rect2i.xml
+++ b/doc/classes/Rect2i.xml
@@ -8,7 +8,7 @@
It uses integer coordinates. If you need floating-point coordinates, use [Rect2] instead.
- https://docs.godotengine.org/en/latest/tutorials/math/index.html
+ https://docs.godotengine.org/en/latest/tutorials/math/index.html
https://docs.godotengine.org/en/latest/tutorials/math/vector_math.html
diff --git a/doc/classes/RefCounted.xml b/doc/classes/RefCounted.xml
index 5f18ccc14df..d965d2ea10c 100644
--- a/doc/classes/RefCounted.xml
+++ b/doc/classes/RefCounted.xml
@@ -10,7 +10,7 @@
[b]Note:[/b] In C#, references will not be freed instantly after they are no longer in use. Instead, garbage collection will run periodically and will free references that are no longer in use. This means that unused references will linger on for a while before being removed.
- https://docs.godotengine.org/en/latest/getting_started/workflow/best_practices/node_alternatives.html
+ https://docs.godotengine.org/en/latest/tutorials/best_practices/node_alternatives.html
diff --git a/doc/classes/RenderingServer.xml b/doc/classes/RenderingServer.xml
index c2d37b86519..c79ed2a8b82 100644
--- a/doc/classes/RenderingServer.xml
+++ b/doc/classes/RenderingServer.xml
@@ -15,7 +15,7 @@
In 2D, all visible objects are some form of canvas item. In order to be visible, a canvas item needs to be the child of a canvas attached to a viewport, or it needs to be the child of another canvas item that is eventually attached to the canvas.
- https://docs.godotengine.org/en/latest/tutorials/optimization/using_servers.html
+ https://docs.godotengine.org/en/latest/tutorials/performance/using_servers.html
diff --git a/doc/classes/Resource.xml b/doc/classes/Resource.xml
index 45b68f342cc..327183893bf 100644
--- a/doc/classes/Resource.xml
+++ b/doc/classes/Resource.xml
@@ -8,8 +8,8 @@
[b]Note:[/b] In C#, resources will not be freed instantly after they are no longer in use. Instead, garbage collection will run periodically and will free resources that are no longer in use. This means that unused resources will linger on for a while before being removed.
- https://docs.godotengine.org/en/latest/getting_started/step_by_step/resources.html
- https://docs.godotengine.org/en/latest/getting_started/workflow/best_practices/node_alternatives.html
+ https://docs.godotengine.org/en/latest/tutorials/scripting/resources.html
+ https://docs.godotengine.org/en/latest/tutorials/best_practices/node_alternatives.html
diff --git a/doc/classes/RichTextEffect.xml b/doc/classes/RichTextEffect.xml
index cf4b4f4a481..62323722f79 100644
--- a/doc/classes/RichTextEffect.xml
+++ b/doc/classes/RichTextEffect.xml
@@ -19,7 +19,7 @@
[b]Note:[/b] As soon as a [RichTextLabel] contains at least one [RichTextEffect], it will continuously process the effect unless the project is paused. This may impact battery life negatively.
- https://docs.godotengine.org/en/latest/tutorials/gui/bbcode_in_richtextlabel.html
+ https://docs.godotengine.org/en/latest/tutorials/ui/bbcode_in_richtextlabel.html
https://github.com/Eoin-ONeill-Yokai/Godot-Rich-Text-Effect-Test-Project
diff --git a/doc/classes/RichTextLabel.xml b/doc/classes/RichTextLabel.xml
index 50db1dc1222..a2e1c3d2c2a 100644
--- a/doc/classes/RichTextLabel.xml
+++ b/doc/classes/RichTextLabel.xml
@@ -11,7 +11,7 @@
[b]Note:[/b] Unlike [Label], RichTextLabel doesn't have a [i]property[/i] to horizontally align text to the center. Instead, enable [member bbcode_enabled] and surround the text in a [code][center][/code] tag as follows: [code][center]Example[/center][/code]. There is currently no built-in way to vertically align text either, but this can be emulated by relying on anchors/containers and the [member fit_content_height] property.
- https://docs.godotengine.org/en/latest/tutorials/gui/bbcode_in_richtextlabel.html
+ https://docs.godotengine.org/en/latest/tutorials/ui/bbcode_in_richtextlabel.html
https://godotengine.org/asset-library/asset/132
https://godotengine.org/asset-library/asset/677
diff --git a/doc/classes/SceneTree.xml b/doc/classes/SceneTree.xml
index 8d7427611a8..68f2d9a8d8a 100644
--- a/doc/classes/SceneTree.xml
+++ b/doc/classes/SceneTree.xml
@@ -9,8 +9,8 @@
[SceneTree] is the default [MainLoop] implementation used by scenes, and is thus in charge of the game loop.
- https://docs.godotengine.org/en/latest/getting_started/step_by_step/scene_tree.html
- https://docs.godotengine.org/en/latest/tutorials/viewports/multiple_resolutions.html
+ https://docs.godotengine.org/en/latest/tutorials/scripting/scene_tree.html
+ https://docs.godotengine.org/en/latest/tutorials/rendering/multiple_resolutions.html
diff --git a/doc/classes/Script.xml b/doc/classes/Script.xml
index b7a4f448b03..7c59e878489 100644
--- a/doc/classes/Script.xml
+++ b/doc/classes/Script.xml
@@ -8,7 +8,7 @@
The [code]new[/code] method of a script subclass creates a new instance. [method Object.set_script] extends an existing object, if that object's class matches one of the script's base classes.
- https://docs.godotengine.org/en/latest/getting_started/step_by_step/scripting.html
+ https://docs.godotengine.org/en/latest/tutorials/scripting/index.html
diff --git a/doc/classes/Semaphore.xml b/doc/classes/Semaphore.xml
index 2f3fa021d4f..9ff9cc0c876 100644
--- a/doc/classes/Semaphore.xml
+++ b/doc/classes/Semaphore.xml
@@ -7,7 +7,7 @@
A synchronization semaphore which can be used to synchronize multiple [Thread]s. Initialized to zero on creation. Be careful to avoid deadlocks. For a binary version, see [Mutex].
- https://docs.godotengine.org/en/latest/tutorials/threads/using_multiple_threads.html
+ https://docs.godotengine.org/en/latest/tutorials/performance/using_multiple_threads.html
diff --git a/doc/classes/Shader.xml b/doc/classes/Shader.xml
index bc5457b8ce5..14c5ba9247f 100644
--- a/doc/classes/Shader.xml
+++ b/doc/classes/Shader.xml
@@ -7,8 +7,7 @@
This class allows you to define a custom shader program that can be used by a [ShaderMaterial]. Shaders allow you to write your own custom behavior for rendering objects or updating particle information. For a detailed explanation and usage, please see the tutorials linked below.
- https://docs.godotengine.org/en/latest/tutorials/shading/index.html
- https://docs.godotengine.org/en/latest/tutorials/shading/your_first_shader/what_are_shaders.html
+ https://docs.godotengine.org/en/latest/tutorials/shaders/index.html
diff --git a/doc/classes/ShaderMaterial.xml b/doc/classes/ShaderMaterial.xml
index bc0c7757ac4..d5fc3fd2108 100644
--- a/doc/classes/ShaderMaterial.xml
+++ b/doc/classes/ShaderMaterial.xml
@@ -7,7 +7,7 @@
A material that uses a custom [Shader] program to render either items to screen or process particles. You can create multiple materials for the same shader but configure different values for the uniforms defined in the shader.
- https://docs.godotengine.org/en/latest/tutorials/shading/index.html
+ https://docs.godotengine.org/en/latest/tutorials/shaders/index.html
diff --git a/doc/classes/StandardMaterial3D.xml b/doc/classes/StandardMaterial3D.xml
index 8a36a734f19..43ba95e3452 100644
--- a/doc/classes/StandardMaterial3D.xml
+++ b/doc/classes/StandardMaterial3D.xml
@@ -5,5 +5,6 @@
+ https://docs.godotengine.org/en/latest/tutorials/3d/standard_material_3d.html
diff --git a/doc/classes/String.xml b/doc/classes/String.xml
index 0991788483e..10ce03c4b29 100644
--- a/doc/classes/String.xml
+++ b/doc/classes/String.xml
@@ -7,7 +7,7 @@
This is the built-in string class (and the one used by GDScript). It supports Unicode and provides all necessary means for string handling. Strings are reference-counted and use a copy-on-write approach, so passing them around is cheap in resources.
- https://docs.godotengine.org/en/latest/getting_started/scripting/gdscript/gdscript_format_string.html
+ https://docs.godotengine.org/en/latest/tutorials/scripting/gdscript/gdscript_format_string.html
diff --git a/doc/classes/SubViewport.xml b/doc/classes/SubViewport.xml
index 28866699f66..c2a76b587f0 100644
--- a/doc/classes/SubViewport.xml
+++ b/doc/classes/SubViewport.xml
@@ -6,8 +6,8 @@
+ https://docs.godotengine.org/en/latest/tutorials/rendering/viewports.html
https://docs.godotengine.org/en/latest/tutorials/2d/2d_transforms.html
- https://docs.godotengine.org/en/latest/tutorials/viewports/index.html
https://godotengine.org/asset-library/asset/127
https://godotengine.org/asset-library/asset/128
https://godotengine.org/asset-library/asset/129
diff --git a/doc/classes/Theme.xml b/doc/classes/Theme.xml
index 61768950cb0..52a419ce0f0 100644
--- a/doc/classes/Theme.xml
+++ b/doc/classes/Theme.xml
@@ -8,7 +8,7 @@
Theme resources can alternatively be loaded by writing them in a [code].theme[/code] file, see the documentation for more information.
- https://docs.godotengine.org/en/latest/tutorials/gui/gui_skinning.html
+ https://docs.godotengine.org/en/latest/tutorials/ui/gui_skinning.html
diff --git a/doc/classes/Thread.xml b/doc/classes/Thread.xml
index ae5c0761b1f..d5069dd8f30 100644
--- a/doc/classes/Thread.xml
+++ b/doc/classes/Thread.xml
@@ -8,8 +8,8 @@
[b]Note:[/b] Breakpoints won't break on code if it's running in a thread. This is a current limitation of the GDScript debugger.
- https://docs.godotengine.org/en/latest/tutorials/threads/using_multiple_threads.html
- https://docs.godotengine.org/en/latest/tutorials/threads/thread_safe_apis.html
+ https://docs.godotengine.org/en/latest/tutorials/performance/using_multiple_threads.html
+ https://docs.godotengine.org/en/latest/tutorials/performance/thread_safe_apis.html
https://godotengine.org/asset-library/asset/676
diff --git a/doc/classes/Transform2D.xml b/doc/classes/Transform2D.xml
index 4fd788467d4..d64752a00f1 100644
--- a/doc/classes/Transform2D.xml
+++ b/doc/classes/Transform2D.xml
@@ -8,7 +8,7 @@
For more information, read the "Matrices and transforms" documentation article.
- https://docs.godotengine.org/en/latest/tutorials/math/index.html
+ https://docs.godotengine.org/en/latest/tutorials/math/index.html
https://docs.godotengine.org/en/latest/tutorials/math/matrices_and_transforms.html
https://godotengine.org/asset-library/asset/584
https://godotengine.org/asset-library/asset/583
diff --git a/doc/classes/Transform3D.xml b/doc/classes/Transform3D.xml
index 337e7d26931..63a7746328b 100644
--- a/doc/classes/Transform3D.xml
+++ b/doc/classes/Transform3D.xml
@@ -8,7 +8,7 @@
For more information, read the "Matrices and transforms" documentation article.
- https://docs.godotengine.org/en/latest/tutorials/math/index.html
+ https://docs.godotengine.org/en/latest/tutorials/math/index.html
https://docs.godotengine.org/en/latest/tutorials/math/matrices_and_transforms.html
https://docs.godotengine.org/en/latest/tutorials/3d/using_transforms.html
https://godotengine.org/asset-library/asset/584
diff --git a/doc/classes/Vector2.xml b/doc/classes/Vector2.xml
index b61d5bea0ea..4035fb0ad26 100644
--- a/doc/classes/Vector2.xml
+++ b/doc/classes/Vector2.xml
@@ -9,7 +9,7 @@
[b]Note:[/b] In a boolean context, a Vector2 will evaluate to [code]false[/code] if it's equal to [code]Vector2(0, 0)[/code]. Otherwise, a Vector2 will always evaluate to [code]true[/code].
- https://docs.godotengine.org/en/latest/tutorials/math/index.html
+ https://docs.godotengine.org/en/latest/tutorials/math/index.html
https://docs.godotengine.org/en/latest/tutorials/math/vector_math.html
https://docs.godotengine.org/en/latest/tutorials/math/vectors_advanced.html
https://www.youtube.com/playlist?list=PLZHQObOWTQDPD3MizzM2xVFitgF8hE_ab
diff --git a/doc/classes/Vector2i.xml b/doc/classes/Vector2i.xml
index 2e69d6efdfe..52fd8c6780d 100644
--- a/doc/classes/Vector2i.xml
+++ b/doc/classes/Vector2i.xml
@@ -9,7 +9,7 @@
[b]Note:[/b] In a boolean context, a Vector2i will evaluate to [code]false[/code] if it's equal to [code]Vector2i(0, 0)[/code]. Otherwise, a Vector2i will always evaluate to [code]true[/code].
- https://docs.godotengine.org/en/latest/tutorials/math/index.html
+ https://docs.godotengine.org/en/latest/tutorials/math/index.html
https://docs.godotengine.org/en/latest/tutorials/math/vector_math.html
https://www.youtube.com/playlist?list=PLZHQObOWTQDPD3MizzM2xVFitgF8hE_ab
diff --git a/doc/classes/Vector3.xml b/doc/classes/Vector3.xml
index 9f2ea7b2a01..267a0d2e9e9 100644
--- a/doc/classes/Vector3.xml
+++ b/doc/classes/Vector3.xml
@@ -9,7 +9,7 @@
[b]Note:[/b] In a boolean context, a Vector3 will evaluate to [code]false[/code] if it's equal to [code]Vector3(0, 0, 0)[/code]. Otherwise, a Vector3 will always evaluate to [code]true[/code].
- https://docs.godotengine.org/en/latest/tutorials/math/index.html
+ https://docs.godotengine.org/en/latest/tutorials/math/index.html
https://docs.godotengine.org/en/latest/tutorials/math/vector_math.html
https://docs.godotengine.org/en/latest/tutorials/math/vectors_advanced.html
https://www.youtube.com/playlist?list=PLZHQObOWTQDPD3MizzM2xVFitgF8hE_ab
diff --git a/doc/classes/Vector3i.xml b/doc/classes/Vector3i.xml
index bc3712ba3eb..2a7ee1ffb89 100644
--- a/doc/classes/Vector3i.xml
+++ b/doc/classes/Vector3i.xml
@@ -9,7 +9,7 @@
[b]Note:[/b] In a boolean context, a Vector3i will evaluate to [code]false[/code] if it's equal to [code]Vector3i(0, 0, 0)[/code]. Otherwise, a Vector3i will always evaluate to [code]true[/code].
- https://docs.godotengine.org/en/latest/tutorials/math/index.html
+ https://docs.godotengine.org/en/latest/tutorials/math/index.html
https://docs.godotengine.org/en/latest/tutorials/math/vector_math.html
https://www.youtube.com/playlist?list=PLZHQObOWTQDPD3MizzM2xVFitgF8hE_ab
diff --git a/doc/classes/Viewport.xml b/doc/classes/Viewport.xml
index 06a7177bfcf..cdb9e7632be 100644
--- a/doc/classes/Viewport.xml
+++ b/doc/classes/Viewport.xml
@@ -12,8 +12,8 @@
Finally, viewports can also behave as render targets, in which case they will not be visible unless the associated texture is used to draw.
+ https://docs.godotengine.org/en/latest/tutorials/rendering/viewports.html
https://docs.godotengine.org/en/latest/tutorials/2d/2d_transforms.html
- https://docs.godotengine.org/en/latest/tutorials/viewports/index.html
https://godotengine.org/asset-library/asset/127
https://godotengine.org/asset-library/asset/128
https://godotengine.org/asset-library/asset/129
diff --git a/doc/classes/VisualShaderNode.xml b/doc/classes/VisualShaderNode.xml
index 2cff70b4f1c..b752e94490b 100644
--- a/doc/classes/VisualShaderNode.xml
+++ b/doc/classes/VisualShaderNode.xml
@@ -7,7 +7,7 @@
Visual shader graphs consist of various nodes. Each node in the graph is a separate object and they are represented as a rectangular boxes with title and a set of properties. Each node has also connection ports that allow to connect it to another nodes and control the flow of the shader.
- https://docs.godotengine.org/en/latest/tutorials/shading/visual_shaders.html
+ https://docs.godotengine.org/en/latest/tutorials/shaders/visual_shaders.html
diff --git a/doc/classes/VisualShaderNodeInput.xml b/doc/classes/VisualShaderNodeInput.xml
index 68f64ad98e3..46d7dd63220 100644
--- a/doc/classes/VisualShaderNodeInput.xml
+++ b/doc/classes/VisualShaderNodeInput.xml
@@ -7,7 +7,7 @@
Gives access to input variables (built-ins) available for the shader. See the shading reference for the list of available built-ins for each shader type (check [code]Tutorials[/code] section for link).
- https://docs.godotengine.org/en/stable/tutorials/shading/shading_reference/index.html
+ https://docs.godotengine.org/en/latest/tutorials/shaders/shader_reference/index.html
diff --git a/doc/classes/VoxelGI.xml b/doc/classes/VoxelGI.xml
index eceb651d5ee..f6470782ee1 100644
--- a/doc/classes/VoxelGI.xml
+++ b/doc/classes/VoxelGI.xml
@@ -9,7 +9,7 @@
[b]Note:[/b] Meshes should have sufficiently thick walls to avoid light leaks (avoid one-sided walls). For interior levels, enclose your level geometry in a sufficiently large box and bridge the loops to close the mesh.
- https://docs.godotengine.org/en/latest/tutorials/3d/voxel_gi.html
+ https://docs.godotengine.org/en/latest/tutorials/3d/gi_probes.html
https://godotengine.org/asset-library/asset/678
diff --git a/doc/classes/XRCamera3D.xml b/doc/classes/XRCamera3D.xml
index 682a797b5ed..31f05ca06cc 100644
--- a/doc/classes/XRCamera3D.xml
+++ b/doc/classes/XRCamera3D.xml
@@ -8,6 +8,6 @@
The position and orientation of this node is automatically updated by the XR Server to represent the location of the HMD if such tracking is available and can thus be used by game logic. Note that, in contrast to the XR Controller, the render thread has access to the most up-to-date tracking data of the HMD and the location of the XRCamera3D can lag a few milliseconds behind what is used for rendering as a result.
- https://docs.godotengine.org/en/latest/tutorials/vr/index.html
+ https://docs.godotengine.org/en/latest/tutorials/vr/index.html
diff --git a/doc/classes/XRController3D.xml b/doc/classes/XRController3D.xml
index 1a05a7b651d..35edf5c2b28 100644
--- a/doc/classes/XRController3D.xml
+++ b/doc/classes/XRController3D.xml
@@ -9,7 +9,7 @@
The position of the controller node is automatically updated by the [XRServer]. This makes this node ideal to add child nodes to visualize the controller.
- https://docs.godotengine.org/en/latest/tutorials/vr/index.html
+ https://docs.godotengine.org/en/latest/tutorials/vr/index.html
diff --git a/doc/classes/XRInterface.xml b/doc/classes/XRInterface.xml
index 2a740ab1e84..ffc2bc138d4 100644
--- a/doc/classes/XRInterface.xml
+++ b/doc/classes/XRInterface.xml
@@ -8,7 +8,7 @@
Interfaces should be written in such a way that simply enabling them will give us a working setup. You can query the available interfaces through [XRServer].
- https://docs.godotengine.org/en/latest/tutorials/vr/index.html
+ https://docs.godotengine.org/en/latest/tutorials/vr/index.html
diff --git a/doc/classes/XROrigin3D.xml b/doc/classes/XROrigin3D.xml
index cdf319093c3..0d8acfeb1b5 100644
--- a/doc/classes/XROrigin3D.xml
+++ b/doc/classes/XROrigin3D.xml
@@ -10,7 +10,7 @@
For example, if your character is driving a car, the XROrigin3D node should be a child node of this car. Or, if you're implementing a teleport system to move your character, you should change the position of this node.
- https://docs.godotengine.org/en/latest/tutorials/vr/index.html
+ https://docs.godotengine.org/en/latest/tutorials/vr/index.html
diff --git a/doc/classes/XRPositionalTracker.xml b/doc/classes/XRPositionalTracker.xml
index 8cc7c872b66..d231bfde746 100644
--- a/doc/classes/XRPositionalTracker.xml
+++ b/doc/classes/XRPositionalTracker.xml
@@ -9,7 +9,7 @@
The [XRController3D] and [XRAnchor3D] both consume objects of this type and should be used in your project. The positional trackers are just under-the-hood objects that make this all work. These are mostly exposed so that GDNative-based interfaces can interact with them.
- https://docs.godotengine.org/en/latest/tutorials/vr/index.html
+ https://docs.godotengine.org/en/latest/tutorials/vr/index.html
diff --git a/doc/classes/XRServer.xml b/doc/classes/XRServer.xml
index 85170804cc7..0929094fd18 100644
--- a/doc/classes/XRServer.xml
+++ b/doc/classes/XRServer.xml
@@ -7,7 +7,7 @@
The AR/VR server is the heart of our Advanced and Virtual Reality solution and handles all the processing.
- https://docs.godotengine.org/en/latest/tutorials/vr/index.html
+ https://docs.godotengine.org/en/latest/tutorials/vr/index.html
diff --git a/modules/gdnative/doc_classes/GDNativeLibrary.xml b/modules/gdnative/doc_classes/GDNativeLibrary.xml
index 3654870b09d..6b3bd714b92 100644
--- a/modules/gdnative/doc_classes/GDNativeLibrary.xml
+++ b/modules/gdnative/doc_classes/GDNativeLibrary.xml
@@ -7,8 +7,8 @@
A GDNative library can implement [NativeScript]s, global functions to call with the [GDNative] class, or low-level engine extensions through interfaces such as XRInterfaceGDNative. The library must be compiled for each platform and architecture that the project will run on.
- https://docs.godotengine.org/en/latest/tutorials/plugins/gdnative/gdnative-c-example.html
- https://docs.godotengine.org/en/latest/tutorials/plugins/gdnative/gdnative-cpp-example.html
+ https://docs.godotengine.org/en/latest/tutorials/scripting/gdnative/gdnative_c_example.html
+ https://docs.godotengine.org/en/latest/tutorials/scripting/gdnative/gdnative_cpp_example.html
diff --git a/modules/gdscript/doc_classes/GDScript.xml b/modules/gdscript/doc_classes/GDScript.xml
index d45202bd409..0a448ed88cd 100644
--- a/modules/gdscript/doc_classes/GDScript.xml
+++ b/modules/gdscript/doc_classes/GDScript.xml
@@ -8,7 +8,7 @@
[method new] creates a new instance of the script. [method Object.set_script] extends an existing object, if that object's class matches one of the script's base classes.
- https://docs.godotengine.org/en/latest/getting_started/scripting/gdscript/index.html
+ https://docs.godotengine.org/en/latest/tutorials/scripting/gdscript/index.html
diff --git a/modules/mono/doc_classes/CSharpScript.xml b/modules/mono/doc_classes/CSharpScript.xml
index 45a6f991bf5..abd860a55fb 100644
--- a/modules/mono/doc_classes/CSharpScript.xml
+++ b/modules/mono/doc_classes/CSharpScript.xml
@@ -8,7 +8,7 @@
See also [GodotSharp].
- https://docs.godotengine.org/en/latest/getting_started/scripting/c_sharp/index.html
+ https://docs.godotengine.org/en/latest/tutorials/scripting/c_sharp/index.html
diff --git a/modules/visual_script/config.py b/modules/visual_script/config.py
index b15479797c1..e8990c43c8c 100644
--- a/modules/visual_script/config.py
+++ b/modules/visual_script/config.py
@@ -17,6 +17,7 @@ def get_doc_classes():
"VisualScriptConstant",
"VisualScriptConstructor",
"VisualScriptCustomNode",
+ "VisualScriptCustomNodes",
"VisualScriptDeconstruct",
"VisualScriptEditor",
"VisualScriptEmitSignal",
diff --git a/modules/visual_script/doc_classes/VisualScript.xml b/modules/visual_script/doc_classes/VisualScript.xml
index 372d46bc107..be6bf00e50d 100644
--- a/modules/visual_script/doc_classes/VisualScript.xml
+++ b/modules/visual_script/doc_classes/VisualScript.xml
@@ -9,7 +9,7 @@
You are most likely to use this class via the Visual Script editor or when writing plugins for it.
- https://docs.godotengine.org/en/latest/getting_started/scripting/visual_script/index.html
+ https://docs.godotengine.org/en/latest/tutorials/scripting/visual_script/index.html
diff --git a/doc/classes/VisualScriptCustomNodes.xml b/modules/visual_script/doc_classes/VisualScriptCustomNodes.xml
similarity index 100%
rename from doc/classes/VisualScriptCustomNodes.xml
rename to modules/visual_script/doc_classes/VisualScriptCustomNodes.xml