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 tofalse
. - 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 totrue
. - Set the
FileTransferType
property to0
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 totrue
. - Set the
FileTransferType
property to0
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 totrue
. - Set the
FileTransferType
property to1
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 totrue
. - Set the
FileTransferType
property to2
. - 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
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.
It says “Wait server mod list”, how long should I wait?
< 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.
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.
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.
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.
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?
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?
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?
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.
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
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!
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.
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.
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.
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.
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.
Been looking at VPS’s, Any you recommend was thinking about going SSD Nodes or RackNerds.
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.
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.
The project is aimed to automate this process without messing with user mods.
testet it now, but the server is not sending missing mods.
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.
ok i saw now in the modinfo its v 0.0.1 but the link text says MVirus v0.2.1 (22 KB)
It works now, thank you very muc for this mod
“downloads models and textures from the server”
Does it also download mods?
Yep
Also, prefabs, would be great, basically anything in the mod folder.
Thanks you!
Added in v0.2.0
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?
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.
I very much respect this answer!
revolutionary bro
what does the mod do
make all mods server side only, clients only need this mod
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.