Outdated documentation
This documentation page refers to Godot
4.3,
and may be outdated or incorrect.
Additionally, this engine version is
no longer supported.
Check this page in the stable branch for the latest additions and corrections.
GD0003: Found multiple classes with the same name in the same script file
Rule ID |
GD0003 |
Category |
Usage |
Fix is breaking or non-breaking |
Non-breaking |
Enabled by default |
Yes |
Cause
A script file contains multiple types that derives from GodotObject with
a name that matches the script file. Only one type in the script file should
match the file name.
Rule description
Godot requires scripts to have a unique path so every type must be defined on its own file and the type name must match the file name.
public partial class MyNode : Node { }
namespace DifferentNamespace
{
// Invalid because there's already a type with the name MyNode in this file.
public partial class MyNode : Node { }
}
// Invalid because there's already a type with the name MyNode in this file.
public partial class MyNode<T> : Node { }
How to fix violations
To fix a violation of this rule, move each type declaration to a different file.
When to suppress warnings
Do not suppress a warning from this rule. Types that derive from GodotObject
must have a unique path otherwise the engine can't load the script by path,
resulting in unexpected runtime errors.