Valheim – Fix For Multiplayer Lag

If you encounter some extreme rubber banding and skipping during multiplayer and can’t attribute it to one person’s connection or faulty server hardware, it is most likely due to the game’s 60kb upload cap and the tendency for players to hit the cap in complex multiplayer situations. Hopefully this guide will help you out but it goes without saying, I do not guarantee anything.

Download DNSPY

Note: Credit goes to All Might

Extract the contents into its’ own folder somewhere on your PC.

Run DNSPY.

  • File >>> Open.
  • Navigate to: …SteamLibrary\steamapps\common\Valheim\valheim_Data\Managed\
  • Select assembly_valheim.dll
  • Click Open.
  • In the left panel titled ‘Assembly Explorer’, find and select assembly_valheim.dll
  • Select {}
  • Select ZDOMAN
  • Select m_dataPerSec, Right-Click and select Edit Class…
  • In the line “private int m_dataPerSec = ” set it to at least 122880
  • Click Compile in the bottom right corner.
  • Click File > Save Assembly.

Start Your Server

If you are hosting the Valheim locally on your own PC, then all you need to do at this point is launch your server and have some people join. If you are still experiencing lag, then other things may be causing your problems and I am sorry.

If you are connecting to a dedicated server, then you need to replace the assembly_valheim.dll file that the dedicated server uses. Once the file is replaced using the new value, start/restart your server to load the new file.

Check your performance in-game by hitting F2 and checking the data sent value. If this does not go past 60 then you did something wrong or the .dll was overwritten.

If the game updates, it overwrites Assembly_Valheim.dll and you will need to redo these steps!!!

Helena Stamatina
About Helena Stamatina 2743 Articles
My first game was Naughty Dog’s Crash Bandicoot (PlayStation) back in 1996. And since then gaming has been my main hobby. I turned my passion for gaming into a job by starting my first geek blog in 2009. When I’m not working on the site, I play mostly on my PlayStation. But I also love outdoor activities and especially skiing.

18 Comments

  1. is there still no update on where this is found now? After the update the value m_DataPerSec is no longer there?

  2. Looks like they may have changed either where this field is located or what the name is since this guide was posted. I can’t find this anywhere in the specified dll file.

  3. If I host the server using Ubuntu with LinuxGSM, do you know where should I change the value?

  4. I get so many errors after I compile regardless of what I use and so I can’t save and try. The default is 642880 (as of 2/28/21) on g-portal servers. Any recommendations?

  5. So is the goal here to be lowering this number for m_dataPerSec? Because my DLL was already set about 5 times higher than your listed value of 122880.

    Reading through the code at one point they divide m_dataPerSec by 20 to perform a check comparing the size to determine if they want to break out of a loop early or not.

    • I’ve only changed this serverside.
      It only seems to affect the upload speeds of the server (and thus the receive speed of the client).
      So the client upload will still be capped @ ~56kb/s

      This solved all our lag issues though, as the server upload seems what was the bottleneck.

  6. Very nice fix. I set it to 245760 which allowed us to play lagfree with 7 people in a boss fight.
    Though, this only works for the server upload speed (which is fine)
    I can’t believe that by default it is just 56kb/s

    Can we apply a similar patch to increase the max number of players?

Leave a Reply

Your email address will not be published.


*