MMO Starter Kit

I believe there is an option for this in the area where you put your game icon and loading screen. Might try googling a bit on this one… I am also…As I know I saw that option someplace.
More to follow if I can find it

OK… after googling this a bit… You launch the kit, you click File - Package project - Packaging Settings … I clicked all settings, then under the legal section, there is the displayed section then the settings section. In the settings section, you will see “allow Close” by putting a check mark there, I believe when the game is package you should not be able to close the client. Keep in mind ysk, this will not stop people from closing their game though. there are a number of ways to force close the client, at least in windows. Like Task manager, end task client. You might spend some time googling on ways to stop the client from being closed.

As Always “Google is your friend.”

LOL.
CB

**tarly,**Thank you very much

server and client use same user id,session_key conflict ,how to do?

Morning,

Just something that crossed my mind: when you log in you receive the character list (with its ID) and it is added to the character selection. However, that is kept client-side, meaning if I click one of those characters, it will show up it is ID:3 or ID:5. What would happen if someone uses cheatengine and modifies this value, hence acquiring the character ID from other account? Would he/she be able to log into that character ?

How do I kick someone out of the game? as a game master/administrator

In our country paypal is not working how i am supposed to pay :frowning:

Light Propagation Volume and Material Problem Light Propagation Volume and Material Problem - Blueprint - Epic Developer Community Forums

Destroying their controller would kick them off the server.

A number of ways to do that. Either through chat server, or some UI that you make for a GM interface.

No. There’s an additional check that uses the “active_logins” table to make sure it’s really you.

Hi, is there any way to pack AndroidClient using that files?

hi
i have a small problem.
i have defined some variables on mmocharecter class ( integer experience of the character ) and i am updating it on runtime but its default value is always sent to the database when the player exit the game.

You’re probably not updating it on the server side, but on the client.

Some people have reported to have successfully packed it on android, yes.

Use Steam,how to set Dedicated Server

I don’t understand the question exactly. Do you want to use steam API to launch dedicated servers or do you want to know how to launch the dedicated server once your project is relying on steam? If it’s the former, I’ve got no experience with this. If it’s the latter, the idea is to not use Steam on dedicated server at all. Personally I had a -nosteam parameter that I integrated into the engine sources and I launched dedicated servers with it.

OK,no use OnlineSubsystemSteam,how to get SteamID and account name

CSteamID from Player State

#include “steam/steam_api.h”
#include “steam/isteamuser.h”
#include “steam/isteamutils.h”

if(PlayerState)
{
CSteamID TheSteamifiedPlayerID((uint64)PlayerState->UniqueId->GetBytes());
}

How to add to the project

On Client, you do use Steam. You get your steamid like this:

When the player logs in, he sends his SteamSessionTicket to php scripts, which verify that he owns the game. To get the ticket, do this:


FString UMMOUtility::GetSteamSessionTicket(int32 LocalUserNum)
{
    IOnlineIdentityPtr Identity = Online::GetIdentityInterface();

    if (!Identity.IsValid())
    {
        return TEXT("Identity interface not found");
    }

    return Identity->GetAuthToken(LocalUserNum);
}

On the PHP side of things, this is how you check if the player with this session ticket owns your game:


$mydata = json_decode(file_get_contents('php://input'));

$auth_token = $mydata ->auth_token;

$curl = curl_init();

// ask steam_api if this user has this game
curl_setopt_array($curl, array(
    CURLOPT_RETURNTRANSFER => 1,
    CURLOPT_URL => 'https://partner.steam-api.com/ISteamUserAuth/AuthenticateUserTicket/v0001/?format=json&key=YOUR_PARTNER_KEY&appid=YOUR_APP_ID&ticket='.$auth_token,
    CURLOPT_USERAGENT => 'Codular Sample cURL Request',
    CURLOPT_CONNECTTIMEOUT => 0,  //timeout in seconds (0 - indefinitely)
    CURLOPT_TIMEOUT => 400  //timeout in seconds
));
// Send the request & save response to $resp
$response = curl_exec($curl);

$response = str_replace ("
", "", $response);
$response = str_replace ("	", "", $response);
$json = json_decode($response, true);

// Close request to clear up some resources
curl_close($curl);

if ($json'response']'params']'result']=="OK")
{    
    $steamid = $json'response']'params']'steamid'];

    // now you have his steamid from SteamAPI, so you know it's the real one
    // if the player's steam account does own the game, the php script creates a sort of a cookie in DB and sends it back to player as well


In the example above you need to replace **YOUR_APP_ID **with something like 712571 and **YOUR_PARTNER_KEY **with something like 91DFF2F2FF1D526D45DD3BC193F193D2. It’s a key that you have to generate on the partner.steamgames.com, I don’t remember where exactly. You can contact steam support if you can’t find where to generated it, because I remember it was well hidden when I had to find it last time. And it resembles some other key, but it’s not it. To check if your key is correct, just paste the link with parameters in your browser and see what the result is.

When the server has to authenticate the player, it checks whether the cookie the player is sending corresponds to the one in db.

Regarding your code, this is how you get SteamID, although you don’t need it on Client, because sending it to server would be unreliable:


PlayerController->PlayerState->UniqueId->ToString(); // gets you steamid that starts with 765....

UE4 Report errors,why

Some includes are obviously missing.


#include "Online.h"
#include "OnlineIdentityInterface.h"