MVirus – server asset loader

7 days to die mvirus server asset loader

Description:

MVirus downloads models and textures from the server and loads them into the game. It helps server owners install mods without requiring players to download them manually after every change.
The mod must be installed on both the client and server sides to function properly.

Supported mods:

The mod supports all mods that do not use client-side DLLs. This includes:

  • Custom models, textures, and sounds from *.unity3d files
  • UI atlases for items
  • POI (Points of Interest)

Compatibility:

  • EAC (Easy Anti-Cheat) is not supported. Disable it in the server settings and game launcher.
  • The mod has been tested on v1.2 (b27) and v1.3 (b9). I have no information about older game versions.
  • MVirus works on dedicated servers and local hosts (from version 1.0.0).

Configuration:

By default, MVirus is configured to download mods only. You can customize the configuration in config.xml based on your needs.

You want to download mods only

  • This option is enabled by default.
  • Set the ShareMods property to false.
  • This fixes a protocol error when a friend without MVirus tries to connect to your local server.

You want to share mods with your friends on LAN or the same Wi-Fi network

  • Set the ShareMods property to true.
  • Set the FileTransferType property to 0 to enable the internal HTTP server.
  • Disable all compression options.
  • Disable the CacheAllRemoteFiles property to save disk space.
  • Allow the internal HTTP server port (specified in HttpPort) in your firewall rules.

You host a server (local or dedicated) without an additional HTTP server

  • You need a public IP address for this.
  • Set the ShareMods property to true.
  • Set the FileTransferType property to 0 to enable the internal HTTP server.
  • Enable static compression in StaticCompression.
  • Open the port for the internal HTTP server on your router. Check the port in the HttpPort property.
  • Allow the port in your firewall rules.

You have an external HTTP server for files

  • Set the ShareMods property to true.
  • Set the FileTransferType property to 1 to use an external HTTP server.
  • Update the ExternalHTTPServerAddr property with your HTTP server address.
  • Enable static compression in StaticCompression.
  • Enable CacheAllRemoteFiles.
  • Sync the HttpServerFiles folder with your HTTP server.

You host a local server without a public IP

  • This option provides poor download speeds for your players compared to an HTTP server.
  • Set the ShareMods property to true.
  • Set the FileTransferType property to 2.
  • Enable static compression in StaticCompression.

You don’t want share some mods

Add a new mod node in config.xml with content: <mod name="ModName" share="false" /> Where “ModName” is a mod name from ModInfo.xml

IPv6

The mod will use IPv6 connection to the internal HTTP server if a player joins to your server by direct IPv6 address.

Changes since v0.3.0:

Features:

  • Added IPv6 support.
  • Enabled mod sharing from a locally hosted server.
  • Added an option to disable mod sharing locally.
  • Added support for concurrent downloads.
  • Added an option to disable sharing for selected mods.
  • The client will no longer redownload locally installed mods.
  • Improved error messages on the client.

Support:

You can report bugs or request features on the github page.

!!! This release is not compatible with MVirus <= 0.3.0 !!!

DOWNLOAD MVirus v1.0.0 (40 KB)
DOWNLOAD All releases on GitHub

If you like the mod and want to support the development, you can sponsor me with crypto. Thank you!

Credits: TheNormalnij

Share this with your friends:
Subscribe
Notify of
guest

If you have any questions or have any problems/bugs, please use the support link (Discord, Forum Topic, GitHub Issues, etc.) in the post. If there is no support link in the post, please use the comments section.

35 Comments
Inline Feedbacks
View all comments
Alexander
Alexander
March 23, 2025 8:37 am

It says “Wait server mod list”, how long should I wait?

TheNormalnij
TheNormalnij
March 25, 2025 2:49 pm
Reply to  Alexander

< 5 seconds.
You can create an issue on github, if the mod doesn’t work in your environment. Please, attach logs from your client and server.

zombinator
zombinator
March 19, 2025 6:17 am

Ok, I did some research, this mod is not a drag and drop and your set. To anyone trying to use and understand this mod like myself, if you don’t know/understand how to use/set “Port Forwarding” this mod is not going to work for you. At first I thought it was just a drag and drop and change a few words in the config file and your set, nope it’s not. It’s a great mod to have and use if you understand port forwarding.

TheNormalnij
TheNormalnij
March 21, 2025 6:31 pm
Reply to  zombinator

I’m sorry for the late reply. You are right. If you host a dedicated server locally, you need to forward ports on your router as well: one for the game server (from serverconfig.xml) and one for the internal HTTP server (from Mods/TN_MVirus/config.xml).
I haven’t had a public IP for 3 years, so I just forgot about this =)
The mod will work even if the local server is behind NAT, but there will be a performance penalty.
Thank you for the note. I’ll add this step to the mod description in the next release.

zombinator
zombinator
March 18, 2025 9:19 pm

Hello TheNormalnij, I have friends from out of state trying to join my local host game, we are having trouble trying to get your mod to work. When they try log to my local hosted game they are getting the ” you need to install mods to enter”. I followed your directions, “You host a server (local or dedicated) without an additional HTTP server”, not sure what I am doing wrong but my friends can’t get logged into my hosted game. I’m probably doing something wrong.

TheNormalnij
TheNormalnij
March 12, 2025 11:12 am

The latest version allows sharing mods from a local server, when the server is behind NAT.
It reuses steam server connection for data transfer. Please, leave feedback about it. Does it work well enough?

zombinator
zombinator
March 11, 2025 9:41 am

I have a question. For my private local host game I have mostly server-side mods which clients do not have to download. To save time/hd space I only want my friends to download the “client side+server side” mods only, so that they don’t have to download “ALL” of my server-side mods with the “client-side and server-side” mods, is this option possible?

TheNormalnij
TheNormalnij
March 11, 2025 4:36 pm
Reply to  zombinator

You can add mods to ignore in config.xml. Add a new node there: <mod name="ModName" share="false" /> and clients won’t download the mod. ModName is a name from ModInfo.xml.
You can check examples for default server-side mods in config.xml.
Does it solve your problem?

DOOMGUY
DOOMGUY
January 7, 2025 2:38 pm

If I start a game with mods, does my friend need to manually install mods or what?I just don’t really understand how it works.

TheNormalnij
TheNormalnij
January 9, 2025 2:53 pm
Reply to  DOOMGUY

The mod works with a dedicated server only at this point. The server starts a game with mods, and players only need this mod to load mods from the server. The mod doesn’t touch your local mods, so server mods don’t affect your local game.
The next major release will support local hosts when you start a game locally and invite your steam friends

zombinator
zombinator
January 11, 2025 2:06 am
Reply to  TheNormalnij

Ohhh, I would LOVE that, my friends have been very sick and tired of me with always adding new mods to our games. That major update would be AWESOME!

Pock74Th3Win
Pock74Th3Win
December 31, 2024 6:02 am

This mod works great on my dedicated server but it breaks LAN games for my wife and I. I have to remove the mod when we do not want to play on the dedicated server.

Also how does it cache the mods from the server? I noticed its cache folder is missing some mods that I have on the server.

Pock74Th3Win
Pock74Th3Win
January 2, 2025 7:16 pm
Reply to  Pock74Th3Win

Anyway to add “Asset” and “Config” folders to it? I noticed that some POI packs include assets and break when its missing. seems like the tool is only pushing the prefabs to the clients and not the necessary assets.

TheNormalnij
TheNormalnij
January 7, 2025 10:21 am
Reply to  Pock74Th3Win

Some mod developers use different folders for .unity3d files instead of using the “Resources” folder. This will be fixed soon. The mod breaks LAN game because it adds new packets to the game protocol. This will be fixed too. You can install the mod on both PC’s as a workaround.

Pock74Th3Win
Pock74Th3Win
January 10, 2025 4:24 pm
Reply to  TheNormalnij

Sounds good. I just spin up another instance on the server right now when we want to play privately. Any tips or advice on setting up a remote file server (any recommended host)? I have about a 6gb mod folder, and it takes a long time for new clients to sync because my home ISP limits my upload speed ridiculously.

TheNormalnij
TheNormalnij
January 12, 2025 1:27 pm
Reply to  Pock74Th3Win

I’d like to use nginx with the gzip_static module. The minimal configuration is easy enough, but you will need a domain and HTTPS in the future. Use rsync to upload files from the “HttpServerFiles” folder to your server.
Some hostings offer webhosting services where you can upload any files for your site via FTP, but you don’t have access to the server console via ssh. It’s the cheapest solution for a hobby project. I saw options with unlimited traffic. It may work if you manage to write a PHP script to return your files.
Professional CDN’s have high prices for big files. Minimal price is $0.04/GB and it’s $7.68 for 32 downloads in your case.
I recommend using VPS solutions. They give you more control and may be useful in different cases. Personally, I get my VPS with a one-time purchase and use it for VPN, small sites, and tests.

Pock74Th3Win
Pock74Th3Win
January 13, 2025 2:12 pm
Reply to  TheNormalnij

Been looking at VPS’s, Any you recommend was thinking about going SSD Nodes or RackNerds.

TheNormalnij
TheNormalnij
January 14, 2025 3:25 pm
Reply to  Pock74Th3Win

SSD Nodes offers look interesting if you are ok with 4TB traffic.
RackNerds gives less traffic per month, and I don’t see conditions after all traffic is used up.
You can also check vdsina for a 32TB/10Gbit server in the Netherlands.

Steve B
Steve B
March 12, 2025 12:51 am
Reply to  Pock74Th3Win

Google Drive? OneDrive? I just put mine there and give the link to it. Anyone with the link can download it by the share options I put on it.

TheNormalnij
TheNormalnij
March 12, 2025 11:01 am
Reply to  Steve B

The project is aimed to automate this process without messing with user mods.

Orakel
Orakel
December 22, 2024 12:39 pm

testet it now, but the server is not sending missing mods.

TheNormalnij
TheNormalnij
December 22, 2024 3:36 pm
Reply to  Orakel

The bug was fixed in v0.2.1.
If you have the problem, create an issue on GitHub and attach your client and server logs, please.

Orakel
Orakel
December 23, 2024 2:13 am
Reply to  TheNormalnij

ok i saw now in the modinfo its v 0.0.1 but the link text says MVirus v0.2.1 (22 KB)

Orakel
Orakel
December 23, 2024 2:37 am
Reply to  TheNormalnij

It works now, thank you very muc for this mod

Orakel
Orakel
December 22, 2024 12:00 pm

“downloads models and textures from the server”
Does it also download mods?

TheNormalnij
TheNormalnij
December 22, 2024 3:39 pm
Reply to  Orakel

Yep

McTaco
McTaco
December 17, 2024 4:54 am

Also, prefabs, would be great, basically anything in the mod folder.

TheNormalnij
TheNormalnij
December 22, 2024 3:40 pm
Reply to  McTaco

Thanks you!
Added in v0.2.0

McTaco
McTaco
December 16, 2024 11:16 pm

what about dll mods that need to be on both client/server. for example, Alter Shared Reading requires the client have the DLL so that shared reading point shares correctly between the clients.

I see your mod source iterates through Resources folder and UIAtlases.

Can you test with DLL Mod?

TheNormalnij
TheNormalnij
December 17, 2024 3:20 am
Reply to  McTaco

Hi! Thanks you for your interest.

Dll support isn’t planned due low safety. C# mods aren’t sandboxed and have high risk potential to users.
Serverside dll can contain malware that steals user data or causes permanent damage to PC.

I would prefer to adding Lua scripting support in the future.

KitG
KitG
December 25, 2024 4:33 pm
Reply to  TheNormalnij

I very much respect this answer!

McTaco
McTaco
December 16, 2024 11:00 pm

revolutionary bro

Robert j Borowczyk
Robert j Borowczyk
December 16, 2024 10:21 pm

what does the mod do

McTaco
McTaco
December 17, 2024 12:05 am

make all mods server side only, clients only need this mod

TheNormalnij
TheNormalnij
December 17, 2024 3:43 am

It’s a QoL mod for modded servers.

The serverside part scans the Mods folder and prepare models and textures to be send to players.
The clienside part downloads asset when you connect to the server and loads them into the game.

Benefits:
* A player dosen’t need to manually download mods and install them.
* A server owner can provide updates without resending all mods.