GD0401: The class must derive from Redot.RedotObject or a derived class

==================================== ====================================== Value ==================================== ====================================== Rule ID GD0401 Category Usage Fix is breaking or non-breaking Breaking - If changing the inheritance chain

                                  Non-breaking - If removing the ``[GlobalClass]`` attribute

Enabled by default Yes ==================================== ======================================

Cause

A type annotated with the [GlobalClass] attribute does not derive from RedotObject.

Rule description

The [GlobalClass] has no effect for types that don't derive from RedotObject. Every global class must ultimately derive from RedotObject 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 RedotObject 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 RedotObject is an easy mistake to make and this warning helps users realize that it may result in unexpected errors.

Connection interrupted. Reload×

Rejoining the server...

Rejoin failed... trying again in seconds.

Failed to rejoin.
Please retry or reload the page.

The session has been paused by the server.

Failed to resume the session.
Please retry or reload the page.