MMO Starter Kit

Please keep in mind that the MMO Kit is just a couple of tools for UE4 to make it more MMO-capable and basically a template project. It’s not a standalone server solution or anything like that. So the question is simply how many players can UE4 handle.

It all depends on the amount of game logic that the server has to handle and the amount of replicated information. I can’t tell you what’s the maximum that UE4 can handle for your game. If I had to guess based on your specifications (and I don’t even know if it’s point-n-click movement or WASD, if you can move camera beyond your character or if it’s always centered on your character, etc), I’d say 200 players for a single server is the maximum in your case if we’re being optimistic. If you place objectives around the pvp zone in different places, you can run parts of a level on one server, parts on another. If it’s necessary, on 3 servers, to reach your desired player limit in the pvp zone. They’ll never see each other at the same time, but they’ll all participate in one event. If the transfer between servers is done seamlessly without loading screen, they’ll probably never suspect a thing. And just generally speaking, your world should be divided into many areas, each area being run on a separate server. All MMOs do this.

Alright - thanks for the answer!

UE4 has proven with other MMOs (like the Project Genom :stuck_out_tongue: ) that it’s pretty good regarding the amount it can handle. I’m going for a point n click movement with centered but scalable/zoomable camera. Since I now know how many players I can have in one space, this also means that I need to find a game design to separate them from other places. The idea was to divide the world into a lot of different areas, with loading screens for each area so they “load different servers” (there’s a lot of logic behind this, so this is just for simplicity), but I’m afraid some areas might be super overloaded, meaning I’ll have more general servers with subservers which is… scary.

Either way, thanks! No more questions. I’ll probably get the MMO Kit soon.

where can i find the blueprint for choosing 3 classes at create player?

The widget blueprint is called MainMenu. Unhide the [NewCharacterPanel] by clicking the eye icon next to it.

Anyone needing mmokit support we have a discord with a heap of mmokit users. CodeSpartan had put us in his original post as the unofficial discord for his kit. Come join us!

@CodeSpartan what are your plans for the kit? Will we see an port to 4.21 when its released? And what about new changes?

Just the 4.21 port. But 4.21 isn’t out yet.

MMOPlayerState → On Response Get Character branch node “status = ok” … this part status is "null "… anybody Please help…OTL

Does the plugin handle publicly populated areas vs instances? If I have a main city how will the plugin handle 100 players?

Are there any instance/dungeon examples for dynamic server expansion?

Want to treat instances as squad based pvp events, this plugin is very appealing but I’m not sure if the networking/instancing aspects are robust enough.

Hi. If I understood you correctly, you get an empty response from php scripts? Looks like there might be an error in your scripts. Did you modify something? The server you’re running the scripts on may have an error.log which should contain the exact error you’re getting.

Also, try accessing the script in your browser, but change these two lines manually to an account and character in your db:
$mydata = json_decode(file_get_contents(‘php://input’));
$charid = $mydata ->charid;
$userid = $mydata ->userid;

So, for example, change it to:
$charid = 1;
$userid = 0;

Then access the .php file in the browser and see what you’re getting in response.

There are no instances in MMOKit. It’s a good starting point for an MMO, but it doesn’t do everything, I’m afraid.

To have instances, you’d have to write a small program that would raise servers dynamically when necessary, communicate the port number back to players, things like that.

Regarding 100 players, it’s a question purely for UE4 in general, not for the MMOKit itself (which doesn’t have enough logic of its own to create any plugs or bottlenecks). If your game is optimized well enough, 100 players should not be a problem, maybe you can go up to 150.

Packaging failure,why

Have you changed anything in the kit? If so, are you able to package unmodified MMOKit?
Are you able to package other projects?
Is the problem reproducible after you delete Intermediate and Binary folders and regenerate visual studio files?

Already,delete Intermediate and Binary folders and regenerate visual studio files

no use github UE4,Do not want to use

Launcher engine is very limited in what it can build. You need github engine. I know for a fact that it can’t build server target. I never tried building client target, but it looks like it can’t do it either.

Yes, the Unreal front end is AWESOME… but, you have to remember to compile that also, as it didn’t seem to compile when I compiled the engine.

Also, don’t forget to change the build type in shipping so YOUR .ico is used for your .exe instead of the default unreal one.
Plz see here for more info.


Hello, I’m new to the unreal engine and the MMO starter kit. I have changed the max walk speed value to 160 and Using blueprints, I tried changing the movement in the MMOPlayerCharacter blueprint to include the ability to “Toggle” between walk and run using a “Keypress” from the keyboard. I am simply “listening” for a keypress and when the keypress is sensed it toggles a flipflop which changes the Max Walk Speed value to 600 for run, or 160 for walk. It appears to be working, meaning it is changing the value as expected, but my character seems to be “Fighting” the speed change and I’m suspecting it is caused by the server over riding the change in this value. If I manually set the Max Walk Speed at 160, my character walks fine in the PIE mode, or if I change the value to 600 my character “Runs” just fine in PIE mode, but if I set the value to either 160 or 600, then allow my keypress to change the value, the character appears to “Jitter”, or “Fight” the change while in PIE mode. How can I fix this please?

The speed needs to be the same on server and on client.
Best way to do it:
1- Call a Server event from client.
2- In this event on server, call a Multicast event.
3- In that multicast event, change the speed, so it happens on both client and server. Multicast events can only be called from server. They’re broadcasted to clients, and they’re executed on server as well.

Server/Multicast is what you set in the event properties:

(make sure to always check the “reliable” box whenever you make server/multicast events)

Not yet sure if this is the best way, but it appears to be working for me.
Please note… I used the “R” key to toggle run.
If someone knows of a reason I shouldn’t be doing it this way, I would be grateful if you would reply here and give your feedback.

The steps I did are below in case someone else wants to do the same.

  1. Go to the MMO folder, then Blueprints. Double click on the MMOPlayerCharacter to open it’s blueprint.

  2. Create a new Boolean variable and name it “IsRunning”, then pull down the replication box and choose “Replicated”.

  3. Create a new Float variable and name it “WalkSpeed”. Again, pull down the replication box and choose “Replicated”.

  4. Create a new function and name it “TogRunWalk”. Add 3 separate inputs/types in this function:
    IsRunning - Boolean
    WalkSpeed - Float
    OurCharMove - Character Movement Component

I then “Wired” the function up like the 1st pic shows.

  1. In the event graph, I did as picture 2 shows.

Notice, I didn’t use multicast, but instead I created a custom event named “TogRunWalkClient” which has 3 inputs and is replicated on Owning Client and is reliable. This event was made to call the “TogRunWalk” custom function we made earlier.
I then made a 2nd custom event named “TogRunWalkSvr” and added the same 3 inputs and is replicated reliably only on the server. This event was also made to call the “TogRunWalk” custom function we made earlier.
Then simply wired it up the rest as shown.

Ported to and tested with 4.21.0
No special steps required if you’re porting yourself. Just turn off runtime physics and vehile physics plugins (not sure which one is causing problems for the engine when packaged, but either way it’s an engine issue and will probably be resolved after a few engine hotfixes).
Fixed a bug that didn’t deserialize group updates properly.
Changed LOD settings on a building in the demo map.