do you use classes as Enums for your projects? they doesn't contains any behaviours, just used as containers for variables

# damage.gd
class_name Damage extends Object
enum type { NONE, MAGIC, PHYSICS }
gdscript
# target
class_name  Target extends Object
enum target { SELF,  ENEMY,  ALL }

I just put them in an autoload.

I think you two's solution combined togther ( autoload singleton enum–only classes) solves the problem.

I’ve never made a whole class devoted to enums, it’s probably best to have them in the place, or near the place, they’re going to be used

I hadn't thought about that, but it does make sense if you want to reuse enums across classes.

However, enums typically refer to something class dependent (like your Damage class would only make sense for weapons, for example).

So it might make more sense to have it on a BaseWeapon class (sort of like an interface) rather than exposing it everywhere.