ah, right, i’d forgotten that subsystems are auto instantiated, you don’t have to put them into a config somewhere.
I do remember either reading or seeing in a video that blueprint subsystems weren’t a thing that were supported, however it’s entirely possible that that has changed since then. I’m pretty sure it was in the Epic video training that introduced Subsystems.
I think I would suspect some sort of strange initialization order causing it to work in one project but not in another. That might have you debugging deep into the internals of the engine if you want to really figure it out … you could try calling GetMyString() from somewhere in native code, with a breakpoint on it, debug into what happens, and try and figure out why it doesn’t come up with your blueprint class.
I do also wonder what would happen if you implemented it as a BlueprintNativeEvent, and left a default C++ implementation that perhaps logs something, then tried to call it, and see what happens.