Hi Motanum,
The real issue is this line here:
[2017.02.27-04.18.58:500][381]LogWindows:Error: Assertion failed: IsInGameThread() [File:d:\unrealengine\unrealengine4-14\engine\source\runtime\engine\public\EngineUtils.h] [Line: 176]
Steam callbacks happen on a different thread than the game. Any event that happens needs to be safely forwarded to the Game thread before calling into engine functionality. An easy way to accomplish this is by the ExecuteNextTick function of the base OnlineSubsystem. Here’s an example:
void FOnlineSubsystemSteam::SomeSteamCallback(int SomeValue)
{
// Copy our values into the game thread
LiveSubsystem->ExecuteNextTick([SomeValue, this]()
{
DoSomethingOnGameThread(SomeValue);
});
}
Hope that helps!