It looks like Chain is a BP derived from USkill. In that case you need to create an instance of Chain to use. FObjectFinder doesn’t instantiate a new object for you, it’s just returning the class of the BP at the path you provided.
Unless USkill is derived from UClass, I don’t see how what you’re doing now could be right. But I could be assuming something that isn’t true or not getting something on some level. If that’s the case, hopefully someone else can help.
That said, here’s what I’d do:
Add a member variable to the Gameinstance that is TSubclassOf<USkill>
. Call it “ChainClass”. Open your Gameinstance blueprint and set that variable to the Chain BP class. Then in C++, use ChainClass to create the Chain object.