You might have forgotten to add Super::Init to your Init function in CPP!
Also your header might need to look a little like mine: virtual void Init() override;
Otherwise youre overwriting your Init function and that for some reason wont let you call it even from a different class.
Hope it helps,
I linked the forum answer that helped me