Is there a way to instance a class based on a string or enum in GDScript?

:bust_in_silhouette: Reply From: MintSoda

For engine classes, use ClassDB.instance("ClassName")

For custom classes, it’s only possible to instance from script path. Also, script paths can be found at ProjectSettings.get_setting("_global_script_classes"). So it’s possible to get the script of a class by its class_name, even if you move the scripts around.

Or use a class from godot-next, ClassType, which implements everything about class for you. (Somehow it was slow last year I used it, I only use it for creating plugins though. )

To be honest, I don’t know why custom classes aren’t included in ClassDB. This is very inconvenient.

1 Like