Missing 'public' in Class declaration

what does this error even mean? it redirects me to the first line in the .h file and apparently there must word public there which I’ve never heard about?

You’ve got to have public in front of each of the classes you derive from. It’s taking you to the include because it’s coming from Unreal. Regular C++ let’s you do that, but Unreal’s parser for reflection needs a specifier for each class.

it gives me different error when i add public before the class name.

I’d have to see the header where you define that interface class.

You have a circular include: ALSBaseCharacterC.h includes Interface_Character.h which includes ALSBaseCharacterC.h. That isn’t supported in C++.

oh i see where the problem was. but what if i wanted to reference something from the character in the interface function? doing that was easy in blueprints i wonder how thats done behind the scenes

Option 1: forward declarations - if you just want to have function parameters you could forward declare the class and include the BaseCharacter header in cpp files that actually use the type.

Option 2: try to write your interface in a way that doesn’t require them. It a little hard to say based on a theoretical, but it’s usually a bad idea to write an interface that uses a type that derives from it. It’s generally a better idea to write an interface based on the interface and not the types that implement it. That’s not always true of course, but that’s when the forward declarations come in.

a forward declration would work. thanks for the help.