diff --git a/_templates/layout.html b/_templates/layout.html
index 286d9f866a9f..9045ee12486d 100644
--- a/_templates/layout.html
+++ b/_templates/layout.html
@@ -66,6 +66,35 @@
{% endif %}
{% block body %}{% endblock %}
+
+{% if (not meta or meta.get('allow_comments') != 'False') and godot_show_article_comments %}
+
+User-contributed notes
+
+ Please read the User-contributed notes policy before submitting a comment.
+
+{# Use https://giscus.app/ to regenerate the script tag if needed. #}
+{# data-term is set to be language-independent and version-independent, so that comments can be centralized for each page. #}
+{# This increases the likelihood that users will encounter comments on less frequently visited pages. #}
+
+
+{% endif %}
+
{%- if self.comments()|trim %}
{%- block comments %}{% endblock %}
diff --git a/about/complying_with_licenses.rst b/about/complying_with_licenses.rst
index 6012e639604c..3d805dc0fb81 100644
--- a/about/complying_with_licenses.rst
+++ b/about/complying_with_licenses.rst
@@ -1,3 +1,5 @@
+:allow_comments: False
+
.. _doc_complying_with_licenses:
Complying with licenses
diff --git a/about/docs_changelog.rst b/about/docs_changelog.rst
index 7f662e6f4adb..6c432a56ab4e 100644
--- a/about/docs_changelog.rst
+++ b/about/docs_changelog.rst
@@ -1,3 +1,5 @@
+:allow_comments: False
+
.. _doc_docs_changelog:
Documentation changelog
diff --git a/about/faq.rst b/about/faq.rst
index 4c707379c590..58da3c68f407 100644
--- a/about/faq.rst
+++ b/about/faq.rst
@@ -1,3 +1,5 @@
+:allow_comments: False
+
.. meta::
:keywords: FAQ
diff --git a/about/introduction.rst b/about/introduction.rst
index a6c9658d3415..c3314f475bfc 100644
--- a/about/introduction.rst
+++ b/about/introduction.rst
@@ -1,3 +1,5 @@
+:allow_comments: False
+
.. _doc_about_intro:
Introduction
diff --git a/about/list_of_features.rst b/about/list_of_features.rst
index e34d760516a3..bb8b6623e6c3 100644
--- a/about/list_of_features.rst
+++ b/about/list_of_features.rst
@@ -1,3 +1,5 @@
+:allow_comments: False
+
.. _doc_list_of_features:
List of features
diff --git a/about/release_policy.rst b/about/release_policy.rst
index 47d720be0585..777381eb922a 100644
--- a/about/release_policy.rst
+++ b/about/release_policy.rst
@@ -1,3 +1,5 @@
+:allow_comments: False
+
.. _doc_release_policy:
Godot release policy
diff --git a/community/asset_library/index.rst b/community/asset_library/index.rst
index 78bb27d58ac4..c50b33c34e92 100644
--- a/community/asset_library/index.rst
+++ b/community/asset_library/index.rst
@@ -1,3 +1,5 @@
+:allow_comments: False
+
Asset Library
=============
diff --git a/conf.py b/conf.py
index 2b5846722f54..82e4c88e1b22 100644
--- a/conf.py
+++ b/conf.py
@@ -196,6 +196,8 @@
"godot_version": "4.3",
# Enables a banner that displays the up-to-date status of each article.
"godot_show_article_status": True,
+ # Display user-contributed notes at the bottom of pages that don't have `:allow_comments: False` at the top.
+ "godot_show_article_comments": on_rtd and not is_i18n,
}
html_logo = "img/docs_logo.svg"
diff --git a/contributing/development/compiling/index.rst b/contributing/development/compiling/index.rst
index 3327f5ede764..9758d673cead 100644
--- a/contributing/development/compiling/index.rst
+++ b/contributing/development/compiling/index.rst
@@ -1,3 +1,5 @@
+:allow_comments: False
+
Building from source
====================
diff --git a/contributing/development/configuring_an_ide/index.rst b/contributing/development/configuring_an_ide/index.rst
index b86249884774..fedc764e9c0f 100644
--- a/contributing/development/configuring_an_ide/index.rst
+++ b/contributing/development/configuring_an_ide/index.rst
@@ -1,3 +1,5 @@
+:allow_comments: False
+
.. _doc_configuring_an_ide:
Configuring an IDE
diff --git a/contributing/development/core_and_modules/index.rst b/contributing/development/core_and_modules/index.rst
index d0f991fe9935..a97df05f2a04 100644
--- a/contributing/development/core_and_modules/index.rst
+++ b/contributing/development/core_and_modules/index.rst
@@ -1,3 +1,5 @@
+:allow_comments: False
+
Engine core and modules
=======================
diff --git a/contributing/development/debugging/index.rst b/contributing/development/debugging/index.rst
index 78ababf5f86c..e72ba360fa23 100644
--- a/contributing/development/debugging/index.rst
+++ b/contributing/development/debugging/index.rst
@@ -1,3 +1,5 @@
+:allow_comments: False
+
Debugging and profiling
=======================
diff --git a/contributing/development/debugging/vulkan/index.rst b/contributing/development/debugging/vulkan/index.rst
index 4aad3c35f257..44866960f123 100644
--- a/contributing/development/debugging/vulkan/index.rst
+++ b/contributing/development/debugging/vulkan/index.rst
@@ -1,3 +1,5 @@
+:allow_comments: False
+
Vulkan
======
diff --git a/contributing/development/editor/index.rst b/contributing/development/editor/index.rst
index ec95117cbea9..6df59a08ac15 100644
--- a/contributing/development/editor/index.rst
+++ b/contributing/development/editor/index.rst
@@ -1,3 +1,5 @@
+:allow_comments: False
+
Editor development
==================
diff --git a/contributing/development/file_formats/index.rst b/contributing/development/file_formats/index.rst
index 99b4dcea30d7..ab281ec0ccba 100644
--- a/contributing/development/file_formats/index.rst
+++ b/contributing/development/file_formats/index.rst
@@ -1,3 +1,5 @@
+:allow_comments: False
+
Godot file formats
==================
diff --git a/contributing/development/index.rst b/contributing/development/index.rst
index 859bd06c6753..a5a0cfe5267b 100644
--- a/contributing/development/index.rst
+++ b/contributing/development/index.rst
@@ -1,3 +1,5 @@
+:allow_comments: False
+
.. _doc_contributing_to_the_engine:
Engine development
diff --git a/contributing/documentation/index.rst b/contributing/documentation/index.rst
index ea42f4161ca2..68d8697ff62e 100644
--- a/contributing/documentation/index.rst
+++ b/contributing/documentation/index.rst
@@ -1,3 +1,5 @@
+:allow_comments: False
+
.. _doc_contributing_writing_documentation:
Writing documentation
diff --git a/contributing/workflow/index.rst b/contributing/workflow/index.rst
index 7950396beac0..0c6e451e6d9c 100644
--- a/contributing/workflow/index.rst
+++ b/contributing/workflow/index.rst
@@ -1,3 +1,5 @@
+:allow_comments: False
+
.. _doc_contributing_workflow:
Contribution workflow
diff --git a/getting_started/first_2d_game/index.rst b/getting_started/first_2d_game/index.rst
index dae5cb5bc6ed..868a7b4b3110 100644
--- a/getting_started/first_2d_game/index.rst
+++ b/getting_started/first_2d_game/index.rst
@@ -1,3 +1,5 @@
+:allow_comments: False
+
.. _doc_your_first_2d_game:
Your first 2D game
diff --git a/getting_started/first_3d_game/index.rst b/getting_started/first_3d_game/index.rst
index afeb90e17558..87bb21297da0 100644
--- a/getting_started/first_3d_game/index.rst
+++ b/getting_started/first_3d_game/index.rst
@@ -1,3 +1,4 @@
+:allow_comments: False
:article_outdated: True
.. _doc_your_first_3d_game:
diff --git a/getting_started/introduction/index.rst b/getting_started/introduction/index.rst
index 55633431cb78..45e0bcb43cb0 100644
--- a/getting_started/introduction/index.rst
+++ b/getting_started/introduction/index.rst
@@ -1,3 +1,5 @@
+:allow_comments: False
+
.. Intention: provide the necessary information to make the most of the getting
started series, answering questions like "do I want to learn Godot?", "how
does it look and feel?", "how does it work?", and "how do I best learn it?".
diff --git a/getting_started/step_by_step/index.rst b/getting_started/step_by_step/index.rst
index aecec2f95c78..33edde127e10 100644
--- a/getting_started/step_by_step/index.rst
+++ b/getting_started/step_by_step/index.rst
@@ -1,4 +1,4 @@
-:article_outdated: False
+:allow_comments: False
Step by step
============
diff --git a/index.rst b/index.rst
index 62c1fa734897..dc3c2d7411ec 100644
--- a/index.rst
+++ b/index.rst
@@ -1,3 +1,5 @@
+:allow_comments: False
+
Godot Docs – *master* branch
============================
diff --git a/tutorials/2d/index.rst b/tutorials/2d/index.rst
index 3d1825a4c691..27e67c9c6967 100644
--- a/tutorials/2d/index.rst
+++ b/tutorials/2d/index.rst
@@ -1,3 +1,5 @@
+:allow_comments: False
+
2D
==
diff --git a/tutorials/3d/global_illumination/index.rst b/tutorials/3d/global_illumination/index.rst
index bd9c666ad3aa..926764772234 100644
--- a/tutorials/3d/global_illumination/index.rst
+++ b/tutorials/3d/global_illumination/index.rst
@@ -1,3 +1,5 @@
+:allow_comments: False
+
.. _doc_global_illumination:
Global illumination
diff --git a/tutorials/3d/index.rst b/tutorials/3d/index.rst
index 98d365df9cb4..0c9c2164e758 100644
--- a/tutorials/3d/index.rst
+++ b/tutorials/3d/index.rst
@@ -1,3 +1,5 @@
+:allow_comments: False
+
3D
==
diff --git a/tutorials/3d/particles/index.rst b/tutorials/3d/particles/index.rst
index 76343db3098e..83c60fe6aad0 100644
--- a/tutorials/3d/particles/index.rst
+++ b/tutorials/3d/particles/index.rst
@@ -1,3 +1,5 @@
+:allow_comments: False
+
.. _doc_3d_particles:
Particle systems (3D)
diff --git a/tutorials/3d/procedural_geometry/index.rst b/tutorials/3d/procedural_geometry/index.rst
index 52dee168a675..470e97ebef0f 100644
--- a/tutorials/3d/procedural_geometry/index.rst
+++ b/tutorials/3d/procedural_geometry/index.rst
@@ -1,3 +1,5 @@
+:allow_comments: False
+
.. _doc_procedural_geometry:
Procedural geometry
diff --git a/tutorials/animation/index.rst b/tutorials/animation/index.rst
index 19e838a9681b..07f3d78559a3 100644
--- a/tutorials/animation/index.rst
+++ b/tutorials/animation/index.rst
@@ -1,3 +1,5 @@
+:allow_comments: False
+
Animation
=========
diff --git a/tutorials/assets_pipeline/escn_exporter/index.rst b/tutorials/assets_pipeline/escn_exporter/index.rst
index 557690157e66..cf7488af67e4 100644
--- a/tutorials/assets_pipeline/escn_exporter/index.rst
+++ b/tutorials/assets_pipeline/escn_exporter/index.rst
@@ -1,3 +1,5 @@
+:allow_comments: False
+
Blender ESCN exporter
=====================
diff --git a/tutorials/assets_pipeline/index.rst b/tutorials/assets_pipeline/index.rst
index fee8775f0bf3..0069fa8c8ed6 100644
--- a/tutorials/assets_pipeline/index.rst
+++ b/tutorials/assets_pipeline/index.rst
@@ -1,3 +1,5 @@
+:allow_comments: False
+
Assets pipeline
===============
diff --git a/tutorials/audio/index.rst b/tutorials/audio/index.rst
index f2a96bd8c38c..60aaf8afb1e7 100644
--- a/tutorials/audio/index.rst
+++ b/tutorials/audio/index.rst
@@ -1,3 +1,5 @@
+:allow_comments: False
+
:article_outdated: True
Audio
diff --git a/tutorials/best_practices/index.rst b/tutorials/best_practices/index.rst
index 2f5040156247..fcee000ba5aa 100644
--- a/tutorials/best_practices/index.rst
+++ b/tutorials/best_practices/index.rst
@@ -1,3 +1,5 @@
+:allow_comments: False
+
Best practices
==============
diff --git a/tutorials/editor/index.rst b/tutorials/editor/index.rst
index ff9d40cb88a9..9e2345ca0d00 100644
--- a/tutorials/editor/index.rst
+++ b/tutorials/editor/index.rst
@@ -1,3 +1,4 @@
+:allow_comments: False
:article_outdated: True
Editor introduction
diff --git a/tutorials/export/index.rst b/tutorials/export/index.rst
index 5d9674f00ae4..6bf26611bdc3 100644
--- a/tutorials/export/index.rst
+++ b/tutorials/export/index.rst
@@ -1,3 +1,5 @@
+:allow_comments: False
+
Export
======
diff --git a/tutorials/i18n/index.rst b/tutorials/i18n/index.rst
index f1278e800066..51dba86df0ae 100644
--- a/tutorials/i18n/index.rst
+++ b/tutorials/i18n/index.rst
@@ -1,3 +1,5 @@
+:allow_comments: False
+
Internationalization
====================
diff --git a/tutorials/inputs/index.rst b/tutorials/inputs/index.rst
index c1e19cdfea5f..bc2274c0a4a9 100644
--- a/tutorials/inputs/index.rst
+++ b/tutorials/inputs/index.rst
@@ -1,3 +1,5 @@
+:allow_comments: False
+
Input handling
==============
diff --git a/tutorials/io/index.rst b/tutorials/io/index.rst
index 9c7f5bb14aa1..c007f24d36ab 100644
--- a/tutorials/io/index.rst
+++ b/tutorials/io/index.rst
@@ -1,3 +1,5 @@
+:allow_comments: False
+
File and data I/O
=================
diff --git a/tutorials/math/index.rst b/tutorials/math/index.rst
index 71ceeb3a2794..0462de7fcc0b 100644
--- a/tutorials/math/index.rst
+++ b/tutorials/math/index.rst
@@ -1,3 +1,5 @@
+:allow_comments: False
+
Math
====
diff --git a/tutorials/migrating/index.rst b/tutorials/migrating/index.rst
index aace1cd74027..01653803f0f1 100644
--- a/tutorials/migrating/index.rst
+++ b/tutorials/migrating/index.rst
@@ -1,3 +1,5 @@
+:allow_comments: False
+
Migrating to a new version
==========================
diff --git a/tutorials/navigation/index.rst b/tutorials/navigation/index.rst
index 68becd284774..d4ce2697dbc1 100644
--- a/tutorials/navigation/index.rst
+++ b/tutorials/navigation/index.rst
@@ -1,3 +1,5 @@
+:allow_comments: False
+
Navigation
==========
diff --git a/tutorials/networking/index.rst b/tutorials/networking/index.rst
index 7ef2dc0f13a1..f76f73ab6ec3 100644
--- a/tutorials/networking/index.rst
+++ b/tutorials/networking/index.rst
@@ -1,3 +1,4 @@
+:allow_comments: False
:article_outdated: True
Networking
diff --git a/tutorials/performance/index.rst b/tutorials/performance/index.rst
index f1c7ad1f3a7f..3ece173e178a 100644
--- a/tutorials/performance/index.rst
+++ b/tutorials/performance/index.rst
@@ -1,3 +1,5 @@
+:allow_comments: False
+
.. _doc_performance:
Performance
diff --git a/tutorials/performance/vertex_animation/index.rst b/tutorials/performance/vertex_animation/index.rst
index fe3c4017dd0d..235f89f41e20 100644
--- a/tutorials/performance/vertex_animation/index.rst
+++ b/tutorials/performance/vertex_animation/index.rst
@@ -1,3 +1,4 @@
+:allow_comments: False
:article_outdated: True
Animating thousands of objects
diff --git a/tutorials/physics/index.rst b/tutorials/physics/index.rst
index 4ba2acd2975f..d220491164b0 100644
--- a/tutorials/physics/index.rst
+++ b/tutorials/physics/index.rst
@@ -1,3 +1,5 @@
+:allow_comments: False
+
Physics
=======
diff --git a/tutorials/platform/android/index.rst b/tutorials/platform/android/index.rst
index 2caaa8b70b3a..1fb8835b1e0d 100644
--- a/tutorials/platform/android/index.rst
+++ b/tutorials/platform/android/index.rst
@@ -1,3 +1,5 @@
+:allow_comments: False
+
Android
=======
diff --git a/tutorials/platform/index.rst b/tutorials/platform/index.rst
index a4ceb041c7cc..d240db4e9d15 100644
--- a/tutorials/platform/index.rst
+++ b/tutorials/platform/index.rst
@@ -1,3 +1,4 @@
+:allow_comments: False
:article_outdated: True
Platform-specific
diff --git a/tutorials/platform/ios/index.rst b/tutorials/platform/ios/index.rst
index ff65be5f39b8..7c6133fa3722 100644
--- a/tutorials/platform/ios/index.rst
+++ b/tutorials/platform/ios/index.rst
@@ -1,3 +1,4 @@
+:allow_comments: False
:article_outdated: True
iOS plugins
diff --git a/tutorials/platform/web/index.rst b/tutorials/platform/web/index.rst
index 77742679233f..6bb103473e11 100644
--- a/tutorials/platform/web/index.rst
+++ b/tutorials/platform/web/index.rst
@@ -1,3 +1,4 @@
+:allow_comments: False
:article_outdated: True
.. _doc_platform_html5:
diff --git a/tutorials/plugins/editor/index.rst b/tutorials/plugins/editor/index.rst
index cf23badec2ed..b85fc15035f7 100644
--- a/tutorials/plugins/editor/index.rst
+++ b/tutorials/plugins/editor/index.rst
@@ -1,3 +1,5 @@
+:allow_comments: False
+
Editor plugins
==============
diff --git a/tutorials/plugins/index.rst b/tutorials/plugins/index.rst
index 06fb555d7ca3..aeffbbd58b99 100644
--- a/tutorials/plugins/index.rst
+++ b/tutorials/plugins/index.rst
@@ -1,3 +1,5 @@
+:allow_comments: False
+
Plugins
=======
diff --git a/tutorials/rendering/index.rst b/tutorials/rendering/index.rst
index 5274087a0f02..1405ed24c9bf 100644
--- a/tutorials/rendering/index.rst
+++ b/tutorials/rendering/index.rst
@@ -1,3 +1,5 @@
+:allow_comments: False
+
Rendering
=========
diff --git a/tutorials/scripting/c_sharp/diagnostics/index.rst b/tutorials/scripting/c_sharp/diagnostics/index.rst
index c8ec2d44b148..a54976dac004 100644
--- a/tutorials/scripting/c_sharp/diagnostics/index.rst
+++ b/tutorials/scripting/c_sharp/diagnostics/index.rst
@@ -1,3 +1,5 @@
+:allow_comments: False
+
.. _doc_c_sharp_diagnostics:
C# diagnostics
diff --git a/tutorials/scripting/c_sharp/index.rst b/tutorials/scripting/c_sharp/index.rst
index ffb39f4603be..6f61875b0acc 100644
--- a/tutorials/scripting/c_sharp/index.rst
+++ b/tutorials/scripting/c_sharp/index.rst
@@ -1,3 +1,5 @@
+:allow_comments: False
+
C#/.NET
=======
@@ -8,7 +10,6 @@ The standard Godot executable does not contain C# support out of the box. Instea
to enable C# support for your project you need to `download a .NET version `_
of the editor from the Godot website.
-
.. toctree::
:maxdepth: 1
:name: toc-learn-scripting-C#
diff --git a/tutorials/scripting/debug/index.rst b/tutorials/scripting/debug/index.rst
index a6bba65fd65f..6975087fa977 100644
--- a/tutorials/scripting/debug/index.rst
+++ b/tutorials/scripting/debug/index.rst
@@ -1,3 +1,5 @@
+:allow_comments: False
+
Debug
=====
diff --git a/tutorials/scripting/gdextension/index.rst b/tutorials/scripting/gdextension/index.rst
index 963dcc31eb88..389a21db9001 100644
--- a/tutorials/scripting/gdextension/index.rst
+++ b/tutorials/scripting/gdextension/index.rst
@@ -1,3 +1,5 @@
+:allow_comments: False
+
GDExtension
===========
diff --git a/tutorials/scripting/gdscript/index.rst b/tutorials/scripting/gdscript/index.rst
index 4a0a3c39e922..8ad213e11a0b 100644
--- a/tutorials/scripting/gdscript/index.rst
+++ b/tutorials/scripting/gdscript/index.rst
@@ -1,3 +1,5 @@
+:allow_comments: False
+
GDScript
========
diff --git a/tutorials/scripting/index.rst b/tutorials/scripting/index.rst
index 3d3ca7feffae..0f4e979a5be0 100644
--- a/tutorials/scripting/index.rst
+++ b/tutorials/scripting/index.rst
@@ -1,3 +1,5 @@
+:allow_comments: False
+
Scripting
=========
diff --git a/tutorials/shaders/index.rst b/tutorials/shaders/index.rst
index ac1f32397c96..a1cfd2054197 100644
--- a/tutorials/shaders/index.rst
+++ b/tutorials/shaders/index.rst
@@ -1,3 +1,5 @@
+:allow_comments: False
+
Shaders
=======
diff --git a/tutorials/shaders/shader_reference/index.rst b/tutorials/shaders/shader_reference/index.rst
index 9e1edd43bcb7..e6822c55b34c 100644
--- a/tutorials/shaders/shader_reference/index.rst
+++ b/tutorials/shaders/shader_reference/index.rst
@@ -1,3 +1,5 @@
+:allow_comments: False
+
Shading reference
=================
diff --git a/tutorials/shaders/your_first_shader/index.rst b/tutorials/shaders/your_first_shader/index.rst
index 00bc69ead38d..856f7917ba53 100644
--- a/tutorials/shaders/your_first_shader/index.rst
+++ b/tutorials/shaders/your_first_shader/index.rst
@@ -1,3 +1,5 @@
+:allow_comments: False
+
Your first shader
=================
diff --git a/tutorials/ui/index.rst b/tutorials/ui/index.rst
index 11ee1c181708..751cced835f7 100644
--- a/tutorials/ui/index.rst
+++ b/tutorials/ui/index.rst
@@ -1,3 +1,5 @@
+:allow_comments: False
+
.. _doc_user_interface:
User interface (UI)
diff --git a/tutorials/xr/index.rst b/tutorials/xr/index.rst
index a48450019dfb..563d1af1c7d9 100644
--- a/tutorials/xr/index.rst
+++ b/tutorials/xr/index.rst
@@ -1,3 +1,5 @@
+:allow_comments: False
+
XR
==