Max Server and Client tick rate in defaultEngine.ini can't be more than 30.

Hello, I am trying to create a multiplayer game (on mobile but no importance here since the issue is the same on computer) where all players can see the movement of other players mouse (or finger) through an actor (sphere).

It is working however :
My issue is that it is updated 30 times each second which makes other player movement not 60Hz but 30Hz.
After some researche, It seems like I need to modify the ServerTickRate or ClientTickRate in the DefaultEngine.ini, however I can’t get beyond 30 (if i put 10 it is clearly visible that it has been modified).

This is what I have put in the DefaultEngine.ini

[/Script/OnlineSubsystemUtils.IpNetDriver]
MaxNetTickRate=60
NetServerMaxTickRate=60

[/script/engine.engine]
NetClientTicksPerSecond=60

Thanks in advance for any help.

.

Now I will give more information on what is the set up.

I am currently doing the replication with an actor having replicates and replicates movement ticked to true. I tried switching to a multicast version but the issue is the same (with one more trouble when player are late for connection).
In the first set up (actor with replicate movement) I also tried to change the net Update Frequency and the minimum net Update Frequency but it has no impact.
Also, I imagine it is possible to go beyond 30 on the NetServerUpdate since some games like Valorant are running on 128 ticks each second and it is made on UE4.
Thanks Again.

Seb13

Update : After a few days of struggle, (asking chatgpt, going with c++, nearly losing my project then back to blueprints only ) I managed to 60 ticks each seconds from clients to server (this way the server is seeing everyone in 60 Hz, however, clients are seeing server and other clients at 30 Hz.
I tried many settings around the network in the default ini text block, but only the options mentionned earlier seems to have an effect.

Bump your “Client → Server” to 120Hz, Keep the server at 30Hz.

Hi, thanks for the answer but it doesn’t work.
I have set :
NetServerMaxTickRate=30
NetClientTicksPerSecond=120

but it was the same. I also tried the opposite.

Bump

What does it mean ? XD

Hey, writing “bump” is just a way to update the forum post so that more people will see it (any message will work the same).

Regarding the original question: I did the same as you, and added “[/Script/OnlineSubsystemUtils.IpNetDriver]
MaxNetTickRate=60” to my DefaultEngine.ini, which seems to have solved it, but I haven’t been able to test it extensively yet.

Thanks for the answer, I thought about the “bump” to have this purpose XD.

I had already written those lines in the DefaultEngine.ini, I tried again but the issue is still the same for me.

Have you tried adding a -log command-line argument to your packaged game .exe, and check if the server tick rate is set to 60hz?

How to create a command-line argument using Windows: Create a shortcut of the packaged .exe, right-click the shortcut and select properties, type " -log" (without the quotation marks) at the end of the Target input window.

You can search the command prompt log with ctrl+f and look for “tick”. It should display something like “(max tick rate 60)” when bringing up the level for play.

Thanks a lot, i didn’t know about the log thing, it is helping me to solve another issue where the game crashes when compiled on windows but now i know from where the trouble is coming (and i also feel like a hacker :slight_smile: ).
However, the first “tick” i can find is before the game is opened on a session, it says :
Bringing world “bla bla bla” (max tick rate 0 )

The second one, after opening on a session says
Bringing world “bla bla bla” (max tick rate 60 )
but i have set in the defaultEngine.ini tick rate to 50 (to test if it is the same value and it seems like it isn’t)

I didn’t find any server tick rate :frowning:

I hope it can help us.

Glad that I could provide some form of help with your project!

When you say that you changed the tick rate setting, exactly what setting did you change in DefaultEngine.ini?
By default the server tick rate is set to 30, so the fact that it displays 60 in the logs means some change took effect.
If I change the “[/Script/OnlineSubsystemUtils.IpNetDriver]
MaxNetTickRate=60” setting for my project, the logs reflect this change.
I could be wrong, but I don’t think you have to change the client tick rate, as this is dynamic (same with the server), and Unreal Engine automatically tries to synchronise the tick rates.

I created a new project to test this, I implemented a basic connection set up (with the AdvancedSession plugins because default session isn’t working, i don’t know why).
My previous project is also using advancedSession.
Then I went into the log, the max tick rate was 0.
I went in the DefaultEngine.ini and added just this :

[/Script/OnlineSubsystemUtils.IpNetDriver]
MaxNetTickRate=60

I also tried 50 but in both cases the max tick rate stayed at 0 (after re-building for windows).

Maybe if you have time, you can try to put 50 (or any particular value ) in your project
[/Script/OnlineSubsystemUtils.IpNetDriver]
MaxNetTickRate=50
to see if the value in the log is changing as you wish.

Even with the tick at 0 in the log, I can connect another player (with the thirdPerson template) and the multiplayer is working.

What is strange is when i write a value below 30 because then I can see the delay, so this is having effect.

Also i was wondering, is the “[/Script/OnlineSubsystemUtils.IpNetDriver]
MaxNetTickRate=60” using online subsystem because i didn’t implement any.

I’m not sure why your max tick rate displays as 0. I also use AdvancedSessions, although I have a dedicated server build, and I’m able to set the tick rate to any custom value (I just tried setting it to something random like 53, which is reflected in the logs).

Regarding “[/Script/OnlineSubsystemUtils.IpNetDriver]”, it is a generic configuration that works with multiple subsystems, like the default OnlineSubsystemNull. Although, I use OnlineSubsystemSteam for my project.

If you’re running either in editor or are otherwise testing on a local network. Try adding “LanServerMaxTickRate=60” to the ini. That entry is for LAN (local area network) or in otherwords, all clients on your home/office router/network.

1 Like