What is the network data limit, why is it there, how do I change it?

Hello Epic and Friends,

I am experiencing some issues with sending data over the network capping at roughly 10kBps, I have some assumed reasons behind this, but I would like to know the following:

What is the network data limit?
Why is there a network data limit?
How does one go about changing it?

Thanks!

Spiris

I believe that in this stream: Networking Framework: Tips & Tricks | Feature Highlight | Unreal Engine - YouTube
towards the end where they answer questions one of the epic staff said something about a limit of 10 xyz. I’m not fully sure and at the moment I don’t have the time to watch the whole stream again, as far as I remember he said this value is hard coded into the engine.

If you find where he says that, please let me know :slight_smile:

John Pollard mentions it around 1:04:30, and explains that there is an game .ini code to change it, but there is no example or documentation on what that special combo of characters looks like.

1 Like

So today I took a look through some engine code and figured out that there is indeed config variable that can be set in the NetDriver class.
So I am a little confused as to what to change in the DefaultEngine.ini file.

Would it be…
[NetDriver]
MaxClientRate=20000
or some other weird permutation of it?

The variables you want are in UNetDriver. There are two values that you can set for your project. The first is the max data rate you want to use on a LAN before considering the connection saturated. The second is the max rate for Internet connections. Both are there for the same reason: namely to slow the amount of data sent so the client’s connection is not saturated. Here’s an example:

[/Script/OnlineSubsystemUtils.IpNetDriver]
MaxClientRate=15000
MaxInternetClientRate=10000

Thanks very much Joe! That explanation will surely help a lot of people.

Could you add what unit these variables are? I would guess it’s Bit/s, though that seems a bit low so it could also be Byte/s.

Does it count for both up and down at the same time or separately? Is there a way to set the limits individually for up and down?

The average internet speed in USA is 11.5 Mbit/s, so if the default limit in UE4 is 10.000 Bit/s then that would only use 0.0008% of the available connection, that sounds a bit strange to me. Doesn’t that introduce unnecessary lag?
I’m sure Epic set the limit to that number for a reason, I just can’t see what that is. Epic has shipped a lot of multiplayer games so that number does surely make sense, I would just like to know why I should not set it to something like using 50% of the available connection?

Sorry, the units are Bytes/s. It’s both up/down total. The client typically sends very little data upstream, mostly downstream. The server sends quit a bit upstream, less downstream. That’s why separating them doesn’t make sense. As for available bandwidth, Gears was targeted at 5-7k range. Remember on a server for Gears that’s 50-70k (10 connections). Client speed isn’t as important as the server. You can set those numbers higher, but a large portion of your audience will get a bad experience.

So just copying the 3 lines you mentioned into the DefaultEngine.ini and set the speed in Byte/s should work, thats very nice to know :slight_smile: Thanks again!

Thanks a lot Joe , i changed everything and nothing worked till tried your method .

Is this still valid? Can’t find those variables in IPNetDriver.h

Have those been change to the following?

  1. [/Script/Engine.GameNetworkManager]
  2. TotalNetBandwidth=10000
  3. MaxDynamicBandwidth=10000
  4. MinDynamicBandwidth=4000

EDIT: Found them in NetDriver.h