Up to date
        This page is up to date for Redot 4.3.
        If you still find outdated information, please create an issue.
      
GD0401: The class must derive from Redot.GodotObject or a derived class¶
Rule ID  | 
GD0401  | 
Category  | 
Usage  | 
Fix is breaking or non-breaking  | 
Breaking - If changing the inheritance chain Non-breaking - If removing the   | 
Enabled by default  | 
Yes  | 
Cause¶
A type annotated with the [GlobalClass] attribute does not derive from
GodotObject.
Rule description¶
The [GlobalClass] has no effect for types that don't derive from GodotObject.
Every global class must ultimately derive from
GodotObject so it can be marshalled.
// This type is not registered as a global class because it doesn't derive from RedotObject.
[GlobalClass]
class SomeType { }
// This type is a global class because it derives from Redot.Node
// which ultimately derives from RedotObject.
[GlobalClass]
class MyNode : Node { }
// This type is a global class because it derives from Redot.Resource
// which ultimately derives from RedotObject.
[GlobalClass]
class MyResource : Resource { }
How to fix violations¶
To fix a violation of this rule, change the type to derive from GodotObject
or remove the [GlobalClass] attribute.
When to suppress warnings¶
Do not suppress a warning from this rule. Adding the [GlobalClass] to a type
that doesn't derive from GodotObject is an easy mistake to make and this
warning helps users realize that it may result in unexpected errors.