Skip to main content

Integrate a Managed Dedicated Server to the DSM

Last updated on

Make sure when you call this function, you are already on the server side functionality not client side.

  1. Register your Managed Dedicated Server to the DSM.

    int32 Port = 7777;

    FRegistry::ServerDSM.RegisterServerToDSM(Port, FVoidHandler::CreateLambda([]()
    {
    // Do something if RegisterServerToDSM has been successful
    }), FErrorHandler::CreateLambda([](int32 ErrorCode, const FString& ErrorMessage)
    {
    // Do something if RegisterServerToDSM has an error
    UE_LOG(LogTemp, Log, TEXT("Error RegisterServerToDSM, Error Code: %d Error Message: %s"), ErrorCode, *ErrorMessage);
    }));
  2. Wait until the DS gets a session. The DS should wait for a player to try to connect to the DS.

  3. This function can be used to let the DS retrieve the session ID. If the session ID is empty, this indicates that the DS doesn’t have a session yet.

    FRegistry::ServerDSM.GetSessionId(THandler<FAccelByteModelsServerSessionResponse>::CreateLambda([](const FAccelByteModelsServerSessionResponse& Result)
    {
    // Do something if GetSessionId has been successful
    FString Sessionid = Result.Session_id;
    }), FErrorHandler::CreateLambda([](int32 ErrorCode, const FString& ErrorMessage)
    {
    // Do something if GetSessionId has an error
    UE_LOG(LogTemp, Log, TEXT("Error GetSessionId, Error Code: %d ErrorMessage: %s"), ErrorCode, *ErrorMessage);
    }));
  4. Your managed dedicated server can be shut down automatically using this function.

    bool KillMe = true;
    FString MatchId = FString("SomeMatchId");

    FRegistry::ServerDSM.SendShutdownToDSM(KillMe, MatchId, FVoidHandler::CreateLambda([]()
    {
    // Do something if SendShutdownToDSM has been successful
    }), FErrorHandler::CreateLambda([](int32 ErrorCode, const FString& ErrorMessage)
    {
    // Do something if SendShutdownToDSM has an error
    UE_LOG(LogTemp, Log, TEXT("Error SendShutdownToDSM has an error, Error Code: %d Error Message: %s"), ErrorCode, *ErrorMessage);
    }));