Class reference writing guidelines¶
This page explains how to write the class reference. You will learn where to write new descriptions for the classes, methods, and properties for Godot's built-in node types.
To learn to submit your changes to the Godot project using the Git version control system, see Contributing to the class reference.
The reference for each class is contained in an XML file like the one below:
<class name="Node2D" inherits="CanvasItem" version="4.0"> <brief_description> A 2D game object, inherited by all 2D-related nodes. Has a position, rotation, scale, and Z index. </brief_description> <description> A 2D game object, with a transform (position, rotation, and scale). All 2D nodes, including physics objects and sprites, inherit from Node2D. Use Node2D as a parent node to move, scale and rotate children in a 2D project. Also gives control of the node's render order. </description> <tutorials> <link title="Custom drawing in 2D">https://docs.godotengine.org/en/latest/tutorials/2d/custom_drawing_in_2d.html</link> <link title="All 2D Demos">https://github.com/godotengine/godot-demo-projects/tree/master/2d</link> </tutorials> <methods> <method name="apply_scale"> <return type="void"> </return> <argument index="0" name="ratio" type="Vector2"> </argument> <description> Multiplies the current scale by the [code]ratio[/code] vector. </description> </method> [...] <method name="translate"> <return type="void"> </return> <argument index="0" name="offset" type="Vector2"> </argument> <description> Translates the node by the given [code]offset[/code] in local coordinates. </description> </method> </methods> <members> <member name="global_position" type="Vector2" setter="set_global_position" getter="get_global_position"> Global position. </member> [...] <member name="z_index" type="int" setter="set_z_index" getter="get_z_index" default="0"> Z index. Controls the order in which the nodes render. A node with a higher Z index will display in front of others. </member> </members> <constants> </constants> </class>
It starts with brief and long descriptions. In the generated docs, the brief description is always at the top of the page, while the long description lies below the list of methods, variables, and constants. You can find methods, member variables, constants, and signals in separate XML nodes.
For each, you want to learn how they work in Godot's source code. Then, fill their documentation by completing or improving the text in these tags:
<method> (in its <description> tag; return types and arguments don't take separate documentation strings)
<signal> (in its <description> tag; arguments don't take separate documentation strings)
Write in a clear and simple language. Always follow the writing guidelines to keep your descriptions short and easy to read. Do not leave empty lines in the descriptions: each line in the XML file will result in a new paragraph, even if it is empty.
Edit the file for your chosen class in
doc/classes/ to update the class
reference. The folder contains an XML file for each class. The XML lists the
constants and methods you will find in the class reference. Godot generates and
updates the XML automatically.
For some modules in the engine's source code, you'll find the XML
files in the
modules/<module_name>/doc_classes/ directory instead.
Edit it using your favorite text editor. If you use a code editor, make sure that it doesn't change the indent style: you should use tabs for the XML and four spaces inside BBCode-style blocks. More on that below.
To check that the modifications you've made are correct in the generated
documentation, navigate to the
doc/ folder and run the command
This will convert the XML files to the online documentation's format and output
errors if anything's wrong.
Alternatively, you can build Godot and open the modified page in the built-in code reference. To learn how to compile the engine, read the compilation guide.
We recommend using a code editor that supports XML files like Vim, Atom, Visual Studio Code, Notepad++, or another to comfortably edit the file. You can also use their search feature to find classes and properties quickly.